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

  1. Congele requisição, resposta, configuração e baseline observável.
  2. Execute um caso positivo determinístico e preserve o resultado completo.
  3. Execute o caso negativo ou limite correspondente.
  4. Una tentativas por um request ID lógico e registre tempo, estado final e uso sem conteúdo sensível.
  5. Faça rollout em coorte limitada com critérios de parada.
  6. 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 0 ou false explí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.