API文档(api-reference)
聊天(Chat)

对话Chat

针对描述会话的消息列表,模型将返回响应。

对话创建模型响应 Create chat completion Beta

https://api.openai.com/v1/chat/completions (opens in a new tab)

为给定的聊天对话创建模型响应。

请求正文

model 字符串类型,必填项。要使用的模型的 ID。有关与 Chat API 一起使用哪些模型的详细信息,请参见模型端点兼容性表。

messages 数组类型,必填项。包含对话历史描述的消息列表。

role 字符串类型,必填项。该消息作者的角色。可选值为 systemuserassistant

content 字符串类型,必填项。消息的内容。

name 字符串类型,可选。该消息的作者名称。可包含小写字母、大写字母、数字和下划线,最长长度为 64 个字符。

temperature 数字类型,可选。默认为 1。要使用的采样温度(temperature),介于 0 和 2 之间。较高的值(如 0.8)会使输出更随机,而较低的值(如 0.2)则会使其更加专注和确定。

我们通常建议只修改此参数或 top_p 一个参数而不是两个同时修改。

top_p 数字类型,可选。默认为 1。一种称为“核心采样”的采样替代方法,其中模型考虑概率质量值在前 top_p 的标记的结果。因此,0.1 意味着仅考虑概率质量值前 10% 的标记。

我们通常建议只修改此参数或 temperature 一个参数而不是两个同时修改。

n 整数类型,可选。默认为 1。要生成的每个输入消息的聊天完成选项数量。

stream 布尔类型,可选。默认为 false。如果设置,则会发送部分消息增量,类似于 ChatGPT。随着标记的可用性,标记将作为仅数据的服务器推送事件 (opens in a new tab)发送,流将以 data: [DONE] 消息终止。请参见 OpenAI Cookbook 中的示例代码 (opens in a new tab)

stop 字符串或数组类型,可选。默认为 null。API 最多将生成 4 个序列,这些序列将停止生成更多标记。

max_tokens 整数类型,可选。默认为 inf。要生成的最大令牌数。

输入令牌和生成的令牌的总长度受模型上下文长度的限制。

presence_penalty 数字类型,可选。默认为 0。介于 -2.0 和 2.0 之间的数字。正值会根据新标记在迄今为止的文本中出现的频率惩罚新标记,增加模型谈论新话题的可能性。

了解有关频率和存在惩罚的更多信息。

frequency_penalty 数字类型,可选。默认为 0。范围在 -2.0 到 2.0 之间的数字。正值会根据其在文本中的现有频率惩罚新标记,从而减少模型重复同一行的可能性。

查看有关频率和存在惩罚的更多信息。

logit_bias Map 类型,可选。默认为 null。修改出现在完成中的指定标记的可能性。

接受一个将标记(由标记器中其标记 ID 指定)映射到从 -100 到 100 的关联偏差值的 JSON 对象。在采样之前,数学上会将偏差添加到模型生成的对数几率中。确切的影响将因模型而异,但-1 到 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该会导致禁止或选择相关标记的独家选择。

user 字符串类型,可选。表示您的最终用户的唯一标识符,可帮助 OpenAI 监视和检测滥用。了解更多

请求示例(Python方式)

curl https://api.openai.com/v1/chat/completions 
  -H "Content-Type: application/json" 
  -H "Authorization: Bearer $OPENAI_API_KEY" 
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

请求参数(Parameters)

{
 "model": "gpt-3.5-turbo",
 "messages": [{"role": "user", "content": "Hello!"}]
}

响应体 (Response)

{
 "id": "chatcmpl-123",
 "object": "chat.completion",
 "created": 1677652288,
 "choices": [{
 "index": 0,
 "message": {
 "role": "assistant",
 "content": "  Hello there, how may I assist you today?",
    },
 "finish_reason": "stop"
  }],
 "usage": {
 "prompt_tokens": 9,
 "completion_tokens": 12,
 "total_tokens": 21
  }
}