Bastidores

Desenvolvimento· Arrumando a casa · parte 17

Tirei uma trava da minha IA e a resposta caiu de 5,5 s para 3,7 s.

Veja como comparar provedores no OpenRouter e configurar o roteamento por throughput sem restringir a escolha de endpoints.

Três barras de tempo de resposta, de 7,0 s, 5,5 s e 3,7 s, com a mais curta destacada.

Uma opção de retenção zero prendia toda a IA de um produto a um provedor que respondeu 1,8 s mais devagar que o melhor no meu teste. A configuração parecia pequena. O efeito aparecia em toda chamada.

Todos os meus produtos chamam modelos de IA pelo OpenRouter, que manda cada chamada para um dos provedores que servem aquele modelo. Isso me dá uma escolha a mais para investigar quando a resposta demora: olhar também para o caminho percorrido pela chamada.

A retenção zero fechou a escolha de provedor

Num produto que ainda não apresentei aqui, toda chamada enviava provider.zdr: true. Para o modelo da OpenAI que ele usa, só o Azure tinha endpoint com retenção zero, então todo o tráfego ficava preso no Azure, e a IA ficou lenta.

A lentidão parecia vir do modelo, mas a causa estava na restrição enviada na chamada. O nome do modelo permanecia igual em cada requisição, mas a exigência sobre o provedor reduzia as opções disponíveis ao roteador. Uma escolha feita na configuração passou a determinar o caminho de todas as respostas.

Esse detalhe importa quando se usa um roteador de modelos. Ter vários provedores disponíveis para um modelo não significa que todos estejam disponíveis para a configuração enviada. Cada restrição precisa ser considerada junto da chamada que a contém.

A comparação também precisava respeitar as mesmas condições para isolar o impacto da rota. O teste precisa manter o mesmo pedido, o mesmo modelo e o mesmo nível de raciocínio em cada tentativa. Mantive esses elementos iguais para comparar os tempos entre endpoints.

O mesmo pedido mostrou tempos diferentes

Em 6 de novembro, medi a mesma chamada com o GPT-6 Luna e raciocínio medium. O Amazon Bedrock respondeu em 3,7 s, o Azure em 5,5 s e a OpenAI direta em 7,0 s. O intervalo entre o Bedrock e o Azure foi de 1,8 s.

Ao enviar provider.sort: "throughput", o OpenRouter escolheu o Bedrock sozinho. A escolha acompanhou o objetivo da configuração: ordenar os provedores pela velocidade de processamento. No pedido medido, o caminho escolhido também foi o que teve o menor tempo entre os comparados.

O resultado mede aquela chamada específica, sem garantir que o mesmo provedor vença sempre. A utilidade do teste está em manter pedido, modelo e raciocínio iguais e observar o que muda ao trocar o provedor. Assim a comparação responde a uma pergunta direta sobre tempo de resposta.

Para repetir a medição em outro produto, comece pela chamada que parece lenta e confira quais restrições ela envia. Depois, compare os provedores disponíveis com a mesma entrada e a mesma configuração de modelo. Por último, teste o roteamento configurado para observar qual caminho o OpenRouter escolhe.

A configuração passou a priorizar velocidade

A decisão de 6 de novembro passou a valer para todos os meus produtos: nenhuma configuração que possa deixar a IA mais lenta. A regra fixa é não pedir retenção zero, não fechar a lista de provedores com provider.only e não ligar guardrail que restrinja provedor.

Toda chamada de texto envia provider.sort: "throughput". O esforço de raciocínio padrão é medium. A chamada prioriza a velocidade de processamento sem impor barreiras desnecessárias ao roteador.

Há uma exceção na configuração que pode permanecer: require_parameters: true. Ela retira endpoints que não aceitam a saída estruturada solicitada. Esses endpoints dariam erro, então mantê-los na seleção não resolveria o pedido.

As políticas de privacidade de cada produto passaram a citar o OpenRouter sem prometer retenção zero. O texto precisa acompanhar a configuração adotada. Uma promessa escrita para uma configuração anterior não deve continuar como descrição do comportamento atual.

A exceção fica no produto que precisar dela

A base de onde nascem os produtos novos já segue essa regra desde 7 de novembro, num registro de decisão chamado “OpenRouter: speed first”. Cada projeto que nasce dessa base já começa com a regra escrita.

Se um produto um dia precisar de retenção zero, a decisão será daquele produto. O código pede a condição em cada chamada, e as chaves dele recebem um guardrail com o nome do produto como segunda trava. A regra geral de velocidade permanece protegida no restante da operação.

O ganho desta investigação foi descobrir qual configuração estava fechando as opções antes de mudar o modelo. O roteador só pode escolher entre os caminhos que a chamada permite. Para entender como organizo as contas que sustentam essa operação, contei o padrão no post sobre Sentry, PostHog e OpenRouter.

