本文档提供了聊天补全 API 端点的详细规范。通过本指南,您将学会如何生成对话式 AI 响应、管理流式传输以及利用特定于模型的参数来构建稳健的应用程序。该端点是创建交互式、基于文本的体验的核心。
聊天补全 API 使您能够构建利用大型语言模型来完成各种对话任务的应用程序。您提供一系列消息作为输入,模型将返回一个基于文本的响应。
下图说明了标准和流式 API 调用的请求和响应流程:

创建聊天补全
为给定的聊天对话创建模型响应。
POST /api/chat/completions
请求体
- model
string(required) (default:gpt-3.5-turbo) — 要使用的模型 ID。有关哪些模型适用于聊天 API 的详细信息,请参阅模型端点兼容性表。 - messages
array(required) — 构成迄今为止对话的消息列表。有关消息对象的结构,请参见下文。- message
object— 每个消息对象必须包含 role 和 content。- role
string(required) — 消息作者的角色。可以是 system、user、assistant 或 tool。 - content
string or array(required) — 消息的内容。对于多模态模型,这可以是一个字符串或一个内容部分数组(例如,文本和图片 URL)。 - name
string— 参与者的可选名称。为模型提供有关消息作者的上下文信息。 - tool_calls
array— 由模型生成的工具调用,例如函数调用。 - tool_call_id
string— 如果角色是 tool 则为必需项。此消息所响应的工具调用的 ID。
- role
- message
- temperature
number(default:1) — 控制随机性。降低该值会导致补全结果的随机性降低。当温度接近零时,模型将变得确定性和重复性。范围:0 到 2。 - top_p
number(default:1) — 通过核心采样控制多样性。0.5 表示只考虑所有按可能性加权的选项的一半。范围:0.1 到 1。 - stream
boolean(default:false) — 如果设置为 true,部分消息增量将作为服务器发送事件发送。流以 data: [DONE] 消息终止。 - max_tokens
integer— 要生成的最大令牌数。输入令牌和生成令牌的总长度受模型上下文长度的限制。 - presence_penalty
number(default:0) — 介于 -2.0 和 2.0 之间的数字。正值会根据新令牌是否已在文本中出现来对其进行惩罚,从而增加模型谈论新主题的可能性。 - frequency_penalty
number(default:0) — 介于 -2.0 和 2.0 之间的数字。正值会根据新令牌在文本中已有的频率来对其进行惩罚,从而降低模型逐字重复同一行的可能性。 - tools
array— 模型可能调用的工具列表。目前,仅支持函数作为工具。 - tool_choice
string or object— 控制模型调用哪个工具(如果有)。可以是 'none'、'auto'、'required' 或指定要调用的函数的对象。 - response_format
object— 一个指定模型必须输出格式的对象。设置为 { "type": "json_object" } 可启用 JSON 模式。
示例
基本请求
此示例演示了与模型的简单对话。
cURL 请求
curl --location 'https://your-aigne-hub-instance.com/api/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello! Can you explain what AIGNE Hub is in simple terms?"
}
]
}'流式请求
要以事件流的形式接收响应,请将 stream 参数设置为 true。
cURL 流式请求
curl --location 'https://your-aigne-hub-instance.com/api/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--header 'Accept: text/event-stream' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Write a short story about a robot who discovers music."
}
],
"stream": true
}'响应体
标准响应
当 stream 为 false 或未设置时,将返回一个标准的 JSON 对象。
- role
string— 此消息作者的角色,始终为 'assistant'。 - content
string— 由模型生成的消息内容。 - tool_calls
array— 由模型生成的工具调用(如果有)。
标准响应示例
响应体
{
"role": "assistant",
"content": "AIGNE Hub 是一个集中式网关,用于管理与来自不同提供商的各种 AI 模型的交互。它简化了 API 访问,处理计费和信用点数,并提供有关使用情况和成本的分析,充当组织 AI 服务的单一控制点。"
}流式响应
当 stream 为 true 时,API 返回一个 text/event-stream 数据块流。每个数据块都是一个 JSON 对象。
- delta
object— 消息增量的一个数据块。- role
string— 作者的角色,通常是 'assistant'。 - content
string— 消息的部分内容。 - tool_calls
array— 部分工具调用信息。
- role
- usage
object— 出现在最终数据块中,包含令牌使用情况统计。- prompt_tokens
integer— 提示中的令牌数。 - completion_tokens
integer— 生成的补全中的令牌数。 - total_tokens
integer— 请求中使用的总令牌数。
- prompt_tokens
流式数据块示例
事件流
data: {"delta":{"role":"assistant","content":"Unit "}}
data: {"delta":{"content":"734,"}}
data: {"delta":{"content":" a sanitation "}}
data: {"delta":{"content":"and maintenance "}}
data: {"delta":{"content":"robot, hummed..."}}
data: {"usage":{"promptTokens":15,"completionTokens":100,"totalTokens":115}}
data: [DONE]总结
聊天补全端点是将对话式 AI 集成到您应用程序中的强大工具。它通过各种参数(包括流式传输和工具使用)提供了灵活性,以支持广泛的用例。
有关其他可用 API 端点的更多信息,请参阅以下文档: