OpenAI 协议兼容 · 三分钟接入 · 支持流式输出与向量接口
只需三步:注册获取密钥 → 替换 baseURL → 发起调用
| 步骤 | 操作 | 位置 |
|---|---|---|
| ① 注册账号 | 免费注册,立即获得 ¥15 体验额度与默认密钥 | 立即注册 → |
| ② 获取密钥 | 在控制台「密钥管理」创建 API Key(仅创建时完整显示) | 密钥管理 → |
| ③ 发起调用 | 将 baseURL 指向本平台,使用 th- 前缀模型名调用 | 查看模型列表 → |
curl https://tokenhub.hbwrrj.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-th-您的API密钥" \
-d '{
"model": "th-glm-5.3",
"messages": [{"role": "user", "content": "写一个新年祝福语"}]
}'所有 API 请求均通过 HTTP Header 携带密钥:Authorization: Bearer sk-th-xxxx。 密钥可在控制台随时创建、停用、删除。密钥与账户钱包直接关联,调用消耗从钱包余额(或有效资源包 / 优惠券)中扣除。
POST /v1/chat/completions — 核心对话接口,支持多轮对话与流式输出
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 ID,th- 前缀,如 th-glm-5.3 |
messages | array | 是 | 对话消息数组,role 支持 system / user / assistant |
stream | boolean | 否 | 默认 false;true 时返回 SSE 流 |
temperature | number | 否 | 采样温度,建议 0.1-1.0 |
max_tokens | integer | 否 | 限制回复长度 |
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1730000000,
"model": "th-glm-5.3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "新年快乐!愿您在新的一年里..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 45,
"total_tokens": 57
}
}设置 stream: true,以 SSE(Server-Sent Events)逐块返回生成内容
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","model":"th-glm-5.3","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","model":"th-glm-5.3","choices":[{"index":0,"delta":{"content":"新年"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","model":"th-glm-5.3","choices":[{"index":0,"delta":{"content":"快乐"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","model":"th-glm-5.3","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":12,"completion_tokens":45,"total_tokens":57}}
data: [DONE]流式响应以 data: [DONE] 结束; 最后一帧携带完整 usage 用量统计(OpenAI SDK 会自动拼接流内容,无需额外处理)。
GET /v1/models — 返回当前账号可调用的全部模型
{
"object": "list",
"data": [
{
"id": "th-glm-5.3",
"object": "model",
"owned_by": "tokenhub",
"context_length": 32000
},
{
"id": "th-deepseek-v4-pro",
"object": "model",
"owned_by": "tokenhub",
"context_length": 1441792
}
]
}POST /v1/embeddings — 文本向量化,用于检索、聚类等场景(首发已接入 GLM / DeepSeek 对话系列,向量模型以 GET /v1/models 返回为准)
curl https://tokenhub.hbwrrj.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-th-您的API密钥" \
-d '{
"model": "th-embedding-v1",
"input": "把这段文本转换为向量"
}'{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0123, -0.0456, 0.0789, "...共 1024 维"]
}
],
"model": "th-embedding-v1",
"usage": { "prompt_tokens": 9, "total_tokens": 9 }
}统一 JSON 错误格式:{ error: { code, message } }
| 错误码 | 含义 | 处理建议 |
|---|---|---|
40001 | API Key 无效或已停用 | 检查 Authorization 头格式与密钥状态 |
40002 | 账户余额不足 | 前往控制台钱包充值后重试 |
40003 | 模型不存在或未开放 | 核对模型 ID,或查看 GET /v1/models |
40004 | 请求参数非法 | 检查 messages / model 等必填字段 |
40101 | 请求体格式错误 | 确认 Content-Type: application/json |
42901 | 请求频率超限 | 降低并发或稍后重试,必要时联系提额 |
50001 | 平台内部异常 | 请稍后重试;持续出现请提交工单 |
50301 | 上游服务暂不可用 | 平台自动重试调度,请稍后重试 |
50302 | 上游渠道临时不可用 | 平台已自动切换备用渠道,若仍返回请降低并发后重试 |
50303 | 上游渠道未配置 | 请联系运营开通该模型对应渠道 |
50401 | 上游响应超时 | 建议设置合理超时与重试策略 |
两行代码完成迁移,业务代码零改动
// OpenAI SDK 迁移:只需修改两行
const openai = new OpenAI({
apiKey: "sk-th-您的API密钥", // ① 换成 TokenHub 密钥
baseURL: "https://tokenhub.hbwrrj.com/v1" // ② 换成 TokenHub 地址
});
// 其余代码(模型调用、流式、向量)全部保持不变
// 模型名称使用 th- 前缀,如 th-glm-5.3