Avançado 13 minOtimização

Ragas: avaliar seu RAG local com chiffres

Resposta direta

Ragas é uma biblioteca Python de código aberto (licença Apache 2.0, mais de 15.000 estrelas no GitHub) que quantifica a qualidade de um pipeline de busca documental: fidelidade, pertinência da resposta, precisão e recall do contexto. Ela pode rodar inteiramente com um modelo avaliador e um modelo de embedding locais, evitando enviar seus documentos e suas respostas a um serviço de terceiros apenas para avaliá-los.

Uma cadeia de busca documental é ajustada às cegas enquanto não há números: altera-se o tamanho dos trechos, troca-se o modelo de embedding e avaliam-se os resultados com base na impressão obtida em três perguntas. Ragas é uma biblioteca Python que quantifica essas intuições — e que distingue, quando uma resposta é ruim, a falha na busca da falha no modelo. Ela pode funcionar inteiramente com modelos locais, o que evita enviar seus documentos a um serviço de terceiros para avaliá-los.

Por Mohamed Meguedmi·Atualização 2026-09-29·Testado no Windows, macOS e Linux

#Por que 'isso parece bom' não é suficiente

Ragas é uma biblioteca Python de código aberto, sob licença Apache 2.0, que quantifica a qualidade de uma cadeia de busca documental: a fidelidade da resposta aos trechos fornecidos, sua relevância em relação à pergunta, a precisão e o recall do contexto recuperado. Assim, separa o erro da busca do erro do modelo. Pode ser executada com um juiz local, servido pelo Ollama, desde que esse modelo respeite o formato de saída estruturada que Ragas exige e que seu contexto contenha a pergunta inteira, os trechos e a resposta. Antes de adotá-la, lembre-se de três pontos: suas pontuações servem para comparar duas versões de um mesmo sistema, não para avaliar uma qualidade absoluta; o conjunto de testes é mais importante que a biblioteca; e os tutoriais online misturam a antiga e a nova API.

Quando uma resposta está errada, duas causas muito diferentes podem estar por trás do mesmo sintoma: ou os trechos recuperados não continham a informação, ou a continham e o modelo respondeu algo que não correspondia ao que foi perguntado. A correção não é a mesma — segmentação e embeddings no primeiro caso, modelo e prompt no segundo. Sem medição, corrigimos ao acaso, e uma melhoria em três perguntas piora as respostas a outras cinco sem que percebamos.

A outra armadilha é a comparação. A pergunta “O modelo de 27 bilhões de parâmetros é realmente melhor aqui?” se resolve repetindo o mesmo conjunto de perguntas, não discutindo. É isso que uma avaliação reprodutível permite fazer. Ragas ultrapassa 15.000 estrelas no GitHub. A última versão publicada no PyPI é a 0.4.3, de 13 de janeiro de 2026, e o repositório mudou de organização no GitHub (vibrantlabsai). Fixe a versão que você usa.

#As quatro medidas que importam

O kit RAG Local

Seus documentos, sua IA: um RAG local confiável para seus PDFs, notas e e-mails — sem enviar nada para a nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias
O que cada medida diagnostica
MediçãoPergunta feitaQue problema ela aponta quando diminuiO que deve ser fornecido
FidelidadeA resposta é totalmente sustentada pelos trechos fornecidos? Pontuação: afirmações sustentadas divididas por afirmações totais da respostaO modelo inventa ou extrapolaPergunta, resposta, trechos recuperados
Relevância da respostaA resposta trata da pergunta feita? O juiz gera três perguntas a partir da resposta, depois compara a similaridade delas com a pergunta originalO prompt ou o modelo foge do assuntoPergunta, resposta e um modelo de embedding
Precisão do contextoOs trechos úteis estão no início do ranking? Média de precisão em cada posiçãoA busca retorna resultados irrelevantes ou os ordena malPergunta, trechos na ordem em que foram recuperados, resposta de referência
Recall do contextoFoi recuperado tudo o que era necessário? Proporção das afirmações da resposta de referência sustentadas pelos trechosSegmentação em trechos pequenos demais, limiar restritivo demais, embeddings ruinsPergunta, trechos, resposta de referência

