/v1/responses 路由:它是什么,哪些 id 走它
这里八个 OpenAI id 中有六个走 POST /v1/responses、用 Bearer 认证,另外两个不是。路由是怎么定的,换模型时又该注意什么。
路由属于模型,不属于厂商
目录里每个模型都记录自己的 apiRoute,而网关对文本请求开放三种形状:/v1/responses、/v1/messages、/v1/chat/completions。走哪一种是模型自己的字段,所以"它是 OpenAI 模型"这句话不足以推出端点。
OpenAI 家族是六比二。gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-mini 都走 /v1/responses;stable-gpt-6-astra 走 /v1/messages;gpt-image-2 走 /v1/images/generations。
认证头跟着请求形状走,不跟厂商走:responses 和 chat-completions 形状用 Authorization: Bearer $TOKEN_SHARE_KEY,/v1/messages 用 x-api-key 外加一个 anthropic-version 头。这就是为什么 stable-gpt-6-astra 的请求头和它的同门不一样。
export TOKEN_SHARE_KEY="<your-pool-api-key>"
curl -sS https://token-share.app/v1/responses \
-H "Authorization: Bearer $TOKEN_SHARE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-terra",
"input": "Hello"
}'请求长什么样
responses 形状的调用就是往 https://token-share.app/v1/responses 发一个 POST,JSON body 里有 model 和 input 两个字段,带上 Authorization: Bearer 和 Content-Type: application/json。最小集合就这些。
和另外两种形状对照一下差别在哪。发往 /v1/messages 的 Anthropic 形状请求用 messages 数组而不是 input,max_tokens 必填,认证头从 Bearer 换成 x-api-key 加 anthropic-version。chat-completions 形状用 messages 数组、Bearer 认证,max_tokens 不是必填。
所以在 /v1/responses 的几个 id 之间切换只改一个字段,而跨请求形状切换要同时动端点、认证头和 body。在你写一层"按厂商分派"的抽象之前,这一点值得先知道。
选 id 时的实际影响
一个按 responses wire 格式配好的客户端或 CLI,能覆盖八个 OpenAI id 中的六个,剩下两个够不到。最常见的场景是 Codex CLI:wire_api 设成 "responses",这六个 id 改一个 --model 就能用,而 stable-gpt-6-astra 需要换一个会说 Anthropic 消息格式的客户端。
请求形状一致,不代表这六个可以随意互换。上下文方面,三个 GPT 5.6 是 372,000 token,gpt-5.5、gpt-5.4、gpt-5.4-mini 是 272,000;输出上限分别是 128,000 和 64,000。决定一次替换能不能真的成立的,通常是这些限制,不是路由。
折算后的单价在这六个之间从 gpt-5.6-luna 的每百万 0.06 / 0.36 美元,到 gpt-5.6-sol 和 gpt-5.5 的 0.50 / 3.00 美元。既然请求结构相同,把一部分线上流量分到第二个 id 上,用真实请求去比成本和产出,比对着表格拍板更靠谱。