Matriz de capacidades por provider
O que cada provider suporta na jangada. Os recursos da API pública são os
mesmos (complete, parse, stream, transcribe, ...); o que muda é o que
cada provider consegue fazer por baixo.
| Recurso | OpenAI | Groq | Gemini | Anthropic | Mistral |
|---|---|---|---|---|---|
Texto (complete/acomplete) | ✅ | ✅ | ✅ | ✅ | ✅ |
Structured output (parse) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Tools / function calling | ✅ | ✅ | ✅ | ✅ | ✅ |
MCP (mcp_servers=) | ✅ URL | ✅ URL | ✅ sessão⁴ | ✅ URL | ❌ |
Tools nativas (web_search()…)⁵ | ✅ (Responses) | ⚠️ compound/gpt-oss | ✅ | ✅ | ✅ (Conversations) |
Embeddings (embed) | ✅ | ❌ | ✅ | ❌ | ✅ |
Streaming (stream/astream) | ✅ | ✅ | ✅ | ✅ | ✅ |
Vision / imagens (images=) | ✅ | ⚠️¹ | ✅ | ✅ | ⚠️¹ |
Documentos (files=)² | ✅ | ✅ | ✅ | ✅ | ✅ |
| Detecção de objetos | ✅ | ⚠️¹ | ✅³ | ⚠️ | ⚠️ |
Transcrição de áudio (transcribe) | ✅ | ✅ | ✅ | ❌ | ✅ (Voxtral) |
OCR / Document AI (ocr) | ❌ | ❌ | ❌ | ❌ | ✅ |
Param top_k | ❌ | ❌ | ✅ | ✅ | ❌ |
Param seed | ✅ | ✅ | ✅ | ❌ | ✅ (random_seed) |
Param stop | ✅ | ✅ | ✅ (stop_sequences) | ✅ (stop_sequences) | ✅ |
¹ Depende do modelo: vision no Groq exige um modelo com visão (ex.: família
Llama vision); modelos de texto puro não aceitam imagem.
² files= extrai texto localmente (docx/pdf/csv/xlsx) e envia como texto —
por isso funciona em todos. Veja Documentos.
³ A convenção de bounding box (0–1000) é nativa do Gemini, que é o mais preciso.
⁴ MCP no Gemini é client-side por sessão e só no async (acomplete); os
demais são remoto por URL (server-side). Veja MCP.
⁵ Tools executadas pelo provider (busca na web, url context, code execution,
file search…). O suporte varia por tool e por modelo; também existem no
OpenRouter, no Bedrock (Amazon Nova) e no Ollama (executadas
pelo adapter). Matriz completa em Tools nativas.
Como cada um implementa o structured output
| Provider | Mecanismo |
|---|---|
| OpenAI | chat.completions.parse(response_format=Modelo) |
| Groq | response_format={"type":"json_schema",...} + validação |
| Gemini | config.response_schema=Modelo → resp.parsed |
| Anthropic | tool-forcing (tool_choice fixo) → valida tool_use |
| Mistral | helper nativo chat.parse(response_format=Modelo) → .message.parsed |
Detalhe por provider
Os parâmetros canônicos e os perfis por modelo (gpt-5, gemini-3.x) estão em Parâmetros e perfis.