A documentação do Ragas especifica que a pertinência da resposta não avalia a exatidão: ela mede apenas a adequação à pergunta e penaliza respostas incompletas ou cheias de detalhes desnecessários. Por isso, não substitui a fidelidade. A análise conjunta é o que torna esses números úteis. Um recall baixo com alta fidelidade descreve um sistema honesto, mas mal alimentado: é preciso melhorar a recuperação. Uma fidelidade baixa com bom recall descreve o inverso: a informação estava lá, mas o modelo inventou detalhes. Os dois problemas se corrigem em pontos opostos da cadeia.

i
A fidelidade é a medida a ser monitorada primeiro
Em um ambiente profissional, uma resposta inventada mas plausível custa mais do que a ausência de resposta. Uma cadeia que reconhece "os documentos não dizem isso" é preferível a uma cadeia brilhante que se engana ocasionalmente sem aviso.

#Construir um conjunto de testes

Essa é a parte que exige trabalho e não pode ser automatizada sem consequências. Um conjunto útil contém perguntas realmente feitas pelos usuários, com suas formulações pouco claras, suas abreviações internas e seus erros de digitação — não perguntas reformuladas de maneira cuidadosa pela pessoa que escreveu a documentação.

  1. 01
    Partir das perguntas reais
    Trinta a cinquenta perguntas provenientes do uso real valem mais que duzentas perguntas inventadas. Inclua as que falharam: são as mais instrutivas.
  2. 02
    Escrever a resposta de referência
    Para cada pergunta, a resposta correta, escrita em uma ou duas frases. Ragas usa isso para estimar o recall do contexto: a versão baseada em um LLM usa essa referência como substituto dos trechos esperados, o que evita anotar os trechos um a um.
  3. 03
    Manter os casos sem resposta
    Perguntas às quais o corpus não responde. Um bom sistema deve dizer isso; sem esses casos, nunca medimos essa qualidade.
  4. 04
    Fixar o jogo
    Ele não deve mudar ao mesmo tempo que o sistema, caso contrário nenhuma comparação ao longo do tempo será possível.

O Ragas também oferece geração assistida de conjuntos de teste sintéticos a partir do próprio corpus: a documentação distingue perguntas de um salto (uma única fonte) de perguntas de múltiplos saltos (várias fontes a serem relacionadas), específicas ou abstratas. Um guia oficial mostra como adaptar essa geração a um corpus em outro idioma que não o inglês, usando o espanhol como exemplo, para iniciar uma primeira avaliação antes que as perguntas reais dos usuários tenham tido tempo de se acumular. É um ponto de partida conveniente, nunca um substituto: um conjunto inteiramente sintético não contempla as formulações pouco claras e os erros de digitação que, precisamente, revelam as fragilidades reais de uma busca documental.

#Executar tudo localmente

Ragas se baseia em dois modelos para avaliar: um modelo avaliador que lê a pergunta, os trechos e a resposta, e um modelo de embedding para as medições de similaridade. O quickstart do Ragas utiliza o OpenAI por padrão, mas mostra a variante Ollama: um cliente compatível com OpenAI apontado para http://localhost:11434/v1, passado à função llm_factory. Apenas a relevância da resposta exige um modelo de embedding: fidelidade, precisão e recall do contexto utilizam somente o avaliador.

Duas condições para que o juiz local seja confiável. A primeira é a saída estruturada: as métricas atuais exigem que o juiz forneça decisões intermediárias em um formato imposto (extração de afirmações, veredictos). Um modelo local pode responder em prosa e não cumprir esse contrato, gerando erros de JSON ou pontuações vazias (NaN); um guia da OneUptime recomenda testar o juiz com uma chamada mínima antes de qualquer campanha. Nenhuma fonte oficial define um tamanho mínimo de modelo: cabe a você verificar isso. A segunda é o contexto: o Ollama aplica por padrão 4.000 tokens de contexto quando há menos de 24 GiB de VRAM, e a documentação recomenda aumentar esse valor (variável OLLAMA_CONTEXT_LENGTH) para tarefas pesadas. Um juiz cujo contexto ultrapassa o limite está, na verdade, avaliando um texto truncado.

Python: um juiz local (API atual do Ragas)
# pip install ragas openai
from openai import AsyncOpenAI
from ragas.llms import llm_factory
from ragas.metrics.collections import Faithfulness, ContextRecall

