DOCUMENTATION
API 接入文档
OpenAI 兼容
出海API 采用 OpenAI Chat Completions 兼容协议:任何支持自定义 Base URL 的 OpenAI SDK / 客户端,改两个参数(Base URL + API Key)即可无缝迁移。
1. 获取 API Key
登录后进入 控制台 → API 密钥 → 生成密钥。密钥格式为 sk-chuhai-...,仅在创建时完整显示一次,请妥善保存。密钥在服务端只保存 SHA-256 哈希,丢失后只能重新生成。
2. 基础信息
- Base URL:
http://localhost:3000/v1
- 对话接口:
POST /v1/chat/completions(支持 stream: true 流式)
- 模型列表:
GET /v1/models
- 鉴权方式:请求头
Authorization: Bearer sk-chuhai-...
- 限流:每个 API Key 每分钟 60 次请求
3. 发起第一次调用
curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-chuhai-你的密钥" \
-d '{
"model": "deepseek-v3",
"messages": [
{"role": "system", "content": "你是一个乐于助人的助手"},
{"role": "user", "content": "你好,介绍一下你自己"}
],
"stream": false
}'
# Python(openai 官方 SDK 直接可用)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:3000/v1",
api_key="sk-chuhai-你的密钥",
)
resp = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
# 流式输出
stream = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "写一首关于出海的诗"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
// JavaScript / Node.js(openai SDK)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "http://localhost:3000/v1",
apiKey: "sk-chuhai-你的密钥",
});
const resp = await client.chat.completions.create({
model: "deepseek-v3",
messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
4. 响应格式(OpenAI 标准)
{
"id": "chatcmpl-xxxx",
"object": "chat.completion",
"created": 1760000000,
"model": "deepseek-v3",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "你好!……" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 12, "completion_tokens": 48, "total_tokens": 60 }
}
5. 计费规则
- 输入与输出 token 分别计价,单价见 模型广场(按每百万 tokens 报价)
- 调用成功后按实际用量从钱包余额实时扣减,并生成流水(控制台 → 钱包可查)
- 余额不足时返回
402 INSUFFICIENT_BALANCE,充值后自动恢复
- 上游调用失败不计费;免费模型(如 GLM-4-Flash)不扣费但记录用量
6. 错误码
| HTTP | 错误码 | 说明 |
| 400 | INVALID_PARAM | 参数缺失或格式错误 |
| 401 | INVALID_API_KEY / KEY_REVOKED | 密钥无效或已停用 |
| 402 | INSUFFICIENT_BALANCE | 余额不足,请充值 |
| 403 | QUOTA_EXCEEDED | 密钥额度已用尽 |
| 404 | MODEL_NOT_FOUND | 模型不存在或已下线 |
| 429 | RATE_LIMITED | 触发限流(60 次/分钟/Key) |
| 503 | NO_CHANNEL | 模型暂无可用上游渠道 |
| 502 | UPSTREAM_ERROR | 上游渠道调用失败(不计费) |
7. 接入真实上游(管理员)
本站内置渠道路由:默认走本地模拟渠道(离线演示)。管理员在 管理后台 → 渠道 中添加 OpenAI 兼容渠道(DeepSeek / 通义千问 / GLM / Kimi 等均提供该协议),填入厂商 Base URL 与 API Key 并启用后,对应模型自动切换为真实调用,计费与计量链路完全一致。
QUICK START
三行代码
接入全部国产大模型
生成密钥 → 复制示例 → 发起调用