Skip to main content

agno-metrics-rag

PyPI version License: MIT

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 seu Knowledge / PgVector usando 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.
  • Tool Hook de Runtime (Síncrono ou em Background): Intercepta chamadas de busca (search_knowledge ou 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.3.tar.gz (118.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agno_metrics_rag-0.1.3-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file agno_metrics_rag-0.1.3.tar.gz.

File metadata

  • Download URL: agno_metrics_rag-0.1.3.tar.gz
  • Upload date:
  • Size: 118.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for agno_metrics_rag-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5fa1112aeb0df902759bd487e465c46cbd6c7b19285558186717b6e87b8a41ad
MD5 3930d441c3d86d4a70bd41a5d8504b77
BLAKE2b-256 abb14964f7ed66ecbb796824ed631b5e3cb0e186ad886d9f1e570d52e526926f

See more details on using hashes here.

File details

Details for the file agno_metrics_rag-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for agno_metrics_rag-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3e4bbfcda6ab5adfc7dc03ca4f8ffc5290ebc585c71323ae605addef59ada992
MD5 cf0c2d176b697562b2467ddf432cf1be
BLAKE2b-256 16ac49caa26a97a2caa37586e2aba4c5d4a8cfc17ff5f4f050598fb0b8fddc6c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page