Providers¶
This section is the compatibility inventory: dedicated adapters for protocols that require real translation, plus declarative presets for OpenAI-compatible services and engines. Breadth is useful, but it is not AnyInfer's product boundary; start with when to use AnyInfer if you are choosing an integration layer.
The generated complete inventory records the current counts and target prefixes.
See the conformance matrix for exactly which behaviors each one supports, generated from test results rather than asserted, and the table below as an accessible alternative to the cards.
| Provider | Target prefix | Extra needed | Notes |
|---|---|---|---|
| openai | openai: |
— | Responses API |
| anthropic | anthropic: / claude: |
— | Messages API, thinking deltas |
| gemini | gemini: / google: |
— | Native generateContent, thinking levels |
| deepseek | deepseek: |
— | reasoning_content channel, cache split |
| xai | xai: / grok: |
— | Reported cost, discovered pricing |
| vertex | vertex: |
[vertex] for service-account signing |
Gemini via GCP OAuth; project-scoped |
| bedrock | bedrock: |
— | Converse API; SigV4 or Bedrock API key |
| cohere | cohere: |
— | Native v2 chat, uppercase enums |
| lm-studio | lm-studio: |
— | Native discovery and residency |
| ollama | ollama: |
— | Native API, grammar schemas, phase timings |
| llama-cpp | llama-cpp: |
— | Supervised llama-server, loopback only |
| openai-compat | openai-compat: |
— | Any /chat/completions endpoint |
| openrouter | openrouter: |
— | Rich discovered pricing and context data |
| nebius | nebius: |
— | Live pricing, context, quantization, reasoning |
| azure-foundry | azure-foundry: / azure: |
[azure] for Entra |
max_completion_tokens |
| copilot | copilot: |
[copilot] |
auto sentinel, CLI-delegated auth |
| m365-copilot | m365-copilot: / m365: |
[azure] |
Interactive auth only |
What is the same everywhere¶
Because the core owns orchestration, these behave identically no matter which provider served a request:
- retries, fallback, and health gating;
- structured-output validation and repair;
- TTFT, duration, and throughput measurement;
- usage normalization and cost computation;
- telemetry events and secret redaction;
- the event stream and its ordering guarantees.
What differs, and how you find out¶
Real differences are surfaced, never hidden:
- Capability flags say what a model supports, with provenance.
structured_mechanismon each result says how a schema was actually enforced.ParameterDroppedevents fire when a provider accepts a parameter and discards it.- Provider pages document the rest.
The escape hatch¶
Anything a provider supports that AnyInfer does not model is reachable verbatim:
client.generate(
prompt,
target="ollama:qwen3:8b",
provider_options={"ollama": {"keep_alive": "10m", "num_gpu": 99}},
)
Options are namespaced by provider id and passed straight through to the matching adapter — the core never inspects them. You should never have to fork the library to reach a provider-specific feature.
Adding your own¶
Third-party adapters register through the anyinfer.providers entry-point group and prove
themselves with the same conformance suite the built-ins run. See
writing an adapter.