Mudar de provedor de API de IA não é uma decisão de ranking de modelos. É uma alteração de produção que pode mudar, ao mesmo tempo, a qualidade da saída, a validade do JSON, as chamadas de ferramentas, a latência, o comportamento de limite de taxa, o tratamento de erros e o custo total.
A abordagem mais segura é transformar a mudança proposta em um teste de aceitação repetível. Execute o provedor atual e o candidato nos mesmos casos com aparência de produção, pontue os resultados completos do fluxo de trabalho, defina critérios rígidos de migração antes de ver os resultados e exponha o candidato gradualmente atrás de uma rota pronta para rollback.
Este guia fornece esse processo, incluindo um cartão de pontuação, design de conjunto de dados, matriz de compatibilidade, método de teste em pares, fórmula de custo, estágios de rollout e um memorando de decisão.
A resposta curta: use um teste de aceitação para troca de provedor
Antes de mover o tráfego de produção, exija que a rota candidata passe por cinco verificações:
- Qualidade do fluxo de trabalho: Conclui a tarefa do usuário com uma taxa aceitável em entradas representativas.
- Compatibilidade de contrato: Saídas estruturadas, chamadas de ferramentas, streaming, erros e estados finais funcionam com sua aplicação.
- Confiabilidade operacional: Latência, timeouts, limites de taxa, tentativas e concorrência permanecem dentro dos objetivos do seu serviço.
- Valor econômico: O custo efetivo por tarefa aceita melhora ou permanece dentro de uma troca aprovada.
- Rollout seguro: O tráfego espelho e um canário em etapas mostram que os resultados offline sobrevivem às condições de produção.
Não aprove uma troca porque o candidato vence em um benchmark público, produz algumas respostas impressionantes ou tem um preço de token anunciado menor. Esses sinais podem ajudar a criar uma lista curta. Eles não provam que o provedor pode executar seu fluxo de trabalho.
Comece com a decisão de migração, não com a lista de modelos
Escreva uma decisão em uma frase antes de construir a avaliação:
Substitua a rota A pela rota B para o fluxo de trabalho X se B não for inferior em sucesso da tarefa, passar em todos os critérios de contrato, atender ao orçamento de latência e confiabilidade de produção e reduzir o custo efetivo por tarefa aceita pelo valor exigido.
Essa frase obriga a equipe a definir o escopo. Um provedor pode ser adequado para extração, mas não para uso de ferramentas por um agente, ou para enriquecimento em lote, mas não para um assistente interativo. Evite uma conclusão universal de "melhor modelo" quando a decisão real diz respeito a uma rota, uma carga de trabalho e um envelope operacional.
Registre estas entradas no plano de avaliação:
| Campo | O que especificar |
|---|---|
| Fluxo de trabalho | O recurso exato, automação ou rota do agente em consideração |
| Atual | Provedor atual, modelo, versão ou alias, região e configurações |
| Candidato | Provedor proposto, modelo, versão ou alias, região e configurações |
| Formato do tráfego | Requisições por minuto, tokens por minuto, concorrência, tamanhos de prompt e tamanhos de saída |
| Capacidades necessárias | JSON Schema, tools, streaming, imagens, contexto longo, cache ou outras dependências |
| Critérios de bloqueio | Condições que bloqueiam automaticamente a migração |
| Limites de compensação | Regressão máxima aceitável para qualidade, latência, confiabilidade ou custo |
| Responsável pelo rollback | Pessoa ou equipe autorizada a interromper a implementação |
Se a própria mudança de integração ainda estiver incerta, revise o checklist de migração de gateway de API compatível com OpenAI antes de testar modelos. Uma interface compartilhada reduz mudanças de código, mas não torna o comportamento do modelo idêntico.
Defina a unidade de avaliação como um trace completo
A unidade de avaliação deve corresponder ao que o seu cliente experimenta. Para um classificador de turno único, isso pode ser uma requisição e uma resposta. Para um agente, pode ser um trace inteiro contendo várias chamadas de modelo, invocações de ferramentas, novas tentativas e uma resposta final.
Um registro de trace útil inclui:
{
"case_id": "support-refund-042",
"segment": "refund-policy",
"input": {},
"expected_contract": {},
"route": "candidate-b",
"attempts": 1,
"latency_ms": 1840,
"input_tokens": 3120,
"output_tokens": 486,
"provider_cost_usd": 0.0124,
"schema_valid": true,
"tool_sequence_valid": true,
"task_success": true,
"failure_class": null
}
Isso evita um erro comum de medição: avaliar apenas a redação final enquanto se ignoram argumentos malformados, ferramentas repetidas, novas tentativas ocultas ou um pico de latência que tornou o fluxo de trabalho inutilizável.
Monte um conjunto de teste com formato de produção
O conjunto de avaliação deve representar a distribuição e os modos de falha da rota que você planeja migrar. Selecionar aleatoriamente um pequeno monte de prompts "típicos" geralmente esconde os casos que causam incidentes.
Use seis grupos de casos:
- Casos frequentes: As entradas responsáveis pela maior parte do tráfego normal.
- Casos de alto valor: Tarefas em que uma resposta errada causa uma correção humana cara ou perda de conversão.
- Casos de cauda longa: Idiomas, formatos, domínios ou intenções de usuário raros.
- Casos de contrato: Entradas que exigem schemas, enums, objetos aninhados, ferramentas e montagem de streaming.
- Casos adversariais: Instruções ambíguas, evidências conflitantes, prompt injection e solicitações não suportadas.
- Casos operacionais: Contextos grandes, saídas longas, picos concorrentes, timeouts e erros do lado do provedor.
Estratifique o conjunto de dados para que cada segmento importante tenha exemplos suficientes para ser inspecionado separadamente. Um candidato pode parecer aceitável no agregado enquanto falha em um idioma, uma ferramenta ou um nível de cliente.
Mantenha três camadas de conjunto de dados:
- Conjunto de desenvolvimento: Casos visíveis usados para melhorar prompts e validadores.
- Conjunto de decisão: Casos separados, reservados, usados para aprovar ou rejeitar a migração.
- Conjunto de auditoria de produção: Casos novos amostrados após o lançamento para detectar deriva.
Não ajuste repetidamente com base no conjunto de decisão. Depois que a equipe tiver visto suas falhas e alterado o sistema, esses casos, na prática, já se tornaram dados de desenvolvimento.
Congele as condições de teste
Comparações em pares só são úteis quando o sistema atual e o candidato recebem trabalho equivalente. Congele ou registre:
- Instruções do sistema e do desenvolvedor.
- Entrada do usuário e anexos.
- Definições de ferramentas e esquemas JSON.
- Temperatura, saída máxima, seed quando suportado e configurações de raciocínio.
- Resultados de recuperação e ordenação de documentos.
- Região, versão da API, identificador do modelo e rota do provedor.
- Política de repetição, timeout e concorrência.
- Carimbo de data/hora da avaliação e fonte de preços.
Se uma rota usar um prompt diferente porque o provedor exige isso, versione ambos os prompts e trate essa diferença como parte do pacote de migração. A decisão de negócio é sobre o novo sistema, não sobre um modelo abstrato isolado de sua integração.
Execute cada caso pelas duas rotas. Randomize ou oculte a apresentação quando humanos avaliarem saídas subjetivas, para que os revisores não sejam influenciados pelos nomes dos provedores.
Defina portas de aprovação rígidas antes das pontuações ponderadas
Uma pontuação ponderada é útil para trade-offs, mas não deve permitir que um modelo barato compense uma falha contratual crítica.
Defina primeiro portas de aprovação inegociáveis. Exemplos de portas podem incluir:
- Nenhuma execução não autorizada de ferramentas.
- Nenhum segredo ou dado restrito nas saídas.
- O JSON obrigatório faz parse e valida contra o esquema de produção.
- Os idiomas obrigatórios permanecem acima do seu limite mínimo de sucesso da tarefa.
- As taxas de timeout e de erro do servidor permanecem dentro do orçamento aprovado.
- O cliente lida corretamente com a terminação do streaming e os erros do provedor.
- Uma rota de rollback é testada antes da exposição em produção.
Os limites devem vir do risco do seu produto e da linha de base atual. Os números abaixo são um placar ilustrativo, não recomendações universais:
| Dimensão | Peso | Métrica de exemplo | Regra de migração de exemplo |
|---|---|---|---|
| Sucesso da tarefa | 35% | Resultados aceitos / total de rastros | O candidato não é pior que a linha de base além da margem aprovada |
| Conformidade contratual | 20% | Schema válido, ferramentas e conclusão do stream | Passar em todas as barreiras rígidas |
| Confiabilidade | 15% | Rastros bem-sucedidos após tentativas limitadas | Ficar dentro do orçamento de serviço |
| Latência | 10% | Tempo de rastro ponta a ponta em p50, p95 e p99 | p95 fica abaixo do objetivo da rota |
| Custo efetivo | 15% | Custo total da rota / resultados aceitos | Atender à meta de economia ou valor |
| Operabilidade | 5% | Observabilidade, depuração, cotas e suporte | Nenhum bloqueador de lançamento sem resolução |
Publique os pesos e as barreiras antes da execução final. Alterá-los depois que os resultados chegam transforma a avaliação em justificativa.
Verifique objetivos de pontuação antes de usar avaliadores de modelo
Use validadores determinísticos sempre que possível:
- Análise de JSON e validação de JSON Schema.
- Correspondência exata ou normalizada de campos.
- Verificações de tolerância numérica.
- Validação de citações e URLs.
- Validação de ferramentas permitidas e argumentos.
- Verificações de sequência de ferramentas e de número máximo de etapas.
- Compilação de código, testes unitários e execução em sandbox.
- Regras de política e detectores de conteúdo proibido.
- Cobertura de evidências de recuperação.
Use revisão humana ou um avaliador baseado em modelo para critérios que não podem ser reduzidos a uma verificação determinística, como clareza, tom, síntese ou se uma პასუხ está seguindo instruções nuanceadas.
Ao usar um avaliador de modelo:
- Dê a ele uma rubrica restrita com condições observáveis de aprovação.
- Calibre-o em relação a uma amostra pontuada por humanos.
- Oculte a identidade do provedor sempre que possível.
- Preserve os prompts do avaliador, a versão do modelo e a justificativa bruta.
- Envie divergências e casos limítrofes para revisão humana.
As orientações de avaliação da OpenAI recomendam evals específicos para a tarefa e avaliação contínua, enquanto a Anthropic também recomenda definir critérios de sucesso observáveis e construir avaliações em torno deles. A implicação prática é simples: sua rubrica deve descrever o resultado de fluxo de trabalho de que você precisa, não inteligência genérica.
Compare resultados pareados e incerteza
Uma pontuação média sozinha pode ocultar instabilidade. Como ambas as rotas processam os mesmos casos, compare-as caso a caso.
Para o sucesso binário da tarefa, crie uma tabela pareada:
| Resultado | Significado |
|---|---|
| Ambos aprovam | A troca não altera este caso |
| Incumbente aprova, candidato falha | Regressão do candidato |
| Incumbente falha, candidato aprova | Melhoria do candidato |
| Ambos falham | Lacuna compartilhada de produto ou de avaliação |
Os dois grupos de divergência são especialmente úteis. Revise-os manualmente e classifique a causa raiz antes de aprovar a troca.
Para um resultado de nível decisório, reporte um intervalo de confiança em torno da diferença no sucesso da tarefa, custo e latência. Um bootstrap sobre IDs de casos é um método prático, porque pode preservar a estrutura pareada sem assumir que toda métrica siga uma distribuição normal.
Use uma regra de não inferioridade quando o candidato oferecer um benefício claro, como custo menor ou melhor disponibilidade regional, e o produto puder tolerar uma pequena diferença limitada de qualidade. Defina a margem permitida antes do teste. Aprove apenas quando o intervalo de confiança não cruzar o limite de regressão inaceitável.
Além disso, inspecione os resultados por segmento. Uma aprovação geral não deve ocultar um caso de contrato reprovado, idioma, ferramenta ou fluxo de trabalho de alto valor.
Use uma taxonomia de falhas no nível do trace
Cada caso reprovado deve receber uma classe principal de falha. Uma taxonomia consistente transforma a avaliação em trabalho de engenharia, em vez de uma disputa sobre anedotas.
| Classe de falha | Exemplo |
|---|---|
quality |
A resposta está incorreta, incompleta ou sem suporte |
schema |
A saída não é JSON válido ou viola o schema |
tool_selection |
Ferramenta errada escolhida ou ferramenta necessária omitida |
tool_arguments |
Os argumentos da ferramenta estão ausentes, malformados ou inseguros |
looping |
O agente repete ações ou excede o orçamento de etapas |
streaming |
A saída parcial não pode ser montada ou o estado final está errado |
rate_limit |
A solicitação falha após a política aprovada de fila e retry |
timeout |
O trace de ponta a ponta excede o timeout da rota |
provider_error |
Erro 5xx upstream ou rota indisponível |
client_compatibility |
Incompatibilidade de SDK, parâmetro ou formato de erro |
policy |
A saída ou ação viola uma política obrigatória |
Acompanhe tanto a primeira falha quanto o resultado final do trace. Um retry que recupera uma solicitação ainda consome tempo e dinheiro, e a recuperação repetida pode se tornar um problema de capacidade em produção. O guia de limites de taxa de LLM explica como separar RPM, TPM, enfileiramento, retries e comportamento de fallback.
Teste a compatibilidade do provedor como uma matriz
Um endpoint compatível com OpenAI pode reduzir o trabalho de migração, mas a compatibilidade não é binária. Teste os recursos exatos que sua aplicação usa.
| Superfície | O que verificar |
|---|---|
| Nomes dos modelos | Identificadores estáveis, aliases, fixação de versão e comportamento de descontinuação |
| Parâmetros da requisição | Campos aceitos, campos ignorados, padrões e erros de validação |
| Saída estruturada | Subconjunto de schema suportado, formato de recusa, truncamento e tratamento de saída inválida |
| Chamadas de ferramentas | Comportamento de escolha de ferramenta, chamadas paralelas, codificação de argumentos e IDs de chamada |
| Streaming | Formato de eventos, campos de uso, deltas de ferramentas, motivos de término e recuperação após desconexão |
| Entrada multimodal | Tipos de arquivo, limites de tamanho, tratamento de URL e contabilização de tokens |
| Erros | Status HTTP, códigos do provedor, dicas de retry e IDs de requisição |
| Uso | Unidades de entrada, saída, em cache, raciocínio, imagem, áudio ou vídeo, quando aplicável |
| Limites | RPM, TPM, concorrência, cotas diárias, regras de burst e mudanças de nível |
| Controles de dados | Retenção, política de treinamento, processamento regional e opções de logging |
A documentação de saída estruturada do Google, por exemplo, observa que o suporte a schema é baseado em um subconjunto de JSON Schema. É por isso que você deve testar seu schema real em vez de presumir que um schema aceito por um provedor terá o mesmo comportamento em todos os lugares.
Calcule o custo efetivo por tarefa aceita
O preço por token é apenas um componente da economia de migração. Meça o custo total de obter um resultado utilizável:
custo efetivo por tarefa aceita =
(uso do modelo
+ retries
+ uso de fallback
+ custos de ferramentas e recuperação
+ chamadas de avaliação ou moderação
+ custo incremental de infraestrutura)
/ tarefas aceitas
Estime também o custo de revisão humana gerado por resultados de baixa confiança ou malformados. Um candidato com tokens mais baratos pode sair mais caro se aumentar retries, loops de ferramentas, filas de revisão ou outputs rejeitados.
Para preços atuais de rota, use a comparação de preços de API de IA como ponto de partida e, em seguida, confirme o modelo e o preço exatos no momento da decisão. Salve o timestamp do preço junto com seus resultados, porque os preços e a disponibilidade dos modelos podem mudar.
Reporte o custo por segmento, bem como o total geral. Casos de contexto longo, tarefas multilíngues, entradas de imagem e traces de agentes podem produzir um vencedor diferente de solicitações de texto curto.
Teste de carga do candidato sob a política real de retries
Testes de qualidade offline geralmente rodam devagar e de forma sequencial. Produção não.
Repita um subconjunto representativo na concorrência esperada e de pico. Meça:
- Latência do trace ponta a ponta no p50, p95 e p99.
- Tempo até o primeiro token e tempo até concluir, quando streaming for relevante.
- Tempo na fila versus tempo do provedor.
- Respostas de limite de taxa e comportamento de
Retry-After. - Timeouts, falhas de conexão e erros 5xx upstream.
- Contagem de retries e taxa de recuperação de retries.
- Efeitos colaterais duplicados causados por ações de ferramentas repetidas.
- Frequência de fallback e rota final bem-sucedida.
Use o mesmo comportamento de tentativas repetidas com limites planejado para produção. Tentativas ilimitadas podem fazer a taxa de sucesso parecer boa enquanto violam os limites de latência e custo. Se o candidato exigir configurações de retry ou fila materialmente diferentes, inclua essa mudança operacional na decisão de migração.
Execute shadow traffic antes de um canary
O shadow testing envia uma cópia das entradas de produção elegíveis para o candidato enquanto o provedor atual ainda atende o usuário. Ele revela distribuições realistas de prompts e o comportamento do provedor sem permitir que a saída do candidato afete o cliente.
Proteja o caminho shadow:
- Exclua tráfego sensível, a menos que os controles de dados do candidato sejam aprovados.
- Desative ferramentas com efeito colateral ou direcione-as para mocks.
- Mascare ou tokenize campos restritos quando necessário.
- Limite o volume e o custo do shadow.
- Mantenha os trace IDs do provedor atual e do candidato vinculados para análise pareada.
- Não deixe que retries no shadow consumam o orçamento de capacidade da rota principal.
Os resultados do shadow devem ser avaliados com os mesmos validadores e a mesma taxonomia de falhas do conjunto de decisão offline.
Faça o canary da troca de provedor em etapas
Depois que as portas offline e de shadow forem aprovadas, exponha uma pequena fatia observável do tráfego. Uma sequência prática é:
- Tráfego interno e sintético.
- Usuários ou fluxos de baixo risco.
- Uma pequena porcentagem do tráfego de produção elegível.
- Aumentos graduais com uma janela de observação fixa em cada etapa.
- Rollout completo somente depois que o candidato permanecer dentro de todas as guardrails.
Defina gatilhos automáticos de rollback antes de começar. Exemplos incluem regressão na taxa de sucesso da tarefa, pico de falhas de schema, violação do p95 de latência, aumento da taxa de fallback, estouro de custo ou falha crítica de política.
Use roteamento estável para que a mesma conversa, execução de agente ou cliente permaneça em uma única rota quando a troca no meio da sessão puder corromper o estado. Mantenha o provedor atual aquecido até que a janela de rollback se encerre.
Para padrões de confiabilidade com múltiplos provedores, veja o playbook de roteamento de fallback de API de LLM.
Mantenha a política de roteamento após a avaliação
O resultado não precisa ser "mudar tudo". Muitas equipes obtêm um resultado melhor ao rotear de forma deliberada:
- Uma rota focada em qualidade para tarefas complexas ou de alto valor.
- Uma rota de baixo custo para extração e classificação delimitadas.
- Uma rota de baixa latência para sugestões interativas.
- Uma rota regional para requisitos de localização de dados ou disponibilidade.
- Uma rota de fallback para limites de taxa e indisponibilidades.
Isso torna a avaliação reutilizável. Cada rota tem um contrato, um conjunto de dados e um orçamento operacional. Novos candidatos competem por um trabalho definido em vez de se tornarem apenas mais um projeto de migração em toda a plataforma.
A Flatkey fornece uma camada de acesso compatível com OpenAI em vários provedores de modelos, o que pode simplificar os testes lado a lado e o roteamento. Isso não elimina a necessidade de avaliação; reduz o trabalho de integração necessário para executar a avaliação e manter uma opção de rollback. Compare as rotas atuais em preços da Flatkey.
Modelo de memo de decisão para troca de provedor
Finalize a avaliação com um breve registro de decisão assinado:
| Seção | Evidência necessária |
|---|---|
| Decisão | Aprovar, rejeitar ou aprovar para rotas limitadas |
| Escopo | Fluxo de trabalho, usuários, regiões e tráfego incluídos |
| Referência | Modelo atual, prompt, configurações e janela de medição |
| Candidato | Provedor, modelo, prompt, configurações e janela de medição |
| Portões rígidos | Resultado de aprovado/reprovado para cada portão |
| Qualidade | Diferença pareada de sucesso da tarefa e intervalo de confiança |
| Compatibilidade | Schema, ferramentas, streaming, erros, uso e limites |
| Operações | Latência, confiabilidade, tentativas, enfileiramento e fallback |
| Economia | Custo efetivo por tarefa aceita e volume projetado |
| Exceções | Segmentos excluídos ou roteados de forma diferente |
| Lançamento | Etapas shadow e canary, responsáveis e janelas de observação |
| Rollback | Acionamento, rota, responsável e tempo máximo de recuperação |
| Data de nova verificação | Quando mudanças de preço, versão do modelo ou carga de trabalho exigirem reavaliação |
Anexe os resultados no nível do caso, a versão do runner, os prompts, os validadores, as respostas brutas e o snapshot de preços. Um revisor futuro deve conseguir reproduzir por que a troca foi aprovada.
Checklist final de avaliação de modelo de IA
Antes de trocar de provedor de API de IA, confirme que você:
- Definiu o fluxo de trabalho exato e a rota candidata.
- Registrou a referência atual e o envelope operacional.
- Construiu conjuntos de desenvolvimento, decisão retida e auditoria de produção.
- Incluiu casos comuns, de alto valor, de cauda longa, adversariais, contratuais e operacionais.
- Congelou prompts, ferramentas, configurações, entradas de recuperação e política de retentativas.
- Executou testes pareados entre a referência atual e o candidato.
- Aplicou validadores determinísticos antes da avaliação subjetiva.
- Calibrou qualquer avaliador baseado em modelo em relação a humanos.
- Definiu previamente portões rígidos, pesos e margens de não inferioridade.
- Relatou intervalos de confiança e resultados por segmento.
- Classificou as falhas de trace de forma consistente.
- Testou schemas, ferramentas, streaming, erros, uso e limites de taxa.
- Calculou o custo efetivo por tarefa aceita.
- Realizou testes de carga da concorrência esperada e de pico.
- Concluiu a revisão de privacidade, retenção, regional e controle de acesso.
- Passou pelo tráfego shadow e pelas verificações canary em etapas.
- Testou a reversão automática e manteve a referência atual disponível.
- Assinou e armazenou o memorando de decisão de troca de provedor.
Perguntas frequentes
Quantos casos de teste são suficientes para uma avaliação de modelo de IA?
Não existe uma contagem universal. Use casos suficientes para cobrir cada segmento material e reduzir a incerteza em torno da decisão de migração. Segmentos de alto risco ou baixa frequência podem exigir oversampling deliberado. Relate intervalos de confiança em vez de tratar o tamanho da amostra como prova por si só.
Devo usar benchmarks públicos para escolher um provedor de API?
Use benchmarks para criar uma lista curta ou entender capacidades amplas. Não os use como porta de entrada para a migração. Seus prompts, ferramentas, schemas, orçamento de latência, política de retentativas, controles de dados e mistura de tráfego determinam a adequação à produção.
Pode uma única base URL compatível com OpenAI tornar os provedores intercambiáveis?
Ela pode centralizar a autenticação e reduzir mudanças no cliente. Não pode garantir suporte idêntico a parâmetros, saídas estruturadas, comportamento de ferramentas, eventos de streaming, limites ou qualidade do modelo. Teste a matriz de compatibilidade para cada rota que você usa.
Qual é a métrica mais importante para a troca de provedor?
Para a maioria dos sistemas de automação, comece com a conclusão bem-sucedida do fluxo de trabalho ponta a ponta. Depois, explique esse resultado usando qualidade, validade do contrato, latência, confiabilidade, tentativas, fallback e custo efetivo.
Quando devemos executar a avaliação novamente?
Execute-a novamente quando a versão do modelo, a rota do provedor, o prompt, as ferramentas, o sistema de recuperação, o preço, a distribuição da carga de trabalho, a política de risco ou a faixa de tráfego mudarem materialmente. Mantenha uma auditoria contínua menor em execução após o lançamento para que regressões apareçam antes da próxima migração planejada.
Torne cada troca de provedor reproduzível
O ativo duradouro não é o modelo vencedor. É o sistema de avaliação: casos versionados, captura de rastreamento, validadores, avaliadores, scorecards, testes de carga, controles de rollout e um registro de decisão.
Com esse sistema em vigor, um novo provedor se torna um experimento delimitado em vez de uma reescrita arriscada. Você pode medir o candidato em relação ao mesmo contrato de produção, expô-lo gradualmente e reverter a mudança rapidamente se a realidade discordar do laboratório.



