Pular para o conteúdo

Guias de migraçãoVindo do SDKs diretos da OpenAI e da Anthropic

De chamadas diretas ao SDK a um único plano de controle

A maioria das equipes começa chamando a OpenAI ou a Anthropic com o SDK do próprio fornecedor e uma chave em uma variável de ambiente. Isso funciona até haver vários serviços, várias chaves e uma fatura mensal que ninguém consegue atribuir. Esta página é a alteração que coloca o INFRO na frente dessas chamadas sem mudar de SDK, de conta no provedor ou de contrato.

Seu próprio código, chamando o SDK de cada provedor com a chave desse provedor

As contas do INFRO são self-service. O catálogo, a documentação e o contrato da API são públicos, o gateway está implantado, e tudo o que vai além da v1 está marcado para depois. Planos e teste

Situação atual

O que você tem

Chaves de provedor no ambiente de cada serviço, retentativas e timeouts escritos em cada base de código, e o custo visível só na fatura ou na página de uso do provedor, por chave ou projeto, no máximo.

O que muda

Cada cliente aponta para https://api.infro.io com uma chave do gateway do INFRO. Suas chaves de provedor passam para o INFRO como conexões, seladas; seus provedores continuam cobrando você diretamente, pelos seus próprios preços.

O que não muda

Os SDKs, os formatos de requisição e resposta, o streaming, as chamadas de ferramentas e as saídas estruturadas em chat completions. O INFRO responde nos formatos Chat Completions e Responses da OpenAI e no formato Messages da Anthropic.

Um gateway é mais um salto e mais um fornecedor. Para algumas configurações, ainda não vale a pena, e esta lista é a versão honesta disso.

  • Um serviço, um provedor, uma chave e uma fatura que uma pessoa lê. Um gateway adiciona um salto e uma assinatura antes de adicionar qualquer coisa de que você precise.
  • Sua carga de trabalho é principalmente Batch, fine-tuning, Files, vector stores ou a Realtime API. O INFRO não serve nenhum deles; essas chamadas continuariam diretas de qualquer forma.
  • Você depende de um recurso do provedor que os formatos de chat não levam, e só usa esse provedor. Chamadas que o INFRO não consegue levar ficam melhor diretas do que convertidas pela metade.
  • Você precisa que cada requisição fique dentro de uma única região de nuvem. O INFRO roda na rede da Cloudflare, e a fixação de região não está disponível hoje.

As alterações, uma linha cada. Tudo o que não está listado aqui continua como está.

 Chamadas diretas ao SDKINFRO
URL baseO padrão do SDK: api.openai.com/v1, api.anthropic.com.https://api.infro.io/v1 para o OpenAI SDK; https://api.infro.io para o Anthropic SDK (ele acrescenta /v1/messages).
ChaveOPENAI_API_KEY, ANTHROPIC_API_KEY em cada serviço.Uma chave do gateway do INFRO (Authorization: Bearer; o x-api-key do Anthropic SDK também é aceito). As chaves dos provedores são informadas uma vez, no console, como conexões.
Id do modelogpt-5.6-terra, claude-sonnet-5-5.openai/gpt-5.6-terra em chat completions, ou o nome de uma rota. O Anthropic SDK pode manter claude-sonnet-5-5: /v1/messages lê os ids da própria Anthropic.
AtribuiçãoGeralmente nada, ou o campo user do provedor.metadata.user_id, metadata.session_id, metadata.tags no corpo, ou os headers X-INFRO-User-Id / X-INFRO-Feature. Registrados na requisição, nunca enviados ao provedor.

Antes · SDKs dos provedores

import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";

const openai = new OpenAI(); // reads OPENAI_API_KEY
const anthropic = new Anthropic(); // reads ANTHROPIC_API_KEY

await openai.chat.completions.create({
  model: "gpt-5.6-terra",
  messages: [{ role: "user", content: "Hello" }],
});

await anthropic.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello" }],
});

Depois · INFRO

import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";

const openai = new OpenAI({
  baseURL: "https://api.infro.io/v1",
  apiKey: process.env.INFRO_API_KEY,
});
const anthropic = new Anthropic({
  baseURL: "https://api.infro.io",
  apiKey: process.env.INFRO_API_KEY,
});

await openai.chat.completions.create({
  model: "openai/gpt-5.6-terra",
  messages: [{ role: "user", content: "Hello" }],
});

await anthropic.messages.create({
  model: "claude-sonnet-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello" }],
});

Failover sem código novo

Conecte o Claude na Anthropic e na Vertex AI, ou duas chaves da Anthropic, e uma requisição que nomeia o modelo faz failover entre elas. Uma rota nomeada define a ordem e as regras por tipo de falha (429, 5xx, timeout) na configuração.

Orçamentos antes da chamada

Orçamentos na organização, no projeto, no membro e na chave reservam o pior caso de uma requisição antes de o provedor ser chamado. No teto, a resposta é 402 budget_exceeded, no envelope de erro da própria API.

