文本对话
文本对话有两个入口,都指向同一批模型:
| 入口 | 协议 | 适合 |
|---|---|---|
POST /chat/completions | OpenAI 兼容 | 大多数 SDK、客户端 |
POST /messages | Anthropic 兼容 | 原生 Anthropic 客户端、Claude Code |
网关自动处理的事
你不需要为下面这些做额外配置:
- 请求头重建:只带我们的渠道凭证,你的头不透传
- 协议路由:按模型决定上游走哪种协议,必要时自动桥接
- 缓存注入:请求里没有
cache_control时,自动在合适位置打断点;你自己打了断点就原样保留,不重复打 - 参数兼容清洗:部分模型不接受某些字段,会按模型能力自动去掉或纠正
OpenAI 格式
curl https://sheverai.com/8811c8/api/llm/v1/chat/completions \
-H "Authorization: Bearer $LOKO_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<模型 id>",
"messages": [
{"role": "system", "content": "你是严谨的技术助手"},
{"role": "user", "content": "解释一下什么是幂等"}
],
"stream": false
}'
常用字段:
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 必填,取自 /models |
messages | array | 必填,至少一条 |
stream | boolean | 是否流式,默认 false |
max_tokens / max_completion_tokens | integer | 二选一;两个都传且值不同会返回 400 |
Anthropic 格式
curl https://sheverai.com/8811c8/api/llm/v1/messages \
-H "Authorization: Bearer $LOKO_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<模型 id>",
"max_tokens": 1024,
"system": "你是严谨的技术助手",
"messages": [
{"role": "user", "content": "解释一下什么是幂等"}
]
}'
与 OpenAI 格式的三点差别:
system是独立字段,不放在messages里max_tokens必填- 返回结构是
content数组,不是choices
流式
两个入口都支持 stream: true,返回 SSE。逐条读取 data: 行,遇到 data: [DONE] 结束。
工具调用
OpenAI 格式用 tools + tool_choice;Anthropic 格式用 tools 并把结果以 tool_result 回传。工具调用与普通对话共用同一套计费口径。
常见错误
| 现象 | 原因 | 处理 |
|---|---|---|
400 MODEL_PROTOCOL_MISMATCH | 模型不支持当前协议 | 换另一个入口 |
400 max_tokens 冲突 | 两个上限字段值不一致 | 只传一个 |
| 402 | 积分不足 | 充值后重试 |
| 401 | 密钥无效 | 重新创建密钥 |
| 429 | 触发限流 | 指数退避后重试 |