云智 Token Hub 提供两套兼容协议,共用同一枚 API Key。认证方式统一为 Authorization: Bearer <key>(Anthropic 端点同时接受 x-api-key)。
| 协议 | Base URL | 端点 | 典型客户端 |
|---|---|---|---|
| OpenAI 兼容 | https://maas.piteyun.com/v1 | /chat/completions · /models | OpenCode、openai SDK |
| Anthropic 兼容 | https://maas.piteyun.com | /v1/messages | Claude Code、anthropic SDK |
| OpenAI Responses | — | /v1/responses | Codex(已上线,见教程) |
GET /v1/models
返回当前密钥可用的模型列表,也是 Helper 验证密钥的端点:
curl -H "Authorization: Bearer $YUNZHI_API_KEY" \
https://maas.piteyun.com/v1/models
响应为标准结构 {"data": [{"id": "glm-5.3"}, …]}。未带有效密钥返回 401。
POST /v1/chat/completions
非流式:注意包裹结构
stream: false 时网关返回包裹结构 {code, message, data},标准 openai SDK 直接读 body.choices 会得到 undefined,请从 body.data.choices 取值(与 UA 无关):
{
"code": 0, "message": "success",
"data": { "choices": […], "usage": {…} }
}
流式:标准 OpenAI SSE
stream: true 返回标准 chat.completion.chunk 事件流,以 data: [DONE] 结束,多数模型在最后一个 chunk 携带 usage。编码工具默认走流式,不受包裹结构影响。
免费池与个别模型的抖动
实测中
-free 后缀模型与 qwen3.7-max 偶发 1 行无法解析的数据,qwen3.7-max 偶发把 <think> 混入 content 且缺失 usage(复测通常正常)。客户端应容错处理:跳过无法解析的行、不强依赖流内 usage。付费模型(glm-5.3、glm-5.3-flash、deepseek-v4-flash-0731、kimi-k2.7)未见抖动。
POST /v1/messages(Anthropic)
返回标准 Anthropic message 格式(无包裹),流式为标准 SSE:message_start → thinking block → text block → message_delta → message_stop。推理模型的推理过程经 thinking block 输出。
curl https://maas.piteyun.com/v1/messages \ -H "Authorization: Bearer $YUNZHI_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{"model":"glm-5.3-flash","max_tokens":100, "messages":[{"role":"user","content":"你好"}]}'
错误码
| 状态码 | 含义 | 处理建议 |
|---|---|---|
| 401 | API Key 无效或过期 | 检查是否复制了遮罩值;控制台重建密钥 |
| 402 | 额度不足 | 控制台充值或购买资源包 |
| 403 | 权限不足 / 端点路径错误 | 检查密钥权限;确认 Base URL 正确(Anthropic 用根端点) |
| 404 | 端点不存在 | 注意:云智 404 是 200 + HTML 兜底页,按 content-type 判断 |
| 400 | 请求参数错误 | 检查 model ID 是否来自 /v1/models 实时列表 |