认证
所有请求都需要在 HTTP 头携带 Bearer 令牌。令牌在控制台「令牌」页面创建,
格式以 sk- 开头。
如果你的令牌丢失或被泄露,控制台可一键禁用。每个账号可创建多个令牌, 建议按「应用 / 环境」拆分,便于分别统计用量和单独吊销。
聊天补全
最核心的接口,向模型发送一组消息并获得回复。
curl https://api.xu55.cn/v1/chat/completions \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "你是一个简洁的助手"},
{"role": "user", "content": "用一句话解释什么是向量数据库"}
],
"temperature": 0.7,
"max_tokens": 1024
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-你的令牌",
base_url="https://api.xu55.cn/v1",
)
resp = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个简洁的助手"},
{"role": "user", "content": "用一句话解释什么是向量数据库"},
],
temperature=0.7,
max_tokens=1024,
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-你的令牌",
baseURL: "https://api.xu55.cn/v1",
});
const resp = await client.chat.completions.create({
model: "deepseek-chat",
messages: [
{ role: "system", content: "你是一个简洁的助手" },
{ role: "user", content: "用一句话解释什么是向量数据库" },
],
temperature: 0.7,
max_tokens: 1024,
});
console.log(resp.choices[0].message.content);
请求参数
| 参数 | 类型 | 说明 |
|---|---|---|
model 必填 | string | 模型标识,如 deepseek-chat、qwen-max。可用值见「模型列表」接口。 |
messages 必填 | array | 对话消息数组,每项含 role(system / user / assistant)与 content。 |
temperature | number | 采样温度,0–2,默认 1。值越小输出越确定。 |
top_p | number | 核采样概率阈值,与 temperature 二选一调节即可。 |
max_tokens | integer | 本次生成的最大 token 数。留空则由上游决定。 |
stream | boolean | 是否以 SSE 流式返回,默认 false。 |
stop | string / array | 遇到该字符串时停止生成。 |
响应示例
{
"id": "chatcmpl-9Zk2xQvB1nT7",
"object": "chat.completion",
"created": 1757701200,
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "向量数据库是专门存储和检索向量……" },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 64,
"total_tokens": 92
}
}
usage 中的 token 数即为本次扣费依据。用量在控制台「日志」页可逐条核对。
流式输出
设置 stream: true 后,响应会以 SSE(Server-Sent Events)逐块返回,
适合聊天界面等需要即时反馈的场景。
curl https://api.xu55.cn/v1/chat/completions \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "讲个故事"}],
"stream": true
}'
from openai import OpenAI
client = OpenAI(api_key="sk-你的令牌", base_url="https://api.xu55.cn/v1")
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "讲个故事"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
每个数据块形如 data: {"choices":[{"delta":{"content":"..."}}]},
流以 data: [DONE] 结束。
模型列表
获取当前令牌可访问的全部模型。
curl https://api.xu55.cn/v1/models \
-H "Authorization: Bearer sk-你的令牌"
返回的 id 即为聊天补全接口中 model 字段的取值。
实际可用模型以控制台为准,随上游持续扩充。
用量与计费
按实际消耗的 token 数计费,公式为:
费用 = (输入 tokens × 输入单价 + 输出 tokens × 输出单价) × 分组倍率。
不同模型的单价不同,控制台「定价」页可查到实时倍率表。
- 充值余额:用多少扣多少,不过期,不退现金(依服务条款第三条)。
- 包月订阅:每月发放固定额度,按月重置,未用完不累计。
- 逐条明细:每次调用的时间、模型、用量与费用均可查。
错误码
遵循 OpenAI 的错误格式,HTTP 状态码 + error 对象。
| 状态码 | 类型 | 含义与处理建议 |
|---|---|---|
400 | invalid_request_error | 请求参数有误。检查 model 是否拼写正确、必填字段是否齐全。 |
401 | invalid_api_key | 令牌无效或已禁用。确认请求头格式,必要时重建令牌。 |
402 | insufficient_quota | 余额不足。充值后自动恢复,无需重启服务。 |
404 | not_found | 模型不存在或当前分组无权访问。核对模型列表。 |
429 | rate_limit_exceeded | 触发速率限制。按指数退避重试,或申请提升额度。 |
500 | server_error | 服务内部错误,本次不计费。可安全重试。 |
503 | upstream_unavailable | 上游模型服务不可用。建议换用同类模型或稍后重试。 |
速率限制
为保障稳定性,系统按令牌维度限制并发与请求频率。达到上限时返回 429,
响应头会带上重置时间。
| 限制项 | 默认值 | 说明 |
|---|---|---|
| 请求频率 | 300 次 / 分钟 | 超出后按 429 拒绝;短时突发最多 10 次。 |
| 并发请求 | 8 路 | 超出的请求返回 503,建议客户端做指数退避重试。 |
| 单请求超时 | 600 秒 | 超时按失败处理并中断计费。 |
有更高并发需求的场景,可发邮件到 support@xu55.cn 申请调整配额, 我们会按实际用量评估后答复。