指南
AI 网关
用 Pikeway key 调用各大厂商的模型,支持 OpenAI Chat Completions、Anthropic Messages 和 OpenAI Responses 三种格式。按 token 计费,和其他 API 共用一份余额。
任何 OpenAI 或 Anthropic 客户端只需改两处就能接入 Pikeway:base URL 和 key。模型目录 里的每个模型都支持这三种格式。
接口
POST /ai/v1/chat/completionsOpenAI Chat Completions,支持流式。
POST /ai/v1/messagesAnthropic Messages,支持流式。
anthropic-version 和 anthropic-beta 头会原样转发。POST /ai/v1/messages/count_tokensAnthropic token 计数。需要 key,不计费。
POST /ai/v1/responsesOpenAI Responses。
GET /ai/v1/models模型列表,含价格和能力。不需要 key。
OpenAI Chat Completions
POSThttps://gw.pikeway.ai/ai/v1/chat/completions
bash
curl https://gw.pikeway.ai/ai/v1/chat/completions \
-H "Authorization: Bearer $PIKEWAY_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5",
"messages": [{ "role": "user", "content": "Summarize the WBTC market in one line." }]
}'
# X-Pikeway-Cost: 0.000412
# X-Pikeway-Tokens: 18+52设置 "stream": true 时,响应以 SSE 原样透传。网关会要求上游在流末尾附带用量,以便按 token 计费。
Anthropic Messages
POSThttps://gw.pikeway.ai/ai/v1/messages
bash
curl https://gw.pikeway.ai/ai/v1/messages \
-H "Authorization: Bearer $PIKEWAY_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [{ "role": "user", "content": "Hello" }]
}'在 Claude Code 中使用
Claude Code 使用 Messages 格式,设置两个环境变量就能让它走 Pikeway:
bash
export ANTHROPIC_BASE_URL=https://gw.pikeway.ai/ai export ANTHROPIC_AUTH_TOKEN=pk-… # your Pikeway key claude
Claude Code 用带日期的 Anthropic 官方名称请求模型(如 claude-sonnet-4-5-20250929)。网关会把它解析成目录里的规范名称(claude-sonnet-4.5),无需修改任何模型设置。
OpenAI Responses
POSThttps://gw.pikeway.ai/ai/v1/responses
bash
curl https://gw.pikeway.ai/ai/v1/responses \
-H "Authorization: Bearer $PIKEWAY_KEY" \
-H "Content-Type: application/json" \
-d '{ "model": "gpt-5", "input": "Write a haiku about toll roads." }'模型名称
把目录或 GET /ai/v1/models 返回的 id 填到 model。模型也接受别名(如 OpenRouter 风格的完整 id 或简称);Anthropic 风格的名称会被规范化:去掉日期或 -latest 后缀,数字之间的短横线换成点。用量总是记在规范名称下。未知模型返回 404 unknown model。
bash
curl https://gw.pikeway.ai/ai/v1/models
{
"object": "list",
"data": [{
"id": "claude-sonnet-5",
"object": "model",
"owned_by": "anthropic",
"display_name": "…",
"context_length": 200000,
"pricing": { "input_per_mtok": 3, "output_per_mtok": 15 },
"capabilities": { "tools": true, "streaming": true, "thinking": true }
}, …]
}按 token 计费
- 每个模型都有每百万 token 的输入价和输出价(
input_per_mtok、output_per_mtok)。费用 = 输入 token × 输入价 + 输出 token × 输出价。 - 命中厂商提示词缓存的输入 token,如果模型有缓存读取价,就按缓存价计费。
- token 数来自上游返回的
usage。非流式响应会在X-Pikeway-Tokens(输入+输出)里给出 token 数,在X-Pikeway-Cost里给出费用。流式请求在流结束时结算,费用可在调用日志里查看。 - 被上游拒绝的请求(4xx/5xx)不计费。
- 余额必须大于 0 才能发起请求,否则返回
402 insufficient balance。
反复发送相同的提示词?给非流式 chat completion 加上
X-Pikeway-Cache: 300,5 分钟内的相同请求会从缓存返回,只收 10% 的 token 费用。见 缓存。