# Integrações de SDK e Frameworks - GateLLM

> Conecte qualquer SDK ou framework ao GateLLM: OpenAI, Anthropic, Gemini, DashScope, LangChain, LlamaIndex, CrewAI, Vercel AI SDK, OpenAI Agents SDK, Ollama e mais de 30 outros — uma troca de base_url, com as armadilhas de cada SDK incluídas.

Canônico: https://www.gatellm.io/pt-BR/integrations/

## Integrações de SDK e frameworks
Todo SDK se conecta ao GateLLM com os mesmos três passos. Encontre seu SDK, anote a convenção de base_url e a armadilha dele, e então copie o padrão.
O gateway é orientado a protocolo: qualquer que seja o SDK que você use, contanto que ele fale OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP, apontar o base_url para o gateway e trocar por uma chave de acesso permite chamar qualquer modelo configurado — incluindo chamadas entre protocolos para modelos de outros fornecedores.
## Funciona com o SDK que você já tem
Aponte qualquer SDK ou framework para o gateway com uma linha. OpenAI, Anthropic, Gemini e DashScope se conectam nativamente; LangChain, LlamaIndex, CrewAI, Vercel AI SDK e mais de 30 outros, pela mesma troca de base_url.
### Aponte o base_url para o gateway
Padrão https://your-gateway.gatellm.io — incluir ou não /v1 depende do SDK (cada exemplo traz o valor exato).
### Troque por uma chave de acesso do gateway
Não é uma chave upstream sk-… — a mesma chave de acesso é montada no cabeçalho que o seu SDK espera.
### Use o nome de modelo do gateway
Aquele que você configurou no console — não o nome oficial do fornecedor.
```
# base_url convention differs by SDK — match the one you're using
from openai import OpenAI
OpenAI(base_url="https://your-gateway.gatellm.io/v1")        # OpenAI SDK: /v1

import anthropic
anthropic.Anthropic(base_url="https://your-gateway.gatellm.io")  # Anthropic SDK: root (appends /v1/messages)

# Vercel AI SDK createAnthropic: baseURL ".../v1" (appends /messages) — the reverse
# LangChain ChatOpenAI: base_url="https://your-gateway.gatellm.io/v1"
```
### `Authorization: Bearer <key>`
- SDK / framework: OpenAI · DashScope · genérico
- Prefixo Bearer não diferencia maiúsculas de minúsculas

### `x-api-key: <key>`
- SDK / framework: SDK Anthropic
- Authorization também é aceito

### `x-goog-api-key: <key>`
- SDK / framework: SDK Gemini
- Authorization também é aceito

## Matriz de seleção de SDK

### SDKs oficiais dos fornecedores
SDKs OpenAI / Anthropic / Google se conectam nativamente — só o base_url muda
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| OpenAI SDK | Python, Node.js | OpenAI | https://docs.gatellm.io/en/sdk/vendor-sdks |
| Anthropic SDK | Python, Node.js | Anthropic | https://docs.gatellm.io/en/sdk/vendor-sdks |
| Google GenAI SDK | Python, JavaScript | Gemini | https://docs.gatellm.io/en/sdk/vendor-sdks |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | https://docs.gatellm.io/en/sdk/vendor-sdks |

### DashScope nativo
Texto, imagem, vídeo assíncrono, embedding e rerank por um único endpoint
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| DashScope SDK | Python | DashScope | https://docs.gatellm.io/en/quickstart/dashscope |

### SDKs e gateways unificados
Vercel AI SDK, LiteLLM, Portkey, Semantic Kernel, Spring AI
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | https://docs.gatellm.io/en/sdk/unified-sdks |
| LiteLLM | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Portkey | Node.js, Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Semantic Kernel | Python, .NET | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Spring AI | Java | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |

### Frameworks de orquestração
LangChain, LlamaIndex, CrewAI, AutoGen, DSPy, Haystack
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| LangChain | Python, TypeScript | OpenAI / Anthropic | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| AutoGen / AG2 | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| DSPy | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| Haystack | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| Llama Stack | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |

### SDKs de agentes
OpenAI Agents, Claude Agent, Pydantic AI, ADK, Mastra
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | https://docs.gatellm.io/en/sdk/agent-sdks |
| Claude Agent SDK | Python, TypeScript | Anthropic | https://docs.gatellm.io/en/quickstart/anthropic-interop |
| Pydantic AI | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/agent-sdks |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | https://docs.gatellm.io/en/sdk/agent-sdks |
| Mastra | TypeScript | OpenAI-compatible | https://docs.gatellm.io/en/sdk/agent-sdks |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/agent-sdks |
| MCP SDK | Python, TypeScript | MCP | https://docs.gatellm.io/en/reference/mcp-config |

