聊天 Chat

给定聊天对话,模型将返回聊天完成响应。OpenAi 中文官方api文档。

创建聊天完成 beta

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

为聊天消息创建完成

请求示例

bash
Curl
bash
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!"}]
  }'

参数示例

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

响应示例

json
{
  "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
  }
}

请求体

model string 必需的

要使用的模型的 ID。 请参阅模型端点兼容性 表,了解有关哪些模型可与 Chat API 配合使用的详细信息。

messages array``必需的

聊天格式 生成聊天完成的消息。

temperature number 可选的 默认值:1

使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。 我们通常建议更改此选项或 top_p,但不要同时更改两者。

top_p number 可选的 默认值:1

一种替代温度采样的方法,称为核采样,其中模型考虑具有 top_p 概率质量的标记的结果。 所以 0.1 意味着只考虑构成前 10% 概率质量的标记。 我们通常建议改变这个或“温度”,但不能同时改变两者。

n integer 可选的 默认值:1

为每个输入消息生成多少个聊天完成选项。

stream boolean 可选的 默认值:false

如果设置,将发送部分消息增量,就像在 ChatGPT 中一样。 令牌将在可用时作为纯数据 服务器发送事件 发送, 流由 data: [DONE] 消息终止。

有关 示例代码,请参阅 OpenAI Cookbook。

stop string or array 可选的 默认值:null

API 将停止生成更多令牌的最多 4 个序列。

max_tokens integer 可选的 默认值:inf

聊天完成时生成的最大 tokens 数量。 输入标记和生成标记的总长度受模型上下文长度的限制。

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 监控和检测滥用行为。 了解更多