O que deixar como está

Batch, Files, fine-tuning, vector stores, moderations e Realtime mantêm o cliente direto. Um mesmo serviço pode ter os dois clientes: um pelo INFRO, outro direto. Embeddings migram, mas mantenha exatamente o modelo que construiu seu índice: vetores de modelos diferentes não são comparáveis.

O que a sua configuração faz hoje comparado ao INFRO, conferido com o que o gateway implementa. Uma linha diz que o INFRO não tem nada.

Chamadas diretas ao SDKO que faz láNo INFRO
Chave de provedor por serviçodiferenteCada serviço guarda a chave do provedor no próprio ambiente.A chave é uma conexão, selada no INFRO; os serviços têm chaves do gateway com escopo, que podem ser limitadas a provedores, modelos, faixas de IP e um ambiente, rotacionadas ou desligadas.
Retentativas e timeoutsdiferenteAs retentativas do próprio SDK, mais o que cada base de código adicionar.Rotas com destinos por prioridade ou ponderados entre suas conexões e regras de falha por tipo (429, 5xx, timeout). As retentativas do próprio SDK continuam valendo por cima.
CustodiferenteA página de uso e a fatura do provedor, por chave ou projeto.Um custo estimado do provedor em cada resposta (usage.cost, usage.price_source), por projeto, chave, usuário e tag; reconciliado diariamente com as próprias APIs de custo da OpenAI e da Anthropic, com uma chave de administrador que você adiciona.
Limites de gastosdiferenteLimites de projeto do lado do provedor, quando o provedor os oferece.Orçamentos que recusam no teto com 402, em todos os provedores ao mesmo tempo, nos níveis de organização, projeto, membro, chave e cliente final.
Chat Completions e Responsesmesmo formatoAs duas APIs de texto da OpenAI.Os dois, em /v1/chat/completions e /v1/responses. previous_response_id e background são recusados: o INFRO não guarda respostas, então envie a conversa a cada turno.
Anthropic Messagesmesmo formato/v1/messages, com thinking, cache_control e ferramentas do servidor./v1/messages no formato da Anthropic. Em uma conexão Anthropic, ou no Claude na Vertex AI, o corpo chega ao provedor como escrito.
Imagens, fala, transcrição, vídeomesmo formatoOs endpoints de mídia do provedor./v1/images, /v1/audio, /v1/videos com jobs assíncronos, nos provedores que servem cada modelo.
Embeddingsmesmo formato/v1/embeddings./v1/embeddings no formato da OpenAI na sua conexão OpenAI, Azure OpenAI ou Mistral. Failover apenas para o mesmo modelo, para que os vetores armazenados continuem comparáveis.
Batch, Files, fine-tuning e RealtimenadaAPIs de provedor no nível da conta.Não servidos, e não planejados como recursos do gateway. Eles ficam no provedor.

O que o INFRO não faz

  • Batch, Files, fine-tuning, vector stores, moderations, Assistants e a Realtime API.
  • Respostas armazenadas: previous_response_id, conversation e background: true em /v1/responses são recusados com 400.
  • Fixação de região. O INFRO roda na rede da Cloudflare; residência de dados está no roadmap, não disponível.
  • Uma implantação auto-hospedada sem contrato enterprise.

O que não é levado

  • O histórico de uso de antes da troca. O próprio dashboard do provedor o mantém; o INFRO registra a partir da primeira requisição que atende.
  • Limites de projeto do lado do provedor. Defina orçamentos no INFRO em vez disso; os limites do provedor continuam valendo do lado dele.

Perguntas

Continuo pagando a OpenAI e a Anthropic diretamente?
Sim. O INFRO chama suas próprias contas de provedor com suas chaves, então seus provedores cobram você pelos seus próprios preços. O INFRO cobra uma assinatura e adiciona 0% ao gasto com modelos.
Preciso trocar de SDK?
Não. O OpenAI SDK aceita um baseURL de https://api.infro.io/v1, o Anthropic SDK um baseURL de https://api.infro.io, e os dois aceitam a chave do INFRO como chave de API.
O que precisa continuar diretamente no provedor?
Batch, Files, fine-tuning, vector stores, moderations e Realtime. O INFRO não os serve. Embeddings podem migrar: /v1/embeddings roda em conexões OpenAI, Azure OpenAI e Mistral.

Migre conosco ou por conta própria

O programa de migração mapeia, numa chamada, a sua configuração do SDKs diretos da OpenAI e da Anthropic para conexões, rotas e orçamentos do INFRO e migra o primeiro serviço com você. Seus provedores continuam cobrando você diretamente; o INFRO é uma assinatura e acrescenta 0% ao gasto com modelos.

Fontes

O comportamento do SDK descrito nesta página vem destas fontes, lidas em 19 de outubro de 2026.