### Tempo real e áudio
Voz em tempo real via WebSocket + ASR / TTS openai_audio
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| Realtime WebSocket | Any WS client | OpenAI Realtime | https://docs.gatellm.io/en/sdk/realtime-and-audio |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | https://docs.gatellm.io/en/sdk/realtime-and-audio |

### Local / auto-hospedado
Ollama, vLLM, llama.cpp como upstreams — mantenha qualquer SDK de cliente
| SDK / framework | Linguagem | Protocolo | Documentação |
| --- | --- | --- | --- |
| Ollama | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| vLLM | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| llama.cpp server | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| SGLang | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| LM Studio | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |

## Armadilhas
### O nome do modelo precisa corresponder à configuração do gateway
Não é o nome oficial do fornecedor nem o ID do modelo upstream — é o nome que você deu no console. Nome errado → 404 model_not_found.

### Incluir /v1 no base_url varia conforme o SDK
O SDK OpenAI usa /v1; o SDK Anthropic usa a raiz (ele mesmo acrescenta /v1/messages); o createAnthropic do Vercel AI SDK usa /v1 (ele acrescenta /messages). Errar isso adiciona ou remove um segmento de caminho.

### Campos são traduzidos e restringidos entre protocolos
Um max_tokens pode virar max_output_tokens com limite inferior (por exemplo, ≥16) quando o upstream é um modelo de protocolo Responses — valor pequeno demais → 400.

### Blocos de raciocínio são envolvidos pelo gateway
Conteúdo e assinaturas de raciocínio do Claude / Gemini passam adiante ou são removidos — pegue o elemento com type == "text" do array content, não presuma que content[0] é texto.

### O SDK OpenAI Agents usa /v1/responses por padrão
Ele chama a API Responses, não Chat Completions. Se o upstream for openai (Chat), troque explicitamente com OpenAIChatCompletionsModel; se for openai_response, um nome de modelo em string funciona como está.

### O LlamaIndex valida o nome do modelo contra uma allowlist
A classe OpenAI só aceita famílias que reconhece e rejeita nomes personalizados do gateway — use OpenAILike (Python) ou declare as informações do modelo explicitamente.

### O CrewAI é movido pelo LiteLLM nos bastidores
base_url não é um parâmetro do framework — é a variável de ambiente OPENAI_API_BASE, e o modelo precisa do prefixo openai/.

### O AutoGen exige model_info explícito
Nomes de modelo desconhecidos geram erro na lista padrão — declare model_info explicitamente para contornar a verificação.

### O SDK Google GenAI aponta para a raiz
O base_url vai por http_options.base_url (sem /v1) e a chave é montada no cabeçalho x-goog-api-key.

## FAQ
### O GateLLM funciona com LangChain / LlamaIndex / CrewAI?
Sim — aponte o modelo de chat subjacente de cada framework para o endpoint compatível com OpenAI do gateway. Cada um tem um ponto de entrada específico de "trocar o base_url": LangChain usa ChatOpenAI(base_url=…), LlamaIndex usa OpenAILike, CrewAI define a variável de ambiente OPENAI_API_BASE (por baixo dos panos é o LiteLLM).
### Posso usar o Claude Agent SDK ou o Claude Code pelo GateLLM?
Sim. Eles leem as variáveis de ambiente ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN — aponte-as para a raiz do gateway e use uma chave de acesso do gateway. Dê ao modelo do gateway exatamente o ID que o agente solicita (ou alinhe via ANTHROPIC_MODEL).
### Como conecto o OpenAI Agents SDK?
Aponte o cliente OpenAI dele para o gateway e defina o modelo. Observe que ele usa /v1/responses por padrão — se o seu upstream for um modelo de protocolo Chat, troque explicitamente com OpenAIChatCompletionsModel. Desative o tracing (set_tracing_disabled) para que os traces não atinjam o gateway também.
### O GateLLM consegue colocar Ollama / vLLM / llama.cpp na frente?
Sim — configure-os como upstreams compatíveis com OpenAI e mantenha qualquer SDK de cliente. O gateway acrescenta roteamento, fallback e governança por cima dos seus modelos auto-hospedados.
### O base_url inclui /v1 ou não?
Depende do SDK: o SDK OpenAI usa /v1; o SDK Anthropic usa a raiz (ele acrescenta /v1/messages); o createAnthropic do Vercel AI SDK usa /v1 (ele acrescenta /messages). A documentação traz o valor exato por SDK.
### O que é uma chave de acesso do gateway vs uma chave upstream?
A chave de acesso do gateway é o que seu cliente apresenta, no cabeçalho que o seu SDK usar (Authorization, x-api-key ou x-goog-api-key). As chaves de fornecedor upstream ficam no gateway e nunca são expostas ao seu cliente.

