Migrar de Chat Completions para a Responses API
Guia de produção: Migrar de Chat Completions para a Responses API. Inclui artefato determinístico, limites de falha, controles de rollout e fontes verificadas.
Guia de produção: Migrar de Chat Completions para a Responses API. Inclui artefato determinístico, limites de falha, controles de rollout e fontes verificadas.
Decisão primeiro
Migrar de Chat Completions para a Responses API é um contrato explícito de produção, não uma mudança isolada. Defina sucesso, falha terminal e rollback antes de mover tráfego; o artefato separa evidência de suposição.
Comece por endpoint, prove request_body com um caso determinístico e transforme rollback em gate de release.
Artefato reutilizável
Uma linha só passa quando a evidência vem da mesma requisição, janela de teste ou versão de configuração.
| Checkpoint | Evidência | Condição de aprovação |
|---|---|---|
endpoint |
/v1/chat/completions->/v1/responses |
O valor é preservado e comparado exatamente na fronteira do protocolo. |
request_body |
messages[]->input;response_format->text.format |
O valor é preservado e comparado exatamente na fronteira do protocolo. |
tool_result |
tool_call_id->call_id;role:_tool->function_call_output |
O registro une uma requisição lógica e uma tentativa. |
zero_values |
temperature:_0,stream:_false,empty_arrays |
O valor é preservado e comparado exatamente na fronteira do protocolo. |
state |
previous_response_id_and_repeated_top-level_instructions |
Owner, fonte, data e limitação ficam registrados. |
rollback |
old_endpoint_remains_selectable_during_bounded_rollout |
O limite é explícito e falha de modo fechado. |
Exemplo resolvido
O exemplo é sintético e determinístico. Use valores revisados do seu workload; nunca inclua segredos ou dados de clientes.
# Chat Completions
curl -sS https://modelflare.dev/v1/chat/completions \
-H "Authorization: Bearer $MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"'"$MODEL_ID"'","messages":[{"role":"user","content":"Return OK"}],"stream":false}'
# Responses
curl -sS https://modelflare.dev/v1/responses \
-H "Authorization: Bearer $MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"'"$MODEL_ID"'","input":"Return OK","stream":false}'
Procedimento de implementação
- Congele requisição, resposta, configuração e baseline observável.
- Execute um caso positivo determinístico e preserve o resultado completo.
- Execute o caso negativo ou limite correspondente.
- Una tentativas por um request ID lógico e registre tempo, estado final e uso sem conteúdo sensível.
- Faça rollout em coorte limitada com critérios de parada.
- Releia estado durável e comportamento público; reverta se uma invariante falhar.
Modos de falha
Estas falhas invalidam o resultado mesmo quando o HTTP externo parece correto:
- Um
0oufalseexplícito some na serialização. - A rota é tratada como se guardasse estado oculto.
- Um campo conveniente é lido e outputs tipados, tools, recusas ou resultados parciais são perdidos.
- Uma resposta de texto é tratada como prova de compatibilidade completa.
Limite do Modelflare
Modelflare centraliza routing compatível com OpenAI, chaves, grupos, uso e falhas, mas uma rota configurada não prova capacidades opcionais. Verifique modelo e canal pelo protocolo nativo, preserve zeros explícitos e use a liquidação durável como verdade de billing.
Use o guia principal para a decisão mais ampla e a documentação para a configuração atual.
Checklist de publicação
- Responder primeiro à pergunta principal.
- Definir owner para cada campo, estado, métrica e fórmula.
- Usar apenas identificadores sintéticos.
- Preservar estrutura, código, limites e avisos em todos os idiomas.
- Revalidar contratos, suporte e preços em T-1; mover a data se algo mudar.
- Antes do horário, excluir de API pública, rotas e sitemap.
Fontes e data de verificação
Fontes verificadas em 2026-08-07; elas não provam uma rota não testada.