Provider Compatibility
Provider compatibility depends on both the caller-facing endpoint and the upstream provider configuration behind the model alias. A model can work on a broad chat endpoint and still be rejected on a provider-specific endpoint.
AISIX has two compatibility layers:
| Layer | Purpose |
|---|---|
| Adapter families | Decide how chat-style requests are encoded for upstream providers. See Adapter Protocol Families. |
| Endpoint rules | Decide whether a specific proxy route accepts the selected model alias. |
Check both layers when planning a route. The adapter tells AISIX how to talk to the upstream provider; the endpoint's own rules decide whether that proxy route supports the selected provider or adapter family.
Endpoint Compatibility
Use the caller's API format and provider support requirements to choose a proxy route.
| Need | Route | Provider support |
|---|---|---|
| Broad chat compatibility | /v1/chat/completions | OpenAI, Anthropic, Bedrock, Vertex AI, Azure OpenAI, and OpenAI-compatible providers through their configured adapter. |
| Anthropic-style clients | /v1/messages | Anthropic upstreams natively; non-Anthropic upstreams through translation with limited feature coverage. |
| Anthropic token counting | /v1/messages/count_tokens | Anthropic-backed models only. |
| Streaming chat | /v1/chat/completions or /v1/messages with stream: true | Same provider support as the chosen endpoint. Streaming uses the first selected target and does not fail over mid-stream. |
| Embeddings | /v1/embeddings | OpenAI adapter support. Other adapters return 501 not_implemented unless support is added later. |
| OpenAI Responses API | /v1/responses | OpenAI upstreams through verbatim forwarding, and non-OpenAI upstreams through the Responses bridge when the provider adapter supports the translated request shape. |
| Image generation | /v1/images/generations | Models whose configured provider is OpenAI. |
| Audio | /v1/audio/transcriptions, /v1/audio/translations, /v1/audio/speech | OpenAI-style upstream audio routes. AISIX forwards the audio format; it does not translate audio across provider families. |
| Rerank | /v1/rerank | OpenAI, Cohere, and Jina provider values. |
| Provider-native routes | /passthrough/:provider/*rest | Any provider value with an accessible model and provider key, with limited gateway normalization. |
Endpoint Rules
The compatibility matrix is the primary route reference. The rules below clarify cases where provider identity, adapter family, and endpoint behavior differ.
- Chat completions is the broadest normalized route. For non-OpenAI upstreams, the provider-facing request can still use Anthropic, Bedrock, Vertex AI, Azure OpenAI, or another adapter-specific format behind the gateway.
- Responses uses provider-specific handling. OpenAI-backed models forward to the upstream Responses API. Other providers are bridged through the chat adapter path and return a Responses-shaped result for supported request features.
- Image generation is an OpenAI-provider route. An OpenAI-compatible vendor can use the OpenAI adapter for chat completions and still be rejected on this route when its provider value is not
openai. - Embeddings and audio are OpenAI-style forwarding routes. They depend on the resolved adapter and upstream route support rather than translating across provider families.
- Rerank uses a route-specific provider allowlist. Accepted provider values are
openai,cohere, andjina. - Anthropic Messages supports native Anthropic upstreams and translated non-Anthropic upstreams. Token counting requires an Anthropic-backed model.
Cross-Provider Content Limitations
When a request crosses provider families — for example an OpenAI-shape chat request routed to an Anthropic- or Gemini-backed model — AISIX translates the message text but drops non-text content blocks. Image blocks (image_url), audio, and other non-text parts are silently skipped on the translated request; only the text reaches the upstream.
Non-text content passes through unchanged only when the caller format and the resolved provider are the same family (for example an OpenAI-shape vision request to an OpenAI-provider model). If your request depends on images or other non-text content, route it to a model whose provider matches the caller format.