Teste local verde até no S23, e o staging ainda achou um defeito.08 nov · DesenvolvimentoOutra IA revisou 4.170 traduções da IA em inglês e corrigiu 307.08 nov · Inteligência artificialA conta live do Stripe estava ativa, mas falhou na minha conferência.08 nov · LançamentoTrês regras de HSTS num só domínio: por que deixei o preload de fora.08 nov · DesenvolvimentoUma palavra a menos derrubou 13 páginas que já estavam no ar.08 nov · DesenvolvimentoOutro agente de IA revisou meu código 71 vezes e criou dois defeitos.08 nov · Inteligência artificialDepois de 20 anos de carreira, publiquei meu primeiro pacote no npm.08 nov · LançamentoSozinho com IA: iPhone, Android, SaaS com MCP e CLI, e já faturando.07 nov · BastidoresCopiei a mecânica dos líderes e recusei a mentira deles.07 nov · BastidoresA pergunta de LGPD que trava a venda: e o backup?07 nov · ProdutoA IA calibrou minha câmera pelos números. Ficou cara de lanterna.07 nov · BastidoresUm usuário não via o dia de ontem. Abri todo o passado do Garfim.07 nov · Produto62% baixavam o Garfim. O problema estava antes da página.07 nov · LançamentoO idioma certo na tela pode virar o errado no servidor.07 nov · DesenvolvimentoO limite de 10 por minuto que deixou passar muito mais.07 nov · DesenvolvimentoUm PR do Dependabot travou meu banco e as rotas voltaram 500.07 nov · DesenvolvimentoMeus produtos novos não começam do zero. Começam de um clone.07 nov · DesenvolvimentoTirei uma trava da minha IA e a resposta caiu de 5,5 s para 3,7 s.07 nov · DesenvolvimentoTroquei velocidade por uma auditora que confere cada frase.07 nov · Inteligência artificialEscrevi o método CERNE lendo seis especificações reais.07 nov · Inteligência artificialComo anunciar na Meta e vender online no CPF sem abrir empresa.05 nov · BastidoresPausei anúncios depois de ignorar o resultado anterior.05 nov · BastidoresComo depurei um erro de API sem log no registro do Garfim.05 nov · DesenvolvimentoComo forçar atualização no React Native antes de um defeito grave.05 nov · DesenvolvimentoComo levei o LCP do ClipLeve de 9,9 s para menos de 1,5 s.05 nov · DesenvolvimentoPubliquei 650 páginas contra a regra do meu método.05 nov · Inteligência artificialUma conta para organizar erros, métricas e IA dos meus produtos.05 nov · BastidoresSeparei o painel do site e pus o Access na porta.05 nov · DesenvolvimentoUma lista de 69 itens encontrou requisitos só no papel.05 nov · BastidoresO antispam esperou tanto que parou o formulário.05 nov · DesenvolvimentoCortei a publicação de 17 minutos para 4 na minha máquina.05 nov · DesenvolvimentoEu gravo. A IA corta, legenda e entrega o vídeo curto.05 nov · Inteligência artificialComo criar anúncios UGC com IA usando o método PROVA.05 nov · Inteligência artificialA IA disse que usou as skills. A página provou o contrário.05 nov · Inteligência artificialNove páginas reprovadas antes de encontrar uma identidade.05 nov · Inteligência artificialEm 48 horas, juntei domínios, e‑mail, sites e medição num padrão só.30 out · BastidoresPor que tirei os três sites do GPT Sites.30 out · DesenvolvimentoComo troquei o luisjunior.ai com cerca de 10 segundos fora do ar.30 out · DesenvolvimentoRefiz o luisjunior.ai do zero: cada afirmação com prova.30 out · LançamentoUm padrão para todos os domínios, inclusive os de produtos futuros.30 out · BastidoresTodo o e‑mail dos meus domínios saiu do VPS num só dia.30 out · DesenvolvimentoDecidi mover o envio do Garfim do Resend para a Cloudflare.30 out · DesenvolvimentoO método FONTE para aparecer no Google e nas respostas de IA.30 out · Inteligência artificialTrês sites, três decisões de busca, e uma delas é não gerar páginas.30 out · Inteligência artificialMedição de vários sites num painel só, com consentimento.30 out · BastidoresComo a IA me apresenta mídias para aprovação29 out · Inteligência artificialO Garfim chegou ao Google Play. Agora tem Android e iPhone.22 out · LançamentoConseguir testadores e esperar 14 dias: a reta final do Garfim no Android.22 out · BastidoresO ClipLeve chegou à App Store. O que aprendi até aqui.20 out · LançamentoO ClipLeve foi rejeitado de novo. Dessa vez, por uma palavra.20 out · ProdutoO Garfim foi aprovado. E já está na App Store.16 out · LançamentoA última negativa do Garfim: câmera, assinatura e o caminho inteiro.16 out · LançamentoClipLeve: o cuidado por trás de um vídeo mais leve.12 out · ProdutoPor que restaurar uma assinatura pode falhar em outra conta.12 out · ProdutoQuando um aplicativo pode dizer que sua conta foi excluída?12 out · ProdutoO que a primeira negativa da App Store me fez explicar.08 out · LançamentoO que quero aprender com o teste fechado do Garfim.08 out · ProdutoO trabalho de uma assinatura continua depois da compra.03 out · DesenvolvimentoPor que o Garfim ganhou um plano gratuito.03 out · ProdutoO login funcionou. Por que a tela do Garfim não saiu do lugar?03 out · LançamentoPagenello: um site começa pelo que o visitante veio fazer.03 out · LançamentoComo uma foto do almoço vira um produto.27 set · ConcepçãoAs decisões que continuo tomando ao desenvolver com IA.27 set · DesenvolvimentoApresentar o Garfim ao público também é um teste do produto.27 set · Lançamento

GET luisjunior.ai/llms.txt

Esta é a versão do site escrita para modelos de linguagem: os mesmos fatos, sem layout, prontos para um assistente de IA ler e citar. Agentes no Chrome também encontram aqui ferramentas WebMCP para consultar produtos, textos e contato.

conectando…0 tokens · 0 tok/s