Chat Completions 聊天对话
Chat Completions 是 AISP 最核心的接口,支持多轮对话、流式输出(SSE)、Function Calling、多模态(Vision / 图片 / 音频 / 视频输入)等能力。 接口完全兼容 OpenAI Chat Completions API,可无缝替换 OpenAI SDK。
所有能力通过 messages[].content 数组传入(OpenAI 兼容格式)。当某个消息的 content 为对象数组时,平台会自动识别其中的 image_url / video_url / input_audio 等类型并透传给上游模型。 若当前 model 不支持该输入类型,接口会返回友好提示(而非报错),即可让客户顺利切换或补传。
POST /v1/chat/completions
兼容 OpenAI Chat Completions API,可直接用 OpenAI SDK 对接;
SDK 的 Base URL 填写
https://api.hejushuzi.com/v1请求头 Headers
| 名称 | 是否必须 | 说明 |
|---|---|---|
| Authorization | 是 | Bearer API_KEY |
| Content-Type | 是 | application/json |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,见下方支持模型 |
| messages | array | 是 | 聊天消息数组 |
| stream | boolean | 否 | 是否流式输出,默认 false |
| temperature | number | 否 | 随机性 0~2,默认 0.7 |
| max_tokens | int | 否 | 最大生成 Token 数 |
messages 格式
[
{ "role": "system", "content": "你是一名AI助手" },
{ "role": "user", "content": "你好" },
{ "role": "assistant", "content": "你好,请问有什么可以帮助你?" }
]Role 说明
| Role | 说明 |
|---|---|
| system | 系统提示词,用于设置 AI 行为 |
| user | 用户输入 |
| assistant | AI 历史回复 |
普通请求示例
POST /v1/chat/completions
Authorization: Bearer sk-xxxxxxxx
Content-Type: application/json
{
"model": "deepseek-v4-pro",
"messages": [
{ "role": "user", "content": "你好,介绍一下你自己" }
]
}普通返回示例
{
"id": "chatcmpl-xxxx",
"object": "chat.completion",
"created": 1710000000,
"model": "deepseek-v4-pro",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "你好!我是..." },
"finish_reason": "stop"
}
]
}prompt_tokens / completion_tokens / total_tokens 用于内部计费与日志, 但 对外响应不返回 usage 字段。如需核对用量,请在控制台「用量与账单」中查看。 流式输出
将 stream 设为 true,使用 SSE 协议返回:
POST /v1/chat/completions
{
"model": "deepseek-v4-pro",
"stream": true,
"messages": [
{ "role": "user", "content": "你好" }
]
}data: {
"id": "chatcmpl-xxx",
"object": "chat.completion.chunk",
"model": "deepseek-v4-pro",
"choices": [
{ "index": 0, "delta": { "role": "assistant", "content": "你" }, "finish_reason": null }
]
}
data: {
"id": "chatcmpl-xxx",
"object": "chat.completion.chunk",
"model": "deepseek-v4-pro",
"choices": [
{ "index": 0, "delta": { "content": "好" }, "finish_reason": null }
]
}
data: {
"id": "chatcmpl-xxx",
"object": "chat.completion.chunk",
"model": "deepseek-v4-pro",
"choices": [
{ "index": 0, "delta": {}, "finish_reason": "stop" }
]
}
data: [DONE]data: 块为增量内容;首帧 delta 携带 role: assistant;结束时发出 finish_reason 帧,最后以 data: [DONE] 收尾。客户端拼接 delta.content 即可实现打字机效果,结构符合 OpenAI SSE 规范。 流式响应同样不返回 usage,真实用量仍由平台内部统计用于计费与日志。 Tool Calling(工具调用)
接口支持 OpenAI 标准的 Tool Calling / Function Calling,可用于 Claude Code、Cursor、Trae 等 AI Agent 与编程工具的「执行工具 → 返回结果 → 继续回答」循环。 以下为非流式调用示例(流式调用只需把 stream 设为 true,工具增量会以 delta.tool_calls 分片返回,结束时 finish_reason=tool_calls)。
POST /v1/chat/completions
Authorization: Bearer sk-xxxxxxxx
Content-Type: application/json
{
"model": "deepseek-v4-flash",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市的天气",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string", "description": "城市名" } },
"required": ["city"]
}
}
}
],
"messages": [
{ "role": "user", "content": "查询北京的天气" }
]
}模型决定调用工具时,返回 finish_reason=tool_calls 与 message.tool_calls:
{
"id": "chatcmpl-xxxx",
"object": "chat.completion",
"created": 1710000000,
"model": "deepseek-v4-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_xxxx",
"type": "function",
"function": { "name": "get_weather", "arguments": "{\"city\": \"北京\"}" }
}
]
},
"finish_reason": "tool_calls"
}
]
}客户端执行工具后,追加 role=tool 消息(携带 tool_call_id)发起下一轮请求,模型会基于工具结果继续回答:
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "查询北京的天气" },
{
"role": "assistant",
"content": null,
"tool_calls": [
{ "id": "call_xxxx", "type": "function", "function": { "name": "get_weather", "arguments": "{\"city\": \"北京\"}" } }
]
},
{ "role": "tool", "tool_call_id": "call_xxxx", "content": "北京今日晴,气温 20~28 度" }
]
}- 非流式返回
message.tool_calls;流式返回delta.tool_calls(含index/id/function.name/function.arguments增量),结束时finish_reason=tool_calls。 - 支持多个/并行 Tool Call:上游返回多个
tool_calls时原样透传,客户端按index重组。 - 多轮对话:保留历史
messages(含assistant.tool_calls与role=tool)即可实现上下文关联。 - 需要模型支持工具调用,建议选择
deepseek-v4-flash、qwen3-coder-plus等支持 Tool Calling 的模型。
多模态输入示例
以下为多模态(图文)对话请求格式,使用 OpenAI 兼容的 content 数组:
POST /v1/chat/completions
Authorization: Bearer sk-xxxxxxxx
Content-Type: application/json
{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "请描述这张图片的内容" },
{ "type": "image_url", "image_url": { "url": "https://example.com/pic.jpg" } }
]
}
]
}支持视频、音频输入的多模态模型(如 qwen3.5-omni-plus、qwen3.7-plus)可使用:
{
"model": "qwen3.5-omni-plus",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "帮我分析这段视频" },
{ "type": "video_url", "video_url": { "url": "https://example.com/video.mp4" } },
{ "type": "input_audio", "input_audio": { "data": "base64...", "format": "mp3" } }
]
}
]
}- 图片输入(Vision):
qwen3-vl-plus、qwen3-vl-flash、qwen3.7-plus、kimi-k2.6、kimi/kimi-k3、qwen3.5-omni-plus - 图片 + 视频输入:
qwen3.7-plus - 全模态(图片 / 视频 / 音频输入,文本 / 音频输出):
qwen3.5-omni-plus
模型不支持某类输入时,接口返回 400 并在 msg 中给出友好提示(如“该模型不支持图片输入,请选择支持图片的模型”)。
支持模型
以下为常用推荐模型,完整清单与单价以控制台实时报价为准:
| 模型 | 厂商 | 特点 |
|---|---|---|
| deepseek-v4-pro | DeepSeek | 旗舰·推荐 |
| deepseek-v4-flash | DeepSeek | 高性价比 |
| deepseek-r1 | DeepSeek | 推理模型 |
| qwen3.7-max | 阿里 | 旗舰·推理 |
| qwen3.7-plus | 阿里 | 多模态(图/视频输入) |
| qwen3-vl-plus | 阿里 | 视觉理解 |
| qwen3.5-omni-plus | 阿里 | 全模态·文/图/视频/音频 |
| qwen3-coder-plus | 阿里 | 代码模型 |
| kimi-k2.6 | 月之暗面 | 多模态·Agent |
| ZHIPU/GLM-5.3 | 智谱 | 旗舰·推理·Coding |
| seed-2.1-pro | 火山 | 文本·推理 |
计费说明
- 计费方式:按实际消耗 Token 数计费
- 费用 = prompt_tokens / 1,000,000 × input_price + completion_tokens / 1,000,000 × output_price
- 费用保留 6 位小数,实时从账户余额扣除
- 余额不足时接口返回
402,不会调用模型
错误返回
接口统一返回 { code, msg } 结构(FastAdmin 规范),code 为 0 表示通用错误、非 0 表示对应业务错误:
{ "code": 0, "msg": "model is required" }
{ "code": 0, "msg": "messages is required" }
{ "code": 400, "msg": "messages 不能为空" }
{ "code": 402, "msg": "Insufficient balance" }
{ "code": 404, "msg": "Model not found" }Token 用量与计费
平台会统计每次请求的 prompt_tokens(输入)、completion_tokens(输出)、total_tokens(合计)、 及部分模型的 reasoning_tokens(推理 Token)、缓存命中 Token 等,用于内部计费与日志。
这些用量不会在 /v1/chat/completions 对外响应中返回。 如需核对用量与费用,请在控制台「用量与账单」页面查看明细。
最佳实践
- 推荐使用 stream=true 获得更好的用户体验
- 保留历史 messages 实现多轮对话
- 合理设置 max_tokens 控制成本
- 服务端保存 request_id 便于日志查询
