OpenAI兼容-Chat
更新时间 2026-09-06 17:28:47
最近更新时间: 2026-09-06 17:28:47
本文是关于 OpenAI兼容-Chat接口的详情描述。接口支持通用对话、逻辑推理、代码编写、Function‑calling 工具调用、联网搜索、结构化 JSON 输出、思考模式等能力;支持流式 / 非流式两种返回模式。
接口详情
http调用
请求方式:POST
请求路径:https://ai.ctaigw.cn/v1/chat/completions
说明
归属中国大陆区域的模型,HTTP 请求地址: https://ai.ctaigw.cn/v1/chat/completions
归属全球区域的模型,根据算力所属区域,HTTP请求地址存在差异,具体模型的请求地址详见控制台-模型广场-模型详情页-调用示例。
美洲: https://ai.ctaigw.com/us/v1/chat/completions,欧洲:https://ai.ctaigw.com/eu/v1/chat/completions,亚洲:https://ai.ctaigw.com/as/v1/chat/completions
您需要先获取与配置 APP Key。若通过OpenAI SDK进行调用,需要安装SDK。
请求头
| 参数 | 必填 | 说明 |
|---|---|---|
| Content‑Type | 是 | 固定application/json |
| Authorization | 是 | Bearer ${YOUR_APP_KEY} |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称 |
| messages | array | 是 | 对话上下文数组,按对话顺序排列 |
| messages[].role | string | 是 | 角色:system/user/assistant/tool |
| messages[].content | string | 是 | 对话文本内容; 文本模式下使用字符串; 多模态才使用 array 格式,表示多个对话内容列表,每个列表项为一个content object,每个content object包含type、image_url、text等信息。 |
| messages[].content[].type | string | 是 | 输入模态类型,取值范围如下: text、image_url、input_audio、video、video_url |
| messages[].content[].text | string | 是 | 输入的文本。当type为text时,是必选参数。 |
| messages[].content[].image_url | object | 是 | 输入的图片信息。当type为image_url时是必选参数。 |
| messages[].content[].image_url.url | string | 是 | 图片URL |
| messages[].content[].input_audio | object | 是 | 输入的音频信息。当type为input_audio时是必选参数。 |
| messages[].content[].input_audio.data | string | 是 | 音频URL |
| messages[].content[].input_audio.format | string | 是 | 输入音频的格式,如mp3、wav等。 |
| messages[].content[].video | array | 是 | 输入的图片列表形式的视频信息。当type为video时是必选参数 |
| messages[].content[].video_url | object | 是 | 输入的视频文件信息。当type为video_url时是必选参数 |
| messages[].content[].video_url.url | string | 是 | 视频url |
| stream | boolean | 否 | 默认false。 true开启流式输出,边生成边返回,长文本建议开启,降低超时风险 |
| stream_options | object | 否 | 仅stream=true生效; include_usage: true在最后一个 chunk 返回 token 消耗统计 |
| temperature | float | 否 | 取值[0,2),控制随机性;越高越发散,越低越确定;建议和 top_p 只设置其中一个 |
| top_p | float | 否 | 取值(0,1.0],核采样;控制生成多样性 |
| response_format | object | 否 | 取值范围:{"type":"text"} 、{"type":"json_object"} {"type":"json_object"}代表开启结构化 JSON 输出 |
| thinking | object | 否 | 思考功能 |
| thinking.type | string | 否 | 是否开启思考模式 取值范围:enabled、disabled |
非流式响应参数
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 请求唯一 ID |
| object | string | 固定值 chat.completion |
| created | integer | unix 时间戳(秒) |
| model | string | 使用模型名称 |
| choices | array | 模型回复数组 |
| choices[].index | integer | 当前对象在choices数组中的索引 |
| choices[].finish_reason | string | 停止原因: stop正常结束; length达到长度上限; tool_calls触发工具调用 |
| choices[].message | object | 模型输出的消息 |
| choices[].message.content | string | 模型回复内容 |
| choices[].message.reasoning_content | string | 思考模式返回思维链内容 |
| choices[].message.role | string | assistant |
| usage | object | token 消耗统计 |
| usage.prompt_tokens | integer | 输入 token |
| usage.completion_tokens | integer | 输出 token(含 reasoning_tokens) |
| usage.total_tokens | integer | 总消耗 token |
| usage.prompt_tokens_details | object | 输入 Token 的细粒度分类 |
| usage.prompt_tokens_details.audio_tokens | integer | 输入音频token数 |
| usage.prompt_tokens_details.cached_tokens | integer | 命中 Cache 的 Token 数 |
| usage.prompt_tokens_details.text_tokens | integer | 输入的文本 Token 数 |
| usage.prompt_tokens_details.image_tokens | integer | 输入的图像 Token 数 |
| usage.prompt_tokens_details.video_tokens | integer | 输入的视频文件或者图像列表 Token 数 |
| usage.prompt_tokens_details.cache_creation | object | 显式缓存创建信息 |
| usage.prompt_tokens_details.cache_creation.ephemeral_5m_input_tokens | integer | 创建显式缓存的 Token 数 |
| usage.prompt_tokens_details.cache_creation_input_tokens | integer | 创建显式缓存的 Token 数 |
| usage.prompt_tokens_details.cache_type | string | 使用显式缓存时,参数值为ephemeral,否则该参数不存在 |
| usage.completion_tokens_details | object | 输出token详情 |
| usage.completion_tokens_details.reasoning_tokens | integer | 思考过程消耗 token |
| usage.completion_tokens_details.audio_tokens | integer | 输出的音频 Token 数 |
| usage.completion_tokens_details.text_tokens | integer | 输出的文本 Token 数 |
流式响应参数
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 本次调用唯一标识符,同一次请求所有 chunk 的 id 保持一致 |
| model | string | 模型名称 |
| object | string | 始终为chat.completion.chunk |
| created | integer | 本次请求被创建时的时间戳。每个chunk有相同的时间戳 |
| service_tier | string | 固定为null |
| system_fingerprint | string | 固定为null |
| choices | array | 模型增量生成数组;开启include_usage=true时,最后一块 chunk 此字段为空数组 |
| choices[].index | integer | 当前响应在 choices 数组下标;入参 n>1 时依靠该字段区分多份回复,用于拼接完整内容 |
| choices[].finish_reason | string | 生成停止原因:• null:生成未结束• stop:自然结束或命中 stop 停止词• length:达到输出长度上限• tool_calls:触发工具调用 |
| choices[].delta | object | 增量消息对象,核心增量输出字段 |
| choices[].delta.role | string | 消息角色,仅第一个 chunk 返回,如assistant |
| choices[].delta.content | string | 增量文本回答内容,分片拼接得到完整回答 |
| choices[].delta.reasoning_content | string | 增量思维链内容,开启思考模式返回,分片拼接得到完整思考过程 |
| choices[].delta.function_call | object | 预留字段,默认为 null,请使用tool_calls |
| choices[].delta.audio | object | 多模态模型音频输出,文本模型不返回 |
| choices[].delta.audio.data | string | Base64 编码增量音频数据 |
| choices[].delta.audio.expires_at | integer | 音频过期时间戳 |
| usage | object | Token 消耗统计,仅在 include_usage=true 时出现在最后一个 chunk |
| usage.prompt_tokens | integer | 输入总 token 数 |
| usage.completion_tokens | integer | 输出总 token 数 |
| usage.total_tokens | integer | 请求总 token = prompt_tokens + completion_tokens |
| usage.completion_tokens_details | object | 输出 token 细分(部分模型返回) |
| usage.completion_tokens_details.audio_tokens | integer | 输出音频 token 数,可选 |
| usage.completion_tokens_details.reasoning_tokens | integer | 思考过程消耗 token 数,可选 |
| usage.completion_tokens_details.text_tokens | integer | 输出文本 token 数,可选 |
| usage.prompt_tokens_details | object | 输入 token 细分 |
| usage.prompt_tokens_details.audio_tokens | integer | 输入音频 token |
| usage.prompt_tokens_details.text_tokens | integer | 输入文本 token |
| usage.prompt_tokens_details.video_tokens | integer | 输入视频 token |
| usage.prompt_tokens_details.image_tokens | integer | 输入图片 token |
| usage.prompt_tokens_details.cached_tokens | integer | 上下文缓存命中 token 数量 |
| usage.cache_creation | object | 显式上下文缓存创建信息 |
| usage.cache_creation.cache_creation_input_tokens | integer | 创建缓存消耗 token |
| usage.cache_creation.ephemeral_5m_input_tokens | integer | 短时缓存创建 token |
| usage.cache_creation.cache_type | string | 缓存类型,固定值 ephemeral |
请求/响应示例
文本生成请求
curl -X POST https://ai.ctaigw.cn/v1/chat/completions \
-H "Authorization: Bearer ${YOUR_APP_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-max",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "简单介绍向量数据库的用途"
}
]
}'多模态请求
curl -X POST https://ai.ctaigw.cn/v1/chat/completions \
-H "Authorization: Bearer ${YOUR_APP_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model": "Qwen3-Omni-Flash",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://aaaa.ctyun.cn/pic/01.jpeg"
}
},
{
"type": "text",
"text": "这是什么"
}
]
}
]
}'非流式响应
{
"choices": [
{
"message": {
"role": "assistant",
"content": "向量数据库主要用于存储向量嵌入,支持相似度检索。"
},
"finish_reason": "stop",
"index": 0
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 1000,
"completion_tokens": 200,
"total_tokens":1200,
"prompt_tokens_details": {
"cached_tokens": 600
}
},
"created": 1735122033,
"model": "qwen3.7-max",
"id": "chatcmpl‑xxxx‑xxxx‑xxxx‑xxxxxxxx"
}流式响应
{
"id": "chatcmpl‑xxxx‑xxxx‑xxxx‑xxxxxxxx",
"object": "chat.completion.chunk",
"created": 1735122033,
"model": "qwen3.7-max",
"choices": [
{
"index": 0,
"delta": {
"content": "向量数据库主要用于存储向量嵌入,支持相似度检索",
"role": assistant
},
"finish_reason": null
}
]
}异常响应示例
{
"error": {
"type:": "Invalid_request",
"code": "missing_parameter",
"message": "Missing required parameters"
}
}