创建聊天创作图 (非流式)
该接口用于向模型发送一个提示(包含文本或图片),模型将返回一个或多个生成的回复。该接口特别适用于支持多模态输入(如图片处理、美化、识图创作)的模型,如 gpt-4o-image-vip。
接口信息
- 接口地址:
https://api.codingplanx.ai/v1/chat/completions - 请求方法:
POST - 内容类型:
application/json - 响应类型:
application/json
请求头 (Headers)
| 参数名称 | 必选 | 类型 | 示例值 | 说明 |
|---|---|---|---|---|
| Content-Type | 是 | String | application/json | 请求体格式 |
| Accept | 是 | String | application/json | 期望响应格式 |
| Authorization | 否 | String | Bearer {{YOUR_API_KEY}} | 用于身份验证的 API 密钥 |
请求参数 (Body)
请求体为 JSON 对象,包含以下字段:
| 参数名称 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| model | String | 是 | - | 要使用的模型 ID。例如:gpt-4o-image-vip。 |
| messages | Array | 是 | - | 对话消息列表。每个对象包含 role (user/assistant/system) 和 content。content 可以是字符串,也可以是包含类型和图片 URL 的对象数组。 |
| tools | Array | 是 | - | 模型可以调用的一组工具列表。目前仅支持函数。 |
| tool_choice | Object | 是 | none | 控制模型调用哪个函数。none 不调用,auto 自动选择。 |
| temperature | Number | 否 | 1 | 采样温度 (0-2)。越高越随机,越低越集中。 |
| top_p | Number | 否 | 1 | 核采样。只考虑概率质量前 P 的标记。建议与 temperature 二选一调整。 |
| n | Integer | 否 | 1 | 为每个输入生成多少个聊天补全选择。 |
| stream | Boolean | 否 | false | 是否流式传输。当前接口定义为非流式。 |
| max_tokens | Integer | 否 | inf | 生成的最大标记数。 |
| stop | String/Array | 否 | null | 停止符。API 将停止生成进一步的标记。 |
| presence_penalty | Number | 否 | 0 | -2.0 到 2.0 之间。惩罚已出现标记,增加谈论新话题的可能性。 |
| frequency_penalty | Number | 否 | 0 | -2.0 到 2.0 之间。根据频率惩罚重复标记。 |
| response_format | Object | 否 | - | 指定输出格式,如 { "type": "json_object" } 启用 JSON 模式。 |
| user | String | 否 | - | 代表最终用户的唯一标识符,用于监控滥用。 |
| seen | Integer | 否 | - | (测试版) 指定种子值以尽力实现确定性采样。 |
响应参数
| 参数名称 | 类型 | 说明 |
|---|---|---|
| id | String | 该次请求的唯一标识符。 |
| object | String | 对象类型,固定为 chat.completion。 |
| created | Integer | Unix 时间戳(秒)。 |
| choices | Array | 包含生成的响应选项。 |
| └ index | Integer | 选项的索引。 |
| └ message | Object | 包含 role 和 content 的消息对象。 |
| └ finish_reason | String | 停止原因(如 stop, length)。 |
| usage | Object | 令牌使用情况。 |
| └ prompt_tokens | Integer | 提示消耗的令牌数。 |
| └ completion_tokens | Integer | 补全消耗的令牌数。 |
| └ total_tokens | Integer | 总消耗。 |
示例
请求示例 (图片美化/创作)
{
"model": "gpt-4o-image-vip",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "美化一下这种图片,加上 我爱中国 四个字 尺寸[4:3] "},
{
"type": "image_url",
"image_url": {
"url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
}
}
]
}
],
"tools": [],
"tool_choice": "none"
}
响应示例
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "好的,已经为您处理好图片。您可以查看以下生成结果:[图片链接/描述]"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
FAQs (常见问题)
Q: 为什么在使用 response_format: { "type": "json_object" } 时请求会报错?
A: 使用 JSON 模式时,您必须在 messages 中明确指示模型生成 JSON(例如:系统提示词中加入“请以 JSON 格式回答”)。否则,模型可能会因为输出非 JSON 内容而导致死循环或报错。
Q: 如何确保每次请求生成的结果一致?
A: 虽然 AI 模型具有随机性,但您可以尝试设置 seen (seed) 参数并保持 temperature 为 0,同时关注响应中的 system_fingerprint 字段来监控后端环境是否发生变化。
Q: max_tokens 设置多大比较合适?
A: 这取决于您的应用场景。对于简短的图片描述,100-300 即可;如果需要详细的分析或长文本创作,建议设置在 1000 以上。请注意,输入标记(包含图片)和输出标记的总和不能超过模型的上下文限制。
Q: 如何处理图片输入?
A: 在 messages 的 content 中,使用 type: "image_url"。目前建议使用公网可访问的 HTTPS 图片链接。
Q: tools 和 tool_choice 是必须的吗?
A: 根据此接口定义,这两个字段被标记为必选。如果您不需要调用特定工具,请将 tools 设为空数组 [],并将 tool_choice 设为 "none"。