邀请好友,获取免费 Tokens!了解更多

聊天补全 API 文档 (Chat Completions)

本接口用于给定一个提示(Prompt),模型将返回一个或多个预测的补全结果。您可以根据对话历史生成文本,并控制生成过程的随机性、长度和格式。

  • 接口名称:列出模型 / 聊天补全
  • 请求方法GET (注:根据提供的数据定义)
  • 请求地址https://api.codingplanx.ai/v1/models
  • 状态:已发布 (Released)

1. 请求参数

1.1 Header 参数

参数名必选类型示例值说明
Content-TypeStringapplication/json接口请求体格式
AcceptStringapplication/json接口响应格式
AuthorizationStringBearer {{YOUR_API_KEY}}用于身份验证的 API 密钥

1.2 Body 参数

尽管原始定义为 GET,但根据业务逻辑,以下参数通常通过 JSON Body 传递。

参数名类型必选默认值描述
modelstring-要使用的模型 ID。例如:gpt-3.5-turbo
messagesarray-至今为止对话所包含的消息列表。每条消息包含 rolecontent
temperaturenumber1采样温度,介于 0 和 2 之间。值越高输出越随机。
top_pnumber1核采样。0.1 表示只考虑构成前 10% 概率质量的标记。
ninteger1为每个输入生成多少个聊天补全选择。
streambooleanfalse是否流式传输。设置为 true 时,将发送部分消息增量(SSE)。
stopstring/arraynull停止序列。模型在遇到这些字符时将停止生成。
max_tokensintegerinf生成的最大标记(Tokens)数。
presence_penaltynumber0-2.0 到 2.0 之间的数字。正值增加模型谈论新主题的可能性。
frequency_penaltynumber0-2.0 到 2.0 之间的数字。正值降低模型重复相同行的可能性。
logit_biasobjectnull修改指定标记出现在补全中的可能性。
userstring-代表最终用户的唯一标识符,帮助监控滥用。
response_formatobject-指定模型输出格式,如 { "type": "json_object" } 启用 JSON 模式。
toolsarray-模型可以调用的工具列表(如函数)。
tool_choiceobjectauto控制模型调用哪个函数。

2. 响应参数

参数名类型说明
idstring该次请求的唯一标识符。
objectstring对象类型,通常为 chat.completion
createdinteger请求创建的时间戳(秒)。
choicesarray包含补全结果的列表。
├─ indexinteger该选择在列表中的索引。
├─ messageobject模型生成的具体消息。
│ ├─ rolestring角色,通常为 assistant
│ └─ contentstring消息正文内容。
└─ finish_reasonstring停止原因,如 stop (正常停止) 或 length (达到最大长度)。
usageobject令牌使用情况统计。
├─ prompt_tokensinteger输入消耗的 Token 数。
├─ completion_tokensinteger输出生成的 Token 数。
└─ total_tokensinteger总消耗 Token 数。

3. 请求示例

成功请求示例

curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "Hello there, how may I assist you today?"
    }
  ],
  "temperature": 1,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "user": "user-1234"
}'

成功响应示例

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

4. FAQs (常见问题)

Q: 为什么文档里显示是 GET 方法,但看起来像是 POST 请求? A: 在标准的 OpenAI 规范中,创建补全通常使用 POST 方法。但根据您提供的元数据,该接口被定义为 GET。请确保在调用时确认服务器端的实际配置。如果 GET 不生效,请尝试使用 POST

Q: temperaturetop_p 应该如何选择? A: 我们建议只调整其中一个。如果你想要更精准、确定的回答,请降低 temperature(如 0.2);如果你想要更多样化、创意的回答,可以提高它。

Q: 如何启用 JSON 模式? A: 你需要在 response_format 中设置 { "type": "json_object" },并且在 messages 中明确告知模型(System 或 User 消息)需要输出 JSON 格式,否则模型可能会产生解析错误或无限空白。

Q: 什么是 presence_penaltyfrequency_penalty A:

  • presence_penalty(存在惩罚):侧重于惩罚已经出现过的主题,鼓励模型谈论新话题。
  • frequency_penalty(频率惩罚):侧重于惩罚重复出现的词汇,防止模型在短时间内重复同样的句子。

Q: 流式输出 (stream: true) 是如何工作的? A: 开启流式后,API 会通过 Server-Sent Events (SSE) 逐字返回数据。每个数据块都是以 data: 开头的 JSON 字符串,最后以 data: [DONE] 结束。这对于长文本生成的实时展示非常有用。