agno-metrics-rag
agno-metrics-rag é uma biblioteca de avaliação de qualidade e observabilidade contínua de RAG para o ecossistema Agno. Inspirada nas métricas do RAGAS, ela provê:
- 🗄️ Auto-provisionamento de Tabelas: Criação idempotente de tabelas PostgreSQL compatíveis com o Agno (
PostgresDb/PgVector). - 🧠 Geração de Datasets Sintéticos: Síntese de trios
(pergunta, ground_truth, contextos)extraídos diretamente dos chunks gravados no seuKnowledge/PgVectorusando qualquer LLM suportado pelo Agno. - 📊 Família Completa de Métricas RAG (RAGAS-compliant):
- Generation:
FaithfulnessMetric: Detecção de alucinações vs contexto.AnswerRelevanceMetric: Relevância e completude da resposta vs pergunta.AnswerCorrectnessMetric: F1-score factual (TP/FP/FN) + similaridade semântica com o Ground Truth.AnswerSemanticSimilarityMetric: Grau de preservação do significado e intenção.
- Retrieval:
ContextPrecisionMetric: Avaliação de Mean Average Precision (chunks relevantes no topo).ContextRecallMetric: Cobertura dos fatos do Ground Truth no contexto.ContextRelevanceMetric/ Noise Ratio: Proporção de informação útil vs ruído nos chunks.ContextEntityRecallMetric: Cobertura e fidelidade de entidades nomeadas (nomes, IDs, valores, datas).
- Safety & Quality:
AspectCritiqueMetric: Auditoria de critérios (harmfulness, toxicity, conciseness, politeness, regras customizadas).
- Agentic RAG:
ToolCallAccuracyMetric: Acurácia da seleção de tools e precisão dos argumentos gerados.
- Generation:
- ⚡ Tool Hook de Runtime (Síncrono ou em Background): Intercepta chamadas de busca (
search_knowledgeou tool customizada) e computa a qualidade sem bloquear a resposta do agente ao usuário final.
📦 Instalação
pip install agno-metrics-rag
🚀 Guia de Uso Rápido
1. Inicializando o Banco de Métricas
from agno_metrics_rag import RagMetricsDb
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
metrics_db = RagMetricsDb(db_url=db_url)
2. Gerando um Dataset Sintético a partir do Knowledge
from agno.models.openai import OpenAIChat
from agno.vectordb.pgvector import PgVector
from agno_metrics_rag import RagTestsetGenerator
judge_model = OpenAIChat(id="gpt-4o-mini")
vector_db = PgVector(table_name="minha_tabela_de_vetores", db_url=db_url)
generator = RagTestsetGenerator(
model=judge_model,
db=metrics_db,
vector_db=vector_db,
)
# Gera perguntas e ground-truths baseados nos chunks reais gravados no banco
testset = generator.generate_testset(
name="Dataset de Qualidade RAG",
num_samples=10,
persist=True,
)
3. Rodando um Ciclo de Testes e Avaliação
from agno_metrics_rag import RagEvaluator
evaluator = RagEvaluator(
judge_model=judge_model,
db=metrics_db,
)
# Executa a bateria de testes contra o Agente
report = evaluator.run_suite(
agent=meu_agente_agno,
testset=testset,
)
print("Resumo:", report.metrics_summary)
# Exemplo de saída:
# {
# 'avg_faithfulness': 0.94,
# 'avg_answer_relevance': 0.89,
# 'avg_context_precision': 0.92,
# 'avg_context_recall': 0.85
# }
4. Monitoramento Contínuo em Produção (Tool Hook em Background)
from agno.agent import Agent
from agno_metrics_rag import RagMetricsHook, HookMode
metrics_hook = RagMetricsHook(
db=metrics_db,
judge_model=judge_model,
mode=HookMode.ASYNC_BACKGROUND, # Executa em background thread, zero impacto na latência
target_tool_names=["search_knowledge"],
)
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
knowledge=knowledge,
search_knowledge=True,
tool_hooks=[metrics_hook],
)
agent.print_response("Quais as receitas disponíveis?")
🛠️ Publicação no PyPI
Para buildar e publicar a biblioteca:
pip install build twine
python -m build
twine upload dist/*
📄 Licença
Distribuído sob a licença MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
agno_metrics_rag-0.1.0.tar.gz
(100.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agno_metrics_rag-0.1.0.tar.gz.
File metadata
- Download URL: agno_metrics_rag-0.1.0.tar.gz
- Upload date:
- Size: 100.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1e217d9d5dd364c71d3b4b8c04d72f98a996d4b90ce28ae39d3f53d8ef8c226
|
|
| MD5 |
0b37450519599e2e4ddf779c94113e34
|
|
| BLAKE2b-256 |
bcac6add10ae5c2d2dd1df5a02237ba72715eeca01a72501fb20dc5f3aa0569d
|
File details
Details for the file agno_metrics_rag-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agno_metrics_rag-0.1.0-py3-none-any.whl
- Upload date:
- Size: 32.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f767eb9f03295dff9cf7d647ab9163a76b5689e611fa4ae0358efba749e0789
|
|
| MD5 |
5d38061a1a65c99bee14fc03693dc5d1
|
|
| BLAKE2b-256 |
4c8f154fc6441560c96174a7d2db4188602361a418c92c76e974754bb494622e
|