服务提供方兼容性
服务提供方兼容性同时取决于面向调用方的端点,以及模型别名背后的上游服务提供方配置。一个模型可以在通用聊天端点正常工作,但在某个服务提供方专属端点被拒绝。
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 适配器。其它适配器在未增加支持前返回 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 | OpenAI、Cohere 和 Jina 服务提供方取值。 |
| 服务提供方原生路由 | /passthrough/:provider/*rest | 任何拥有可访问模型和服务提供方密钥的 provider 值,并带有限的网关标准化处理。 |
端点规则
兼容性矩阵是主要路由参考。以下规则用于澄清服务提供方身份、适配器协议族和端点行为不完全一致的情况。
- Chat completions 是覆盖最广的标准化路由。对于非 OpenAI 上游,网关背后的服务提供方请求仍可以使用 Anthropic、Bedrock、Vertex AI、Azure OpenAI 或其它适配器专属格式。
- Responses 使用服务提供方专属处理。OpenAI 上游模型会转发到上游 Responses API。其它服务提供方会通过聊天适配器路径桥接,并针对受支持请求能力返回 Responses 形态结果。
- 图片生成是 OpenAI 服务提供方路由。某个 OpenAI 兼容厂商可以在 chat completions 中使用 OpenAI 适配器,但如果其 provider 值不是
openai,仍会在该路由上被拒绝。 - Embeddings 和音频是 OpenAI 风格转发路由,依赖解析出 的适配器和上游路由支持,不跨服务提供方协议族转换。
- Rerank 使用路由专属的服务提供方允许列表,接受的 provider 值为
openai、cohere和jina。 - Anthropic Messages 支持原生 Anthropic 上游,也支持经过转换的非 Anthropic 上游。token 计数需要 Anthropic 上游模型。