## Relacionados
- [Início](https://www.gatellm.io/pt-BR/index.md)
- [Preços](https://www.gatellm.io/pt-BR/pricing.md)
- [Calculadora de custos](https://www.gatellm.io/pt-BR/calculator.md)
- [Sobre](https://www.gatellm.io/pt-BR/about.md)
- [Agendar uma demonstração](https://www.gatellm.io/pt-BR/demo.md)
- [FAQ](https://www.gatellm.io/pt-BR/faq.md)
- [Comparar gateways de IA](https://www.gatellm.io/pt-BR/compare.md)
- [Comparar LiteLLM](https://www.gatellm.io/pt-BR/compare/litellm.md)
- [Comparar OpenRouter](https://www.gatellm.io/pt-BR/compare/openrouter.md)
- [Comparar Alibaba Cloud AI Gateway](https://www.gatellm.io/pt-BR/compare/alibaba-cloud.md)
- [Comparar Azure API Management](https://www.gatellm.io/pt-BR/compare/azure-apim.md)
- [Comparar Apigee](https://www.gatellm.io/pt-BR/compare/apigee.md)
- [Comparar Cloudflare AI Gateway](https://www.gatellm.io/pt-BR/compare/cloudflare.md)
- [Comparar Kong AI Gateway](https://www.gatellm.io/pt-BR/compare/kong.md)
- [Comparar Portkey](https://www.gatellm.io/pt-BR/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/pt-BR/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/pt-BR/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/pt-BR/compare/litellm-vs-portkey.md)
- [Casos de uso](https://www.gatellm.io/pt-BR/use-cases.md)
- [Reduzir custo de LLM](https://www.gatellm.io/pt-BR/use-cases/reduce-cost.md)
- [Alta disponibilidade](https://www.gatellm.io/pt-BR/use-cases/high-availability.md)
- [Isolamento multilocatário](https://www.gatellm.io/pt-BR/use-cases/multi-tenant.md)
- [Conformidade e auditoria](https://www.gatellm.io/pt-BR/use-cases/compliance-audit.md)
- [Solução de problemas por sintoma](https://www.gatellm.io/pt-BR/use-cases/troubleshooting.md)
- [Stack de modelos multivendor](https://www.gatellm.io/pt-BR/use-cases/mixed-model-stack.md)
- [IA auto-hospedada dentro do Office](https://www.gatellm.io/pt-BR/use-cases/self-hosted-office-ai.md)
- [Visibilidade e atribuição do uso de tokens](https://www.gatellm.io/pt-BR/use-cases/token-ops.md)
- [Token FinOps: alocação e controle de custos de IA](https://www.gatellm.io/pt-BR/use-cases/token-finops.md)
- [Governança de ferramentas MCP](https://www.gatellm.io/pt-BR/use-cases/mcp-tool-governance.md)
- [Busca na web para todos os modelos](https://www.gatellm.io/pt-BR/use-cases/web-search-grounding.md)
- [Rotação e standby de múltiplas chaves](https://www.gatellm.io/pt-BR/use-cases/multi-key-pooling.md)
- [Controle de admissão de clientes](https://www.gatellm.io/pt-BR/use-cases/client-admission-control.md)
- [Aplicar política de uso de modelos](https://www.gatellm.io/pt-BR/use-cases/enforce-model-policy.md)
- [Sem escolha de modelo no cliente](https://www.gatellm.io/pt-BR/use-cases/automatic-model-tiering.md)
- [Um protocolo, qualquer modelo](https://www.gatellm.io/pt-BR/use-cases/one-protocol-any-model.md)
- [Suplemento Office / Microsoft 365](https://www.gatellm.io/pt-BR/office-addin.md)
- [Glossário](https://www.gatellm.io/pt-BR/glossary.md)
- [Catálogo de modelos](https://www.gatellm.io/pt-BR/models.md)
- [Agentes de código de IA e harnesses](https://www.gatellm.io/pt-BR/coding-agents.md)
- [Segurança e conformidade](https://www.gatellm.io/pt-BR/security.md)
