OpenAI API Chat
给定聊天对话,模型将返回聊天完成响应。
创建 chat completion
POST https://api.openai.com/v1/chat/completions
为聊天消息创建 completion
Request body
字段 | 类型 | 是否可选 | 说明 |
model | string | 必须 | 要使用的模型的 ID。 |
messages | array | 必须 | 以聊天格式生成聊天完成的消息。 |
temperature | number | 可选 默认为 1 |
使用什么采样 temperature,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。 我们通常建议改变这个或 top_p 但不是两者都改变。 |
top_p | number | 可选 默认为 1 |
一种替代 temperature 采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。 我们通常建议更改此值或 temperature,但不要同时更改两者。 |
n | integer | 可选 默认为 1 | 为每个输入消息生成多少个聊天完成选项。 |
stream | boolean | 可选 默认为 false | 如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。令牌将在可用时作为纯数据服务器发送事件发送,流由数据终止:[DONE] 消息。 |
stop | string or array | 可选 默认为 null | API 将停止生成更多令牌的最多 4 个序列。 |
max_tokens | integer | 可选 默认为 inf |
聊天完成时生成的最大令牌数。 输入标记和生成标记的总长度受模型上下文长度的限制。 |
presence_penalty | number | 可选 默认为 0 |
-2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 |
frequency_penalty | number | 可选 默认为 0 |
-2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。 |
logit_bias | map | 可选 默认为 null |
修改指定标记出现在完成中的可能性。 接受一个 json 对象,该对象将标记(由标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。从数学上讲,偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。 |
user | string | 可选 | 代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。 |
示例请求
curl | python | node.js |
|
|
|
参数
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
}
响应
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?",
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
更多建议: