聊天对话 (Chat)
根据对话历史创建模型响应,支持流式和非流式响应。
更新时间:
SupaStore 的聊天对话接口兼容 OpenAI Chat Completions API 格式。
📡 接口信息
- 请求方式:
POST - 接口路径:
/v1/chat/completions - Content-Type:
application/json
🔑 请求头参数
| 参数名 | 必填 | 示例/说明 |
|---|---|---|
| Authorization | 是 | Bearer sk-xxxxxx(您的 API 密钥) |
| Content-Type | 是 | application/json |
📦 请求体参数 (Request Body)
| 参数名 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| model | string | 是 | - | 使用的模型 ID,例如 claude-sonnet-4-6 或 gpt-5.6-luna。 |
| messages | array | 是 | - | 对话消息历史列表。每个消息项包含 role ("system", "user", "assistant") 和 content。 |
| temperature | number | 否 | 1.0 |
采样温度,介于 0 到 2 之间。值越大输出越随机,值越小越精确。 |
| top_p | number | 否 | 1.0 |
核采样概率,介于 0 到 1 之间。 |
| n | integer | 否 | 1 |
每个提示词生成几条候选回答。 |
| stream | boolean | 否 | false |
是否开启流式传输(打字机效果输出)。如果为 true,将使用 Server-Sent Events (SSE) 格式。 |
| max_tokens | integer | 否 | - | 生成回答的最大 Token 数限制。 |
| stop | string/array | 否 | null | 停止词序列。模型在遇到这些词时会停止生成。 |
💻 调用示例 (cURL)
非流式请求
curl -X POST "https://api.supastore.cc/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-5.6-luna",
"messages": [
{
"role": "user",
"content": "用两句话介绍你自己。"
}
],
"temperature": 0.7
}'
流式请求
curl -N "https://api.supastore.cc/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "user", "content": "用三点说明流式响应的好处。"}
],
"stream": true
}'
🟢 Node.js 示例
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.SUPASTORE_API_KEY,
baseURL: "https://api.supastore.cc/v1"
});
const stream = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [
{ role: "system", content: "你是一个简洁的中文助手。" },
{ role: "user", content: "解释一下什么是 API 中转。" }
],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
🐍 Python 示例
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["SUPASTORE_API_KEY"],
base_url="https://api.supastore.cc/v1",
)
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "你是一个简洁的中文助手。"},
{"role": "user", "content": "解释一下什么是 API 中转。"},
],
stream=True,
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
返回示例 (200 OK)
{
"id": "chatcmpl-8z1b...",
"object": "chat.completion",
"created": 1716666666,
"model": "gpt-5.6-luna",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "您好!有什么可以帮您?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 15,
"completion_tokens": 40,
"total_tokens": 55
}
}
常见错误码
| HTTP 状态码 | 常见原因 | 处理建议 |
|---|---|---|
400 |
messages 为空、JSON 格式错误、参数类型不正确 |
检查请求体,确保 model 和 messages 存在。 |
401 |
API Key 无效或 Header 缺失 | 检查 Authorization: Bearer YOUR_API_KEY。 |
402 |
余额不足 | 前往控制台充值或切换到低成本模型。 |
429 |
并发过高或请求过快 | 降低 Agent 工具并发,加入重试退避。 |
500 |
上游模型或网关临时异常 | 稍后重试,生产环境建议配置备用模型。 |