API 协议参考
226-ai.com 同时支持两套协议。前者覆盖 99% 的第三方工具,后者是 Claude Code 等严格 Anthropic 客户端的必需。
一、OpenAI 兼容协议(默认)
Base URL
https://api.226-ai.com/v1认证
Authorization: Bearer sk-你的token1. /v1/chat/completions —— 对话
请求:
POST /v1/chat/completions
Authorization: Bearer sk-xxx
Content-Type: application/json
{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "system", "content": "你是简洁的助手。"},
{"role": "user", "content": "写一个 Python 的斐波那契。"}
],
"temperature": 0.7,
"max_tokens": 500,
"stream": false
}支持参数(按最常用排序):
model(必须):模型名,见04-models-pricing.mdmessages(必须):消息数组,role∈system / user / assistant / toolmax_tokens:输出上限。Claude 系模型建议显式填,否则有些模型默认 8K 太保守temperature:0-2,默认 1。代码生成建议 0-0.3top_p:0-1,与 temperature 二选一用stream:true走 SSE,见下文tools、tool_choice:函数调用,OpenAI 格式定义response_format:{"type": "json_object"}强制 JSON 输出(仅部分模型支持)
响应(非流式):
{
"id": "msg_xxx",
"object": "chat.completion",
"created": 1776xxxxxx,
"model": "claude-sonnet-4-6",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 38,
"completion_tokens": 412,
"total_tokens": 450
}
}2. /v1/models —— 列模型
curl https://api.226-ai.com/v1/models \
-H "Authorization: Bearer sk-xxx"返回你这个 token 所属分组当前能调的全部模型。数量会根据启用的渠道动态变化。
3. /v1/embeddings —— 文本向量
curl https://api.226-ai.com/v1/embeddings \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{"model":"text-embedding-3-small","input":"hello"}'内测期 embedding 模型依赖 OpenAI 渠道(等账户充值后启用)。
二、Anthropic 原生协议(Claude Code 入口)
Base URL
https://api.226-ai.com注意不带 /v1 后缀—— Anthropic 官方 URL 风格就是 https://api.anthropic.com/v1/messages,所以 Base URL 到域名就止住。
认证(两种方式任选)
x-api-key: sk-你的token
anthropic-version: 2023-06-01或者(兼容 Claude Code 环境变量):
Authorization: Bearer sk-你的token
anthropic-version: 2023-06-01/v1/messages
POST /v1/messages
x-api-key: sk-xxx
anthropic-version: 2023-06-01
Content-Type: application/json
{
"model": "claude-opus-4-7",
"max_tokens": 1024,
"system": "你是代码审查助手。",
"messages": [
{"role": "user", "content": "审查这段代码:..."}
]
}与 OpenAI 格式的关键差别:
system是顶层字段,不是 messages 里的一条max_tokens必填(Anthropic 严格要求)- 响应里的内容在
content数组里,每项{type, text/...}
响应:
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"content": [{"type": "text", "text": "..."}],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 45,
"output_tokens": 320,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0
}
}Prompt Caching(节省缓存费)
长 system prompt 或长 context 建议标记缓存。2 次请求内复用命中,后续按 输入价的 10% 扣费:
{
"model": "claude-opus-4-7",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "你是资深 Go 工程师,严格遵循 Google Go style guide...(长 system prompt 几千字)",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [...]
}缓存命中情况在 usage.cache_read_input_tokens / cache_creation_input_tokens 字段里看。
三、流式响应(SSE)
所有 stream: true 的请求走 Server-Sent Events。每个数据帧格式:
data: {"id":"...", "choices":[{"delta":{"content":"写"}}], ...}
data: {"id":"...", "choices":[{"delta":{"content":"代码"}}], ...}
data: [DONE]客户端读取模式:一行一行读,遇到 data: [DONE] 结束。
长推理触发 CF 100 秒超时的场景(reasoning 模型 / 超大输出):切换 base URL 到 https://api-direct.226-ai.com:10443,这条路径不经 Cloudflare 橙云代理,不受 100s 超时限制。代价:证书是 Cloudflare Origin CA,你的 HTTP 客户端要么信任该 CA,要么跳过证书校验。
四、工具调用(Function Calling / Tool Use)
OpenAI 格式
{
"model": "claude-sonnet-4-6",
"messages": [...],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取城市当前天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
}],
"tool_choice": "auto"
}模型返回 tool_calls 时,把结果塞回对话里继续:
"messages": [
... 原消息 ...,
{"role": "assistant", "tool_calls": [{"id": "call_xxx", "function": {"name": "get_weather", "arguments": "{\"city\":\"北京\"}"}}]},
{"role": "tool", "tool_call_id": "call_xxx", "content": "晴,22°C"}
]Anthropic 原生
{
"model": "claude-opus-4-7",
"max_tokens": 1024,
"tools": [{
"name": "get_weather",
"description": "获取城市当前天气",
"input_schema": {...}
}],
"messages": [...]
}响应里 content 数组可能含 {"type": "tool_use", "id": "...", "name": "get_weather", "input": {...}} 块。
两种协议我们都完整转发,选你客户端 SDK 更顺手的那个。
五、通用请求头
| 头 | 作用 |
|---|---|
Authorization: Bearer sk-xxx | OpenAI 协议认证 |
x-api-key: sk-xxx | Anthropic 协议认证 |
anthropic-version: 2023-06-01 | Anthropic 必填 |
anthropic-beta: prompt-caching-2024-07-31,tool-use-2024-04-04 | 启用 Anthropic beta 特性 |
x-request-id: <你自己的 uuid> | 你可自定,会回显,方便你端到端追踪 |
六、速率限制头
响应会带:
x-ratelimit-limit-requests: 60
x-ratelimit-remaining-requests: 58
x-ratelimit-reset-requests: 10s触发 429 时响应头会指示多久后可以重试。SDK 一般会自动 backoff,手写客户端请自行处理。
七、最小可跑示例速查
| 语言 | 例子文件 |
|---|---|
| Python / OpenAI 风格 | 02d-openai-sdk.md |
| Python / Anthropic 风格 | 02e-anthropic-sdk.md |
| Node.js | 02d-openai-sdk.md 末尾 |
| Go / Rust / curl 纯手写 | 02f-other-clients.md |