跳到正文

协议互通矩阵

网关支持 12 种协议互译:客户端用的协议和上游用的协议可以不同,网关双向翻译请求与响应。

协议清单

协议说明
openaiOpenAI Chat Completions
openai_responseOpenAI Responses API
openai_imagesOpenAI 图像
openai_embeddingsOpenAI 向量
openai_audioOpenAI 语音(ASR/TTS)
openai_rerankOpenAI 兼容重排序
anthropicAnthropic Messages
googleGemini Generative Language
aws_converseAWS Bedrock Converse
aws_invokeAWS Bedrock InvokeModel
dashscope阿里 DashScope
openai_realtimeOpenAI Realtime(WebSocket 会话,见 Realtime 实时会话
dashscope_realtimeDashScope Realtime(WebSocket 会话)
passthrough透传,不翻译

openai_realtime / dashscope_realtime会话作用域的 WebSocket 协议,走独立的 /v1/realtime 桥接路径,不参与上面的 HTTP 互译矩阵(矩阵里的都是「一问一答」式 HTTP 协议)。

互通矩阵(双向)

下列每对都是双向翻译(一个适配器同时处理 请求→ 与 响应←):

客户端协议可互译的上游协议
openaianthropicaws_invokegoogleaws_converseopenai_responsedashscope
anthropicopenai(经 chat)、aws_invokegoogleaws_converseopenai_responsedashscope
openai_responseopenai(经 chat)、aws_conversegoogledashscope
googleopenaianthropicopenai_responsedashscopeopenai_images
openai_embeddingsdashscope
openai_rerankdashscope
openai_audiodashscope
openai_imagesgoogle(仅与 Google 互译)
aws_converseopenaianthropicopenai_response
aws_invokeopenaianthropic
dashscopeopenaianthropicopenai_responsegoogleopenai_embeddingsopenai_rerankopenai_audio
passthrough任意(不翻译,原样转发)

客户端协议与上游协议相同的组合走 identity(请求体原样转发);其中 Anthropic→Anthropic 是同协议非透传翻译器(会剥离网关编码的思考签名,用于跨实例往返保持兼容)。

透传入口

  • passthrough 协议:直接转发,不做协议转换。
  • /v3/{model}/{*rest}:identity 透传入口。当客户端协议 == 该模型配置的目标协议时,请求体原样转发到上游。
  • DashScope 客户端两路:
    • /v1/services/{*rest}:透传,请求体原样发 DashScope。
    • /v1/chat/completions:翻译模式,OpenAI 格式翻译成 DashScope 格式。

已知翻译限制

跨协议翻译不是无损的,已知的边界:

  • 图像openai_images 只与 google 互译(经 generateContent 的内联图像输出);其他上游需原生兼容 OpenAI 图像接口。
  • 向量openai_embeddings 是单向 API(无对话轮次),跨协议互译仅限 dashscope;多数向量供应商(OpenAI / Azure / Voyage 等)直接提供 OpenAI 兼容端点,按 openai 协议接入即可。
  • 语音openai_audiodashscope 多模态互译转写 / 翻译(multipart 音频 ↔ 多模态 JSON);但文字转语音(TTS)在 DashScope 无对应能力,返回 unsupported_feature
  • 一般字段:目标协议没有对应概念的请求字段,翻译时会被降级或丢弃。若某字段必须到达上游,先确认目标协议是否有对应字段,或改用透传(见上)。

无翻译器时

请求的「客户端协议 → 上游协议」组合没有翻译器 → 返回 400unsupported_feature)。

怎么用这个矩阵

  1. 确定你客户端用的协议(如 OpenAI SDK → openai)。
  2. 确定上游协议(如 Claude → anthropic)。
  3. 查上表 openai 行是否含 anthropic——含则支持互译,客户端不用改协议,网关自动翻译。
  4. 不含则要么换客户端协议,要么把上游协议改成支持的。

常见问题

Q:客户端报 400 unsupported_feature? 该「客户端协议 → 上游协议」组合没有翻译器。查本矩阵,换客户端协议或上游协议。

Q:Anthropic → Anthropic 是 identity 吗? 是同协议非透传翻译器(会剥离网关编码的思考签名,用于跨实例往返保持兼容)。其他客户端协议 == 上游协议的组合走 identity(请求体原样转发)。

Q:AWS Bedrock 客户端协议在矩阵里没看到? AWS Bedrock 是上游侧协议,不是客户端协议。客户端用 OpenAI / Anthropic / Gemini 等协议端点访问 Bedrock 模型,网关做协议互译。详见 端点 · 认证 · 协议互通

Q:怎么绕过翻译?/v3/{model}/{*rest} 透传入口,当客户端协议 == 目标协议时请求体原样转发。或上游协议选 passthrough

下一步端点 · 认证 · 协议互通 看完整端点清单;客户端接入与网关差异 看各 SDK 接法;上游与模型字段 看模型协议配置。