# Client compatible OpenAI pointé sur Ollama (la clé est un simple libellé)
client = AsyncOpenAI(api_key="ollama", base_url="http://localhost:11434/v1")
juge = llm_factory("mistral", provider="openai", client=client)  # nom du modèle tiré avec ollama pull

fidelite = Faithfulness(llm=juge)
resultat = fidelite.score(
    user_input="Où se trouve la tour Eiffel ?",
    response="La tour Eiffel se trouve à Paris.",
    retrieved_contexts=["La tour Eiffel est située à Paris, en France."],
)
print(resultat.value)  # entre 0 et 1
→
Reproduzir as execuções em vez de executar novamente ao acaso
Guarde cada campanha em um arquivo datado, com a versão do sistema testada e a versão do Ragas. É isso que permite, seis meses depois, responder à pergunta “desde quando a precisão do contexto caiu?”, em vez de redescobrir o problema por meio de uma reclamação de um usuário.
!
API antiga, telemetria
Muitos tutoriais ainda usam LangchainLLMWrapper com a função evaluate: essa é a API antiga, que a documentação informa estar obsoleta na versão 0.4 e removida na 1.0. Outro ponto: o Ragas coleta, por padrão, dados de uso anonimizados; essa coleta pode ser desativada definindo a variável RAGAS_DO_NOT_TRACK como true. Para uma avaliação que deve permanecer offline, ative essa variável.

#Ler os resultados sem se enganar

São indicadores, não notas
Uma fidelidade de 0,82 não significa «82% de respostas corretas». Esse número serve para comparar duas versões do mesmo sistema, não para garantir uma qualidade absoluta.
O juiz tem vieses
O artigo de referência sobre juízes LLM (arXiv 2306.05685) descreve vieses de posição, de verbosidade e de autopreferência. Mantenha o mesmo juiz de uma campanha para outra; caso contrário, as diferenças medem o juiz e não o sistema.
Uma única campanha não prova nada
A geração é variável. Em um pequeno conjunto de testes, uma diferença de alguns centésimos pode ser apenas ruído.
Leia alguns casos manualmente
Os números indicam onde olhar; eles não indicam o que está errado. Os dez piores casos de uma campanha ensinam mais do que a média geral.
Duas formas de avaliar, e o que elas valem
MétodoO que ela ofereceSua limitação
Revisão humana em alguns casosO único controle de qualidade real em um tema com consequências importantesNão é escalável, exige tempo de especialista em cada campanha
Modelo julgador local (Ragas)Reprodutível, gratuito após a instalação, compara duas versões rapidamenteVieses de posição, de verbosidade e de autopreferência; a nota não representa uma verdade absoluta
Avaliação do usuário (polegar para cima)Reflete o uso real, sem custo de coletaMuitas vezes há pouco feedback, e um sinal de positivo não indica qual etapa falhou

#Casos de uso concretos

Escolher um tamanho para os trechos
Repetir o mesmo conjunto de testes com trechos de 256, 512 e depois 1024 tokens dá um número de recall por configuração, e não uma preferência não verificada.
Validar uma troca de modelo de embedding
Um novo modelo de embedding, mesmo anunciado como melhor em um benchmark geral, pode reduzir a precisão do contexto no seu corpus específico; só uma rodada de testes locais mostra isso.
Justificar a adição de um reranker
Comparar a precisão do contexto antes e depois do reranking quantifica um ganho que, caso contrário, continua sendo apenas uma impressão compartilhada em uma reunião.
Acompanhar uma regressão após a atualização do corpus
O acréscimo de novos documentos pode diluir a pesquisa; repetir o jogo de teste fixo após cada importação detecta a degradação antes que o usuário a perceba.
Escolher entre dois prestadores ou arquiteturas
Diante de duas propostas concorrentes para construir a mesma cadeia de processamento documental, uma pontuação obtida com o mesmo conjunto de teste e o mesmo corpus permite decidir mais rapidamente do que uma demonstração comercial.

#Organizar campanhas

Frequência das campanhas
Após cada mudança na divisão em trechos, no modelo de embedding ou no modelo de geração. Não é necessária uma campanha diária em um sistema estável.
Tamanho do corpus de teste
O conjunto de perguntas continua pequeno; já o corpus documental avaliado deve ser uma cópia realista — ou a totalidade — do corpus de produção.
Custo real de uma campanha
Cada métrica chama o juiz várias vezes (para a fidelidade: extração das afirmações, depois verificação de cada uma). O custo aumenta, portanto, com o número de perguntas multiplicado pelo número de métricas: cronometre cinco perguntas antes de executar as cinquenta, depois planeje a campanha de acordo.

