服务提供方兼容性
服务提供方兼容性同时取决于面向调用方的端点,以及模型别名背后的上游服务提供方配置。一个模型可以在通用聊天端点正常工作,但在某个服务提供方专属端点被拒绝。
AISIX 有两层兼容性判断:
| 层级 | 作用 |
|---|---|
| 适配器协议族 | 决定如何为上游服务提供方编码聊天类请求。参见适配器协议族。 |
| 端点规则 | 决定特定代理路由是否接受选中的模型别名。 |
规划路由时需要同时检查这两层。适配器告诉 AISIX 如何与上游服务提供方通信;端点自身规则决定该代理路由是否支持选中的服务提供方或适配器协议族。
端点兼容性
请根据调用方 API 格式和服务提供方支持要求选择代理路由。
| 需求 | 路由 | 服务提供方支持 |
|---|---|---|
| 广泛聊天兼容性 | /v1/chat/completions | OpenAI、Anthropic、Bedrock、Vertex AI、Azure OpenAI,以及通过已配置适配器接入的 OpenAI 兼容服务提供方。 |
| Anthropic 风格客户端 | /v1/messages | Anthropic 上游原生支持;非 Anthropic 上游通过转换支持,但能力覆盖有限。 |
| Anthropic Token 计数 | /v1/messages/count_tokens | 仅支持 Anthropic 上游模型。 |
| 流式聊天 | 带 stream: true 的 /v1/chat/completions 或 /v1/messages | 服务提供方支持范围与所选端点一致。流式请求使用第一个被选中的目标,不在流式传输过程中故障转移。 |
| Embeddings | /v1/embeddings | 支持 OpenAI 兼容上游、Bedrock 的 Amazon Titan/Cohere 嵌入模型以及 Vertex AI 的 Google 发布方嵌入模型。其它组合返回 501 not_implemented。 |
| OpenAI Responses API | /v1/responses | OpenAI 上游原样转发;当服务提供方适配器支持转换后的请求形态时,非 OpenAI 上游通过 Responses 桥接支持。 |
| 图片生成 | /v1/images/generations | 已配置服务提供方为 OpenAI 的模型。 |
| 音频 | /v1/audio/transcriptions、/v1/audio/translations、/v1/audio/speech | OpenAI 风格上游音频路由。AISIX 会转发音频格式,不跨服务提供方协议族转换音频。 |
| Rerank | /v1/rerank | Cohere、Jina,或使用 openai 服务提供方值且实现 /v1/rerank 的 OpenAI 兼容上游。公开 OpenAI API 不提供该端点。 |
| 服务提供方原生路由 | /passthrough/:provider/*rest | 任何拥有可访问模型和服务提供方密钥的 provider 值,并带有限的网关标准化处理。 |
服务提供方专属支持
所有支持的聊天和 Responses 端点都支持流式请求。以下列表说明额外端点支持和重要边界:
| 配置路径 | 端点支持和边界 |
|---|---|
| OpenAI | 支持聊天补全、Responses、Embeddings、图片生成和音频。公开 OpenAI API 不提供 Rerank。 |
| Anthropic | 原生支持 Messages 和 Token 计数;聊天补全和 Responses 使用转换。不支持 Embeddings、图片生成和 Rerank。 |
| Amazon Bedrock | 支持聊天补全和 Responses;Embeddings 仅支持 Amazon Titan 和 Cohere 模型 ID。 |
| Google Vertex AI | 支持聊天补全和 Responses;Embeddings 仅支持 Google 发布方模型。 |
| Azure OpenAI | 支持聊天补全和 Responses;Azure OpenAI 适配器不实现 Embeddings、图片生成和 Rerank。 |
| Gemini、Qwen、DeepSeek、Groq、Mistral 和 Together AI | 支持聊天补全和桥接的 Responses 请求,不支持图片生成和 Rerank。 |
| 其他公开的 OpenAI 兼容服务提供方 | 必须支持 OpenAI 兼容的聊天补全接口。Embeddings 取决于上游路由;Rerank 要求服务提供方值被 Rerank 接口接受。 |
| 私有 OpenAI 兼容端点 | 必须实现应用实际调用的上游路由;Embeddings 取决于私有端点。示例中的 vllm 服务提供方值不被 Rerank 路由接受。 |
AISIX 会保留 reasoning_content,并将 reasoning 标准化为该规范字段。如果 OpenAI 兼容服务提供方从不同的 delta 路径输出推理内容,请在服务提供方密钥上配置 response.reasoning_field。
端点规则
兼容性矩阵是主要路由参考。以下规则用于澄清服务提供方身份、适配器协议族和端点行为不完全一致的情况。
- Chat completions 是覆盖最广的标准化路由。对于非 OpenAI 上游,网关背后的服务提供方请求仍可以使用 Anthropic、Bedrock、Vertex AI、Azure OpenAI 或其它适配器专属格式。
- Responses 使用服务提供方专属处理。OpenAI 上游模型会转发到上游 Responses API。其它服务提供方会通过聊天适配器路径桥接,并针对受支持请求能力返回 Responses 形态结果。
- 图片生成是 OpenAI 服务提供方路由。某个 OpenAI 兼容厂商可以在 chat completions 中使用 OpenAI 适配器,但如果其 provider 值不是
openai,仍会在该路由上被拒绝。 - Embeddings 会通过解析后的适配器进行分发。OpenAI 会转发原始请求格式;Bedrock 和 Vertex 会针对支持的 Embedding 模型系列进行格式转换。音频仍使用 OpenAI 风格转发,不进行格式转换。
- Rerank 使用路由专属的服务提供方允许列表,接受的 provider 值为
openai、cohere和jina,但上游必须提供/v1/rerank接口。openai也支持兼容服务提供方,并不表示请求一定发送到 OpenAI 的公开接口。 - Anthropic Messages 支持原生 Anthropic 上游,也支持经过转换的非 Anthropic 上游。Token 计数需要 Anthropic 上游模型。
跨服务提供方内容限制
当请求跨越服务提供方协议族时——例如一个 OpenAI 形态的聊天请求被路由到 Anthropic 或 Gemini 上游 模型——AISIX 会转换消息文本,但会丢弃非文本内容块。图片块(image_url)、音频以及其它非文本部分会在转换后的请求中被静默跳过,只有文本会到达上游。
只有当调用方格式与解析出的服务提供方属于同一协议族时(例如 OpenAI 形态的视觉请求发往 OpenAI 服务提供方模型),非文本内容才会原样透传。如果你的请求依赖图片或其它非文本内容,请将其路由到服务提供方与调用方格式相匹配的模型。