Objetivos de aprendizado
Depois de ler este artigo, você vai conseguir:
- Separar o custo de um RAG em indexação, armazenamento, consulta e geração
- Calcular o gasto mensal de embeddings, banco vetorial e LLM com uma conta passo a passo
- Reconhecer os custos escondidos e as alavancas que mais reduzem a conta
Nesta página
Um sistema RAG parece caro porque tem muitas peças: modelo de embeddings, banco vetorial, LLM, servidor. Na prática, a conta costuma se concentrar numa só delas, e saber qual muda as decisões de projeto. Quem otimiza o banco vetorial enquanto envia 10 trechos enormes a um modelo caro está economizando no lugar errado.
Os números deste artigo são hipotéticos, escolhidos para facilitar a conta, em dólar e sem impostos. Não são preços de nenhum provedor; os valores reais ficam nas páginas oficiais de preços.
Do que é feito o custo de um RAG?#
Um RAG tem duas fases, cada uma com seus custos:
- Indexação (uma vez, e de novo a cada atualização): dividir os documentos em trechos, gerar o embedding de cada trecho e gravar os vetores num índice.
- Consulta (a cada pergunta): gerar o embedding da pergunta, buscar os trechos mais parecidos e enviar pergunta e trechos ao LLM, que escreve a resposta.
Isso dá quatro linhas na fatura: embeddings, armazenamento e busca dos vetores, geração no LLM e hospedagem da aplicação que junta tudo.
Quanto custam os embeddings?#
Os modelos de embedding cobram só a entrada, por milhão de tokens, e custam bem menos que os de geração. As contas abaixo usam três faixas hipotéticas:
| Faixa do modelo (hipotético) | US$ por milhão de tokens | Observação |
|---|---|---|
| Embedding pequeno | 0,05 | vetores de 1.536 dimensões, por exemplo |
| Embedding grande | 0,10 | vetores maiores, de 3.072 dimensões, por exemplo |
| Embedding premium | 0,25 | alguns provedores dão desconto no modo batch |
Alguns provedores oferecem uma cota de tokens sem custo por conta, e outros dão desconto no modo batch. Os valores atuais estão nas páginas de preços de provedores como a OpenAI, a Voyage AI e o Google. O provedor dos embeddings não precisa ser o mesmo da geração: a documentação de embeddings da Anthropic, por exemplo, indica a Voyage AI.
A conta da indexação é pequena. Exemplo hipotético: um acervo de 10 mil documentos de 2 mil tokens soma 20 milhões de tokens: US$ 1 no embedding pequeno, US$ 5 no premium e zero enquanto durar uma cota sem custo, se o provedor oferecer uma. As perguntas também viram embeddings, mas com uns 50 tokens cada, mil perguntas por dia somam 1,5 milhão de tokens por mês: sete centavos e meio de dólar.
Quanto custa guardar e buscar os vetores?#
O tamanho de cada vetor depende das dimensões: cada uma ocupa 4 bytes em precisão simples (float32) e 2 bytes em meia precisão (float16), mais alguns bytes de cabeçalho por vetor. Com 20 milhões de tokens em trechos de 500 tokens, são 40 mil trechos:
- 40.000 × (4 × 1.536 + 8) bytes ≈ 246 MB de vetores em precisão simples.
- Metade disso, ≈ 123 MB, em meia precisão.
- Some o texto dos trechos (que você guarda para mandar ao LLM) e o índice de busca, que ocupa espaço próprio.
Há dois caminhos para hospedar isso:
- Extensão vetorial num banco que você mesmo administra. Alguns bancos relacionais aceitam extensões open source que guardam e buscam vetores. O custo é o do servidor do banco, e 40 mil trechos cabem com folga num servidor pequeno.
- Serviço vetorial dedicado. Costuma ter um plano sem mensalidade, com limites de armazenamento, de leituras e escritas por mês e de região, e planos pagos com um valor mínimo mensal, mais cobrança por GB armazenado e por milhão de operações de leitura e escrita. A página de preços do Pinecone é um exemplo de como essa tabela é montada.
Para um acervo desse tamanho, o armazenamento custa menos de um dólar em qualquer opção. O que pesa é o mínimo do plano. A comparação entre os tipos de banco está em o que é um banco de dados vetorial.
Quanto custa a geração no LLM?#
Aqui está a maior parte da conta. Cada pergunta envia ao modelo o prompt de sistema, os trechos recuperados e a pergunta. Com 5 trechos de 500 tokens, a entrada chega a 3 mil tokens, mesmo que a pergunta tenha uma linha.
As contas usam as mesmas três faixas hipotéticas de preço por milhão de tokens (entrada e saída) do artigo sobre a API de um LLM: um modelo pequeno a US$ 0,20 e US$ 1, outro pequeno com saída mais cara a US$ 0,50 e US$ 4 e um intermediário a US$ 4 e US$ 20. Os valores reais estão na página de preços de cada provedor. A explicação da cobrança por token está em quanto custa usar a API de um LLM.
Quanto custa um RAG com mil perguntas por dia?#
Exemplo hipotético: 10 mil documentos (20 milhões de tokens), trechos de 500 tokens, mil perguntas por dia (30 mil por mês), 5 trechos por pergunta, prompt de sistema de 450 tokens, pergunta de 50 e resposta de 400. O script abaixo faz a conta (qualquer versão atual do Python 3, sem dependências):
"""custo_rag.py: rode com python custo_rag.py.
Preços em US$ por milhão de tokens: valores hipotéticos, troque pelos atuais."""
EMBEDDING = 0.05 # embedding pequeno (hipotético)
MODELOS = {
"pequeno-a": (0.20, 1.00),
"pequeno-b": (0.50, 4.00),
"intermediario": (4.00, 20.00),
}
tokens_corpus = 20_000_000 # indexação: 10 mil documentos de 2 mil tokens
tokens_por_trecho = 500
dimensoes = 1536
trechos = tokens_corpus // tokens_por_trecho
bytes_por_vetor = 4 * dimensoes + 8 # float32 + cabeçalho
print(f"Indexação: US$ {tokens_corpus / 1e6 * EMBEDDING:.2f} (uma vez)")
print(f"Trechos: {trechos}, vetores: {trechos * bytes_por_vetor / 1e6:.0f} MB")
consultas = 30_000 # mil perguntas por dia
entrada = 450 + 5 * tokens_por_trecho + 50 # sistema + 5 trechos + pergunta
saida = 400
emb_perguntas = consultas * 50 / 1e6 * EMBEDDING
for nome, (preco_in, preco_out) in MODELOS.items():
llm = consultas * (entrada * preco_in + saida * preco_out) / 1e6
print(f"{nome}: US$ {llm + emb_perguntas:.2f} por mês")Resultado:
| Parte | Custo |
|---|---|
| Indexação (uma vez) | US$ 1,00 |
| Embeddings das perguntas | US$ 0,075 por mês |
| Geração com o modelo pequeno A | cerca de US$ 30 por mês |
| Geração com o modelo pequeno B | cerca de US$ 93 por mês |
| Geração com o modelo intermediário | cerca de US$ 600 por mês |
| Banco vetorial | o do servidor do seu banco, ou de zero ao mínimo mensal do plano num serviço dedicado |
Trocar o modelo de geração leva a conta de US$ 30 a US$ 600 por mês; trocar o modelo de embeddings muda poucos dólares. Some ainda a hospedagem da aplicação e do banco, que é fixa por mês.
Quais custos escondidos aparecem?#
- Trechos demais. Passar de 5 para 10 trechos quase dobra a entrada de cada pergunta. Teste com quantos trechos a resposta ainda fica boa.
- Reindexação. Trocar o modelo de embeddings, o tamanho dos trechos ou a forma de dividir os documentos exige gerar todos os vetores de novo. Barato para 20 milhões de tokens, caro para bilhões.
- Histórico de conversa. Num chat, o histórico se soma aos trechos a cada mensagem e a entrada cresce rápido.
- Contexto longo. Alguns modelos cobram mais caro por prompts acima de um certo tamanho. Um RAG que despeja documentos inteiros no prompt cai nessa faixa.
- Reranker e avaliação. Um modelo de reranking melhora a busca, mas é mais uma chamada paga por pergunta. Rodar testes de qualidade também gasta tokens.
- Extração de documentos. PDFs escaneados precisam de OCR antes de virar texto, e isso pode custar mais que os embeddings.
- Abuso. Um endpoint público sem limite por usuário vira uma API de LLM aberta. Veja o que é prompt injection e ponha limites no código.
Como reduzir o custo de um RAG?#
- Comece pelo menor modelo de geração e só suba se as respostas não servirem.
- Recupere menos e melhor. Trechos menores, menos trechos e um corte por similaridade mínima reduzem a entrada.
- Limite a saída com
max_tokense peça respostas curtas. - Use cache de prompt para a parte fixa (instruções e exemplos). Os trechos mudam a cada pergunta, então o ganho fica no prompt de sistema.
- Guarde respostas de perguntas repetidas. FAQ interno tende a repetir as mesmas dúvidas.
- Use batch na indexação quando o provedor oferece desconto no modo batch para embeddings.
Como fazer isso na Square Cloud#
A tabela acima mostra que quase toda a conta está na geração. Na Square Cloud você hospeda a aplicação RAG e, a partir do Standard, pode tirar essa linha da fatura em dólar.
A aplicação (a API que recebe a pergunta, consulta o índice e chama o modelo) roda num container sempre ligado, sem cold start. Entre diversos runtimes, como Python, Node.js e Go, você escolhe o da sua stack; veja os runtimes disponíveis hoje em Runtimes. As chaves dos provedores ficam nas variáveis de ambiente da aplicação.
Para a geração, o AI Gateway, a partir do Standard (R$ 44,99 por mês), é uma API compatível com a da OpenAI que serve o modelo cubic. Você aponta o SDK da OpenAI para https://api.squarecloud.app/v2/ai, usa uma chave de API da conta com o escopo ai:chat e manda o prompt com os trechos recuperados, como faria com qualquer provedor. O gateway está em beta, com acesso antecipado sem custo extra, e os limites e a disponibilidade podem mudar quando o beta acabar. No Standard são até 2,5 milhões de tokens e até 1.000 requisições por dia, com contexto de até 16 mil tokens; no Pro, até 5 milhões de tokens e até 5.000 requisições por dia. As mil perguntas diárias do exemplo somam cerca de 3,4 milhões de tokens: passam do Standard e cabem no Pro.
O gateway faz só a geração. Os embeddings continuam num provedor como os da tabela, que custam centavos, e o índice fica num serviço vetorial externo: não há banco vetorial na plataforma, e o PostgreSQL hospedado é o nativo, sem extensões (nem pgvector). A hospedagem de bancos, útil para os documentos e o histórico, também começa no Standard, no mesmo datacenter das aplicações, com latência média de cerca de 1 ms. O Hobby, a partir de R$ 12,49, não inclui banco nem o gateway e serve para uma API leve que chama provedores externos. Um modelo de embedding local, com as wheels de torch e transformers do runtime Python, não cabe no Hobby de 1 GB.
Veja os detalhes em AI Gateway e como publicar a API em Hospedagem de APIs.
IA
Hospede apps com IA em containers sempre ligados
Perguntas frequentes
Qual é a parte mais cara de um sistema RAG?
Quase sempre a geração. Cada pergunta envia ao LLM o prompt de sistema e os trechos recuperados, então a entrada fica grande. Embeddings custam centavos por milhão de tokens e são gerados uma vez, na indexação.
Quanto custa gerar embeddings de 10 mil documentos?
Com 10 mil documentos de 2 mil tokens (20 milhões de tokens), um modelo de embedding a US$ 0,05 por milhão custa US$ 1, e um a US$ 0,25 por milhão, US$ 5. São valores hipotéticos: confira o preço real do modelo escolhido.
Preciso pagar um banco vetorial dedicado?
Não necessariamente. Com dezenas de milhares de trechos, uma extensão vetorial num banco que você mesmo administra resolve, e o custo é o do servidor desse banco. Serviços dedicados costumam ter um nível sem mensalidade, com limites, e planos pagos com um valor mínimo por mês.
Trocar o modelo de embeddings tem custo?
Tem. Vetores de modelos diferentes não são comparáveis, então trocar o modelo exige gerar de novo os embeddings de todo o acervo e reconstruir o índice.
Mais em IA
Ver todos os 13 artigos- Quanto custa criar e manter um chatbot com IAManter um chatbot com IA custa tokens do modelo, hospedagem, banco e, com RAG, contexto extra por mensagem. Veja como fazer a conta por conversa.
- Como hospedar um chatbot com IAUm chatbot com IA é uma API que recebe mensagens, chama um modelo de linguagem e devolve a resposta em streaming. Veja o código e como colocá-lo no ar.
- Quanto custa usar a API de um LLM no seu bot ou appA API de um LLM cobra por token, e a saída custa mais que a entrada. Veja uma conta passo a passo para um bot e como cortar o gasto.
- Como hospedar o n8n (automação com IA)Hospedar o n8n é rodar o servidor dele num processo sempre ligado, com URL pública HTTPS, banco e chave de criptografia fixa. Veja o passo a passo.