OpenAI接口介绍- ChatCompletion

By 刘志军 , 2023-05-10, 分类: 思考

chatgpt

ChatCompletion是OpenAI中最核心的一个接口,顾名思义,你可以利用该接口构建自己的应用,用在与AI有交互的场景,例如聊天机器人、智能客服等,该接口具有连续对话的能力,因为它可以携带上下文信息。

接口

https://api.openai.com/v1/chat/completions  

请求参数

参数名 必选 类型 说明
model string 支持的模型为:gpt-4, gpt-3.5-turbo, gpt-3.5-turbo-0301
messages array 字典组成的列表对象
temperature float 采样温度,随机因子,控制输出结果的随机性,介于0到2之间,值越大随机性越高,默认为1
max_tokens integer 指定返回结果的token最大长度,默认是最大值,不同模型的最大token数不一样,例如gpt-3.5的最大长度支持4096

messages 是一个数组,数组中的元素是一个字典对象,包含两个必选字段,分别是role和content

参数名 必选 类型 说明
role string 该条消息由哪个角色生成,可选值:system, user, assistant
content string 该条消息对应的内容

为什么messages要作为一个数组参数传递呢?

因为我们实现多轮对话时,必须把上一轮的对话内容传递给模型,模型才知道如何联系上下文来生成更精确的内容。

角色

message中每个元素必须指定一个角色,用来告诉该消息是谁生成的,目前该接口预设了3个值,分别是:

通常每次对话以一条系统消息作为开始(系统消息也可以不指定),然后用户消息和助理消息交替

Python代码:

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "你是一个上知天文下知地理的百晓生"},
        {"role": "user", "content": "中国首都在哪里"},
        {"role": "assistant", "content": " 中国的首都是北京。"},
        {"role": "user", "content": "人口是多少?"}
    ],
  temperature=0.6
)

助理消息是上一轮对话AI生成的内容,提取出来后作为下一轮的消息内容发送给AI,这样就可以实现多轮对话联系上下文语境生成内容。

响应内容

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "根据2020年的统计数据,北京市的常住人口为2171.6万人。",
        "role": "assistant"
      }
    }
  ],
  "created": 1683639817,
  "id": "chatcmpl-7EHuru5wKKpZ2CsEfjVa2z11DzqhJ",
  "model": "gpt-3.5-turbo-0301",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 27,
    "prompt_tokens": 486,
    "total_tokens": 513
  }
}

助理回复的内容可以从response['choices'][0]['message']['content']提取。

完整文档:https://platform.openai.com/docs/guides/chat/introduction


关注公众号「Python之禅」,回复「1024」免费获取Python资源

python之禅

猜你喜欢

2023-12-03
2024年版ChatGPT最新注册教程
2023-11-16
ChatGPT can make mistakes. Consider checking important informations 错误
2023-11-14
我的第一个GPTs
2023-11-01
如何用微信、支付宝充值GPT4
2023-10-18
ChatGPT Plus GPT4 功能汇总
2023-09-27
ChatGPT新特性:支持语音、图像,终于可以用它来练口语了!
2023-07-26
ChatGPT 安卓包下载
2023-07-22
ChatGPT 新功能“自定义指令” Custom Instructions 怎么使用?
2023-07-08
ChatGPT Code Interpreter 能做哪些事?
2023-06-29
官方gpt3.5, gpt4.0、github copilot chat、gpt3.5 api、gpt4 api 对比,谁更牛?