#Limitações do método

Avaliar com um modelo significa pedir a uma inteligência artificial para julgar outra inteligência artificial: o método é útil, econômico e imperfeito. Ele detecta regressões e classifica variantes; não substitui a revisão humana em uma área em que há muito em jogo, na qual um erro factual implica responsabilidade. Por fim, cada campanha consome tempo de processamento: em uma máquina que também atende os usuários, ela deve ser executada quando a carga estiver baixa, à noite ou em um fim de semana, em vez de em pleno horário de uso.

O viés de verbosidade merece um comentário adicional, porque é contraintuitivo. Um artigo da OneUptime explica que um juiz tem mais oportunidades, em uma resposta longa, de citar as palavras-chave da rubrica de avaliação, de parecer exaustivo e de apresentar uma justificativa convincente. Um prompt que incentiva o modelo avaliado a ser mais verboso pode, portanto, aumentar uma pontuação sem melhorar a resposta do usuário. Para a fidelidade, a documentação do Ragas menciona também uma variante baseada no HHEM-2.1-Open, um pequeno classificador gratuito de detecção de alucinações da Vectara: ele substitui a etapa de verificação por um modelo especializado, que vale a pena testar se o seu juiz local for instável.

A solução mais simples é metodológica: nunca comparar um score de fidelidade obtido com um juiz a um score obtido com outro, nem a um score publicado por terceiros. O número tem sentido apenas dentro de uma mesma configuração de medição — mesmo juiz, mesmo prompt de avaliação, mesma versão das métricas. É uma ferramenta de comparação interna, não um ranking universal.

#FAQ

O Ragas funciona sem modelo na nuvem?+
Sim, desde que você configure explicitamente um avaliador local. A biblioteca, sob licença Apache 2.0 e com mais de 15.000 estrelas no GitHub, usa a OpenAI por padrão no seu guia de início rápido, mas seu guia mostra um cliente compatível com OpenAI apontado para o Ollama. Um modelo de embedding é necessário apenas para a relevância da resposta. Ative RAGAS_DO_NOT_TRACK para desativar a telemetria.
Quantas perguntas são necessárias em um conjunto de testes?+
Trinta a cinquenta perguntas reais já constituem uma base utilizável para detectar uma regressão evidente. Além disso, o valor vem da diversidade dos casos — incluindo perguntas sem resposta no corpus — muito mais do que do número bruto de perguntas feitas ao fluxo de processamento documental testado.
Qual medida deve ser analisada primeiro?+
Fidelidade, porque uma resposta inventada custa mais caro do que uma resposta ausente em um contexto profissional em que um erro implica responsabilidade. Em seguida, o recall do contexto, que indica se a informação sequer estava disponível no momento de responder, antes mesmo de avaliar a formulação da resposta.
É possível comparar dois modelos com o Ragas?+
Sim, é um de seus usos mais úteis: mesmo conjunto de perguntas, mesmo corpus, mesmo avaliador; muda-se apenas o modelo de geração. É a única forma séria de saber se um modelo maior melhora as respostas que você recebe, com base em seus documentos reais.
Um modelo avaliador local é confiável?+
O suficiente para comparar duas versões, desde que ele respeite o formato de saída estruturada solicitado pelo Ragas (teste-o em uma chamada isolada) e que seu contexto contenha tudo o que ele deve ler: o Ollama usa 4.000 tokens por padrão quando há menos de 24 GiB de VRAM. Ele não substitui uma revisão humana em assuntos com consequências importantes e apresenta vieses de posição, de verbosidade e de preferência por suas próprias respostas.
Ragas consegue gerar automaticamente um conjunto de testes?+
Sim, a biblioteca oferece geração assistida de perguntas sintéticas a partir do corpus, útil para iniciar uma primeira avaliação antes que as perguntas reais tenham tempo de se acumular. Ela não substitui perguntas realmente feitas por usuários, cujas formulações pouco claras revelam fraquezas que um conjunto de teste bem elaborado e sintético nunca revela da mesma forma.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.