Comparar preços de LLM: os custos dos meus modelos num relance

Os preços dos Large Language Models mudam regularmente. Ao mesmo tempo, os custos variam bastante consoante o modelo: os tokens de entrada e de saída são calculados separadamente, as janelas de contexto variam e surgem continuamente novas variantes a par dos modelos já estabelecidos. Por isso, quem utiliza várias API ou modelos de IA precisa de uma forma rápida de comparar os preços relevantes.

Foi precisamente para isso que criei o OpenRouter Price Comparison. A ferramenta não apresenta o catálogo completo de modelos com todos os metadados disponíveis, concentrando-se antes nos modelos que utilizo efetivamente. A minha seleção e a ordenação pretendida ficam guardadas no navegador. Assim, na visita seguinte, a minha lista de comparação pessoal volta a estar imediatamente disponível.

Porquê criar uma comparação de preços de LLM própria?

O OpenRouter dá acesso a um grande número de modelos de linguagem diferentes e disponibiliza informações detalhadas sobre os mesmos. No entanto, para controlar especificamente os preços dos modelos que utilizo regularmente, o catálogo completo contém muitas vezes mais informação do que aquela de que preciso no dia a dia.

Numa plataforma abrangente, poderia ter de começar por iniciar sessão, voltar a selecionar os modelos e ordenar a vista da forma pretendida. A minha comparação de preços reduz este processo ao essencial:

  • não é necessário iniciar sessão
  • seleção pessoal de modelos em vez do catálogo completo
  • ordenação guardada por nome do modelo, preço de entrada, preço de saída ou comprimento do contexto
  • preços apresentados uniformemente em dólares norte-americanos por milhão de tokens
  • acesso rápido a detalhes adicionais dos modelos
  • atualização automática dos dados OpenRouter no prazo máximo de uma hora

Assim, antes de um grande processamento em lote, de uma mudança de modelo ou de um novo projeto, é possível verificar rapidamente se o custo de um modelo utilizado se alterou.

Como funciona tecnicamente a aplicação

A aplicação foi deliberadamente concebida para ser simples e funciona inteiramente no navegador. Ao iniciar, consulta o endpoint público de modelos da API OpenRouter:

https://openrouter.ai/api/v1/models

Entre outros dados, a API fornece nomes e IDs de modelos, comprimentos de contexto e preços por token. Para facilitar a comparação, a ferramenta converte os preços para um milhão de tokens:

Preço por 1 milhão de tokens = Preço da API por token × 1 000 000

Os preços de entrada e de saída são apresentados separadamente. Isto é importante porque, em muitos modelos, os tokens de saída gerados são consideravelmente mais caros do que os tokens de entrada. Por conseguinte, uma comparação baseada num único preço seria pouco esclarecedora.

Seleção pessoal de modelos com localStorage

Os IDs dos modelos selecionados são guardados no localStorage do navegador. O mesmo se aplica à coluna de ordenação ativa e ao sentido da ordenação. Deste modo, após recarregar a página, a aplicação reconstrói automaticamente a última vista utilizada.

São guardados três tipos de dados:

Tipo de dadosFinalidade
IDs dos modelos selecionadosRestaura a lista de comparação pessoal
Coluna e sentido da ordenaçãoMantém a vista preferida da tabela
Catálogo de modelos OpenRouterReduz chamadas desnecessárias à API e acelera o arranque

A seleção fica, assim, associada ao navegador e ao dispositivo utilizados. Não é sincronizada através de uma conta de utilizador nem transmitida para um servidor próprio. Quem apagar os dados do navegador ou utilizar outro navegador começará com uma seleção vazia.

Preços atuais com uma cache de uma hora

O catálogo de modelos, incluindo os preços, é guardado localmente em cache durante um período máximo de uma hora. Enquanto esta cache for válida, a página pode carregar os dados diretamente do navegador. Isto permite tempos de carregamento curtos e evita um novo pedido à API OpenRouter sempre que a página é visitada.

Se a cache tiver mais de uma hora, a aplicação carrega o catálogo de modelos atualizado. A seleção pessoal é mantida: os IDs guardados são associados aos dados dos modelos acabados de obter, para que a tabela apresente em seguida os preços atualizados dos modelos selecionados.

Se a API ou a ligação à Internet estiver temporariamente indisponível, a aplicação pode recorrer a uma cache anterior já existente. O estado apresentado acima da pesquisa indica se os dados foram atualizados em tempo real, carregados da cache ou disponibilizados offline.

Pesquisar, selecionar e ordenar modelos

A utilização foi concebida como um processo curto:

  1. Pesquisar pelo nome ou ID de um modelo, por exemplo, GPT, Claude ou Gemini.
  2. Selecionar o modelo adequado na lista de sugestões.
  3. Adicionar outros modelos utilizados regularmente.
  4. Ordenar a tabela por nome, preço de entrada, preço de saída ou comprimento do contexto.
  5. Se necessário, abrir a vista detalhada para consultar a descrição, a modalidade e o comprimento máximo da saída.

Depois de configurada, basta voltar a visitar a página. A seleção e a ordenação são carregadas do localStorage; se a cache de dados tiver expirado, a aplicação obtém automaticamente dados OpenRouter atualizados.

O que ter em conta na comparação de preços

O preço dos tokens é um fator importante, mas não é o único na escolha de um modelo. Para uma avaliação realista dos custos, devem também ser considerados os seguintes aspetos:

  • A proporção entre tokens de entrada e de saída no caso de utilização específico
  • O comprimento de contexto necessário para prompts, documentos ou históricos de conversas
  • A qualidade e a fiabilidade do modelo para a tarefa concreta
  • A velocidade de resposta e os providers disponíveis
  • eventuais custos adicionais, descontos ou condições diferentes

Um modelo mais económico pode ser suficiente para classificação ou extração simples, enquanto tarefas exigentes de coding, reasoning ou análise podem justificar um modelo mais potente. A comparação de preços ajuda a tornar rapidamente visível a componente dos custos, mas não substitui um benchmark próprio.

Privacidade e limites do armazenamento local

A lista pessoal de modelos é gerida exclusivamente através do armazenamento do navegador. Não é necessário qualquer registo ou conta de utilizador. Isto reduz os dados pessoais transmitidos e simplifica a utilização.

No entanto, o localStorage não é um sistema de armazenamento entre dispositivos. A seleção não é sincronizada nem salvaguardada e pode perder-se ao apagar os dados do site. Além disso, as informações e os preços dos modelos provêm da API OpenRouter. Por conseguinte, para faturação e cálculos de produção, prevalecem sempre as informações do fornecedor em vigor no momento em causa.

Conclusão

O OpenRouter Price Comparison foi concebido como uma ferramenta focada para utilização diária: apresenta os preços dos LLM relevantes no momento, guarda localmente a seleção e a ordenação e atualiza regularmente os dados OpenRouter subjacentes. Em vez de ser necessário percorrer repetidamente um vasto catálogo de modelos, obtém-se uma vista de comparação pessoal permanente sem iniciar sessão.

Deste modo, é possível verificar rapidamente os custos de entrada e de saída de GPT, Claude, Gemini e outros modelos OpenRouter antes de selecionar ou substituir um modelo, ou de intensificar a sua utilização em produção.

Perguntas frequentes

Até que ponto estão atualizados os preços de LLM apresentados?

Os dados dos modelos OpenRouter são guardados na cache do navegador durante um período máximo de uma hora. Decorrido esse período, a aplicação obtém dados atualizados da API OpenRouter no carregamento seguinte.

Os modelos que selecionei ficam guardados?

Sim. Os IDs dos modelos e a ordenação escolhida são guardados no localStorage do navegador. Mantêm-se após um recarregamento normal ou uma visita posterior.

Preciso de uma conta OpenRouter?

Não. Não é necessário iniciar sessão para utilizar a comparação de preços. Os dados dos modelos são carregados através do endpoint da API acessível ao público.

Que preços são comparados?

A ferramenta apresenta os preços fornecidos pelo OpenRouter para tokens de entrada e de saída, convertidos para um milhão de tokens. Também é possível ordenar pelo comprimento do contexto e pelo nome do modelo.

Os meus dados são transmitidos para um servidor próprio?

Não. A seleção, a ordenação e a cache permanecem localmente no navegador. Para obter o catálogo de modelos, o navegador envia um pedido direto à API OpenRouter.

Porque não vejo a mesma lista de modelos noutro dispositivo?

As definições encontram-se no armazenamento local do navegador e não são sincronizadas através de uma conta. Por isso, cada navegador e cada dispositivo têm a sua própria seleção.