Guias
Compatibilidade com OpenAI
O que é idêntico, o que difere e como migrar uma integração OpenAI existente.
O Stac implementa a superfície de chat completions do OpenAI. A maioria das integrações migra alterando apenas a URL base e a chave.
const client = new OpenAI({
- baseURL: "https://api.openai.com/v1",
- apiKey: process.env.OPENAI_API_KEY,
+ baseURL: "https://api.trystac.com/v1",
+ apiKey: process.env.STAC_API_KEY,
});Usando um cliente com formato Anthropic em vez disso (Claude Code, o SDK
anthropic)? Veja Compatibilidade com Anthropic —
as formas de requisição/resposta diferem o suficiente para merecer sua própria
página.
Suportado
| Recurso | Status |
|---|---|
POST /v1/chat/completions | Completo |
POST /v1/completions | Completo |
POST /v1/embeddings | Completo |
POST /v1/responses | Completo |
GET /v1/models | Completo |
| Streaming (SSE) | Completo |
temperature, top_p, max_tokens, stop | Completo |
| Function / tool calling | Completo |
Modo JSON (response_format) | Completo |
| Entradas de visão (vision) | Depende do modelo — verifique capabilities em GET /v1/models |
| Assistants, threads, files | Não suportado |
Diferenças que importam
modelé sempre ignorado. Seu stack tem exatamente um modelo atribuído; qualquer valor que você envia é substituído por ele.GET /v1/modelsrelata o id real, majoritariamente para logging.né limitado a 1. Múltiplas completudes por requisição multiplicariam o uso de capacidade sem um medidor por token para precificá-lo.max_tokenstem um piso. Requisições são limitadas a no mínimo 8000 e no máximo 16000 — veja Chat completions.logit_biasé descartado, e papéis de mensagem fora desystem,user,assistant,toolsão descartados em vez de rejeitados.- Rate limiting é por chave, não por tier. Veja Erros e rate limits.
Parâmetros desconhecidos são ignorados em vez de rejeitados, então um SDK que envia um campo que o Stac não implementa continua funcionando. Verifique a resposta, não apenas o código de status, quando um recurso parece não ter efeito.
Ferramentas de linha de comando
Codex CLI
O Codex lê sua chave do ambiente indicado por env_key na configuração —
defina essa variável, depois aponte o Codex para o Stac em
~/.codex/config.toml:
export STAC_API_KEY="your-stac-api-key"
codexcurl "https://api.trystac.com/v1/chat/completions" \
-H "Authorization: Bearer $STAC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messages": [{ "role": "user", "content": "Hello" }]
}'model_provider = "stac"
model = "your-stack-model"
model_auto_compact_token_limit = 104000
[model_providers.stac]
name = "stac"
base_url = "https://api.trystac.com/v1"
env_key = "STAC_API_KEY"
wire_api = "responses"O arquivo TOML é obrigatório em qualquer caso — é assim que o Codex
aprende sobre o provedor stac. Bash define a variável STAC_API_KEY
para a qual env_key aponta; Curl é apenas uma forma rápida de confirmar
que a chave e a URL base funcionam antes de configurar o Codex.
Não defina model_context_window — um bug conhecido do Codex
(openai/codex#16068) faz com
que essa chave quebre a auto-compacção permanentemente após o primeiro
transbordo. Use apenas model_auto_compact_token_limit.
Cursor, Cline, Continue e outras ferramentas compatíveis com OpenAI
Qualquer ferramenta com uma configuração de provedor "OpenAI compatible" funciona da mesma forma:
- URL Base:
https://api.trystac.com/v1 - Chave de API: sua chave de API do Stac
- Modelo: qualquer valor — é ignorado
Exportar essas variáveis como variáveis globais de shell redireciona todas
as ferramentas na máquina para o seu stack. Escopas a um shell do projeto,
um .envrc ou o próprio arquivo de configuração da ferramenta.

