OpenRouter
Provider openrouter. OpenRouter é um gateway para
centenas de modelos (OpenAI, Anthropic, Google, Meta, ...) que fala o mesmo
dialeto chat.completions da OpenAI. Por isso o adapter reusa o SDK openai
apontando para o base_url do OpenRouter — só muda a URL e a chave.
pip install "jangada-ai[openai]" # usa o próprio SDK da OpenAIprovider=:"openrouter"- Variável de ambiente:
OPENROUTER_API_KEY - Modelos qualificados por provedor:
openai/gpt-4o,anthropic/claude-sonnet-4.6,google/gemini-2.5-flash,meta-llama/...
from jangada_ai import LLM
LLM("openrouter", "openai/gpt-4o") # usa OPENROUTER_API_KEY
LLM("openrouter", "anthropic/claude-sonnet-4.6")
LLM("openrouter", "google/gemini-2.5-flash", api_key="sk-or-...")O que faz
- Texto e streaming — um endpoint, qualquer modelo do catálogo.
- Structured output (
parse): como os modelos são heterogêneos (cada um com suas quirks), usajson_schemacom fallback automático para JSON Object mode (mesmo caminho do Groq) —parse()funciona em qualquer modelo. Por issosupports_parse_helper = False. - Vision (
images=): nos modelos multimodais do catálogo. - Documentos (
files=): extração de texto local. - Transcrição (
transcribe) e embeddings (embed): funcionam — o OpenRouter expõe esses endpoints e lista modelos de ambos (whisper-*,gpt-4o-transcribe,text-embedding-3-*,gemini-embedding-001, ...).
Estrutura e quirks
- Mesma base da OpenAI: herda de
_OpenAICompatible; só mudam obase_url(https://openrouter.ai/api/v1), a chave esupports_parse_helper. - Cabeçalhos de ranking (
HTTP-Referer/X-Title): passe viadefault_headers=(kwargs do cliente). - Argumentos exclusivos do OpenRouter (ex.:
models=[...]para roteamento entre modelos): vão porextra=/extra_body=. - Sem Responses API: o caminho de MCP server-side (que usa a Responses
API da OpenAI) não existe no OpenRouter — levanta
UnsupportedError. Texto, structured, vision, áudio e embeddings funcionam normalmente.
# roteamento entre modelos (recurso do OpenRouter) via extra_body
LLM("openrouter", "openai/gpt-4o",
extra={"models": ["openai/gpt-4o", "anthropic/claude-sonnet-4.6"]})Quando escolher OpenRouter
Quando você quer um único provider/chave para alcançar muitos modelos de fornecedores diferentes (e o roteamento/fallback deles), sem instalar o SDK de cada um. Como fala o dialeto da OpenAI, combina bem como fallback com os providers nativos. Veja Retry e fallback.