Pular para o conteúdo
Skillpedia
Agentes48 mil · #3953

rag-observability-evals

Ajuda seu agente a verificar a qualidade das informações que ele usa e gera. Ele garante que as respostas sejam precisas e não inventadas, melhorando a confiabilidade.

O que ela faz

Esta ferramenta ajuda a verificar se os sistemas de inteligência artificial que respondem perguntas com base em documentos (chamados RAG) estão funcionando bem. Ela verifica a qualidade das informações encontradas e se as respostas são confiáveis e não inventadas.

Quando usar

  • ✓Quando você quer garantir que as respostas da IA são baseadas nos documentos corretos.
  • ✓Para verificar se a IA está 'inventando' informações que não estão nos documentos.
  • ✓Para medir o quão rápido e eficiente o sistema de IA está respondendo.

Exemplo do que pedir para a IA

“Verifique a qualidade das respostas do meu sistema de IA sobre documentos de RH.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/rag-observability-evals/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/rag-observability-evals/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta compara as respostas da IA com os documentos que ela usou para encontrar a informação. Ela usa métricas para ver se a resposta é fiel, relevante e se todas as informações importantes foram encontradas.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill rag-observability-evals

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/rag-observability-evals/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Observabilidade e Avaliações de RAG

Execute a geração aumentada por recuperação (RAG) como um sistema de produção mensurável, não como uma caixa preta.

Pré-requisitos

  • Pipeline RAG com estágios de recuperação e geração instrumentados
  • Python 3.10+ com bibliotecas de avaliação (ragas, langchain, openai)
  • Endpoint Prometheus para exportação de métricas personalizadas
  • Conjunto de dados de benchmark com triplas de pergunta/resposta/fonte de padrão ouro
  • SDK OpenTelemetry integrado ao serviço RAG

O que Medir

Qualidade da Recuperação

  • Recall@k e MRR para os k melhores trechos
  • Cobertura de citação e atualidade da fonte
  • Deriva de embedding e obsolescência do índice

Qualidade da Geração

  • Pontuação de fundamentação (resposta apoiada pelo contexto recuperado)
  • Taxa de alucinação por rota/caso de uso
  • Aderência à instrução e validade do formato

Confiabilidade e Custo

  • Latência p50/p95 dividida por recuperação vs. geração
  • Uso de tokens por estágio
  • Taxa de acerto do cache e custo por resposta bem-sucedida

Script de Avaliação RAGAS

# rag_eval.py
"""Evaluate RAG pipeline quality using RAGAS metrics."""
from ragas import evaluate
from ragas.metrics import (
    faithfulness,
    answer_relevancy,
    context_precision,
    context_recall,
    context_entity_recall,
    answer_similarity,
)
from datasets import Dataset
import json
import sys

def load_eval_dataset(path: str) -> Dataset:
    """Load evaluation dataset with required columns."""
    with open(path) as f:
        data = json.load(f)

    return Dataset.from_dict({
        "question": [d["question"] for d in data],
        "answer": [d["generated_answer"] for d in data],
        "contexts": [d["retrieved_contexts"] for d in data],
        "ground_truth": [d["reference_answer"] for d in data],
    })

def run_evaluation(dataset_path: str, output_path: str):
    """Run full RAGAS evaluation suite."""
    dataset = load_eval_dataset(dataset_path)

    metrics = [
        faithfulness,
        answer_relevancy,
        context_precision,
        context_recall,
        context_entity_recall,
        answer_similarity,
    ]

    results = evaluate(dataset, metrics=metrics)

    # Print summary
    print("=== RAG Evaluation Results ===")
    for metric_name, score in results.items():
        print(f"  {metric_name}: {score:.4f}")

    # Save detailed results
    with open(output_path, "w") as f:
        json.dump({
            "summary": {k: float(v) for k, v in results.items()},
            "dataset_size": len(dataset),
        }, f, indent=2)

    return results

if __name__ == "__main__":
    run_evaluation(sys.argv[1], sys.argv[2])

Pontuação de Fundamentação

# groundedness.py
"""Pontua se as respostas geradas são fundamentadas no contexto recuperado."""
from openai import OpenAI
import json
from typing import List

client = OpenAI()

GROUNDEDNESS_PROMPT = """Você está avaliando se uma resposta de IA é totalmente fundamentada
nos documentos de contexto fornecidos. Pontue cada afirmação na resposta.

Documentos de contexto:
{contexts}

Resposta a ser avaliada:
{answer}

Para cada afirmação distinta na resposta, determine:
1. APOIADO - a afirmação é diretamente apoiada pelo contexto
2. PARCIALMENTE_APOIADO - a afirmação é parcialmente apoiada
3. NÃO_APOIADO - a afirmação não tem suporte no contexto

Retorne JSON:
{{
  "claims": [
    {{"claim": "...", "verdict": "APOIADO|PARCIALMENTE_APOIADO|NÃO_APOIADO", "evidence": "..."}}
  ],
  "groundedness_score": <float 0-1>,
  "unsupported_claims": ["..."]
}}
"""

def score_groundedness(answer: str, contexts: List[str]) -> dict:
    """Pontua a fundamentação de uma única resposta em relação aos seus contextos."""
    context_text = "\n---\n".join(
        f"[Documento {i+1}]: {c}" for i, c in enumerate(contexts)
    )

    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "user",
            "content": GROUNDEDNESS_PROMPT.format(
                contexts=context_text, answer=answer
            ),
        }],
        response_format={"type": "json_object"},
        temperature=0,
    )

    return json.loads(response.choices[0].message.content)

def batch_groundedness(eval_data: list) -> dict:
    """Pontua a fundamentação para um lote de pares QA."""
    scores = []
    unsupported_count = 0
    total_claims = 0

    for item in eval_data:
        result = score_groundedness(
            item["generated_answer"],
            item["retrieved_contexts"],
        )
        scores.append(result["groundedness_score"])
        unsupported_count += len(result["unsupported_claims"])

…
Perguntas frequentes

O que é RAG?

RAG é uma forma de IA que busca informações em documentos específicos antes de gerar uma resposta. É como um estudante que consulta livros antes de responder a uma pergunta.

Por que é importante verificar a 'qualidade da recuperação'?

Isso garante que o sistema de IA está encontrando os documentos mais relevantes e corretos para responder à sua pergunta. Se ele não encontra os documentos certos, a resposta provavelmente estará errada.

O que significa 'alucinação' da IA?

Alucinação acontece quando a IA inventa informações que não estão presentes nos documentos de origem. Essa ferramenta ajuda a detectar e medir quantas vezes isso ocorre.

Detalhes

Descrição original do autor

Monitor and evaluate RAG systems with retrieval quality metrics, groundedness checks, hallucination detection, and continuous regression testing.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3953
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas