amazon-science

RAGChecker: Diagnose Retrieval-Augmented Generation Systems

RAGChecker evaluates RAG pipelines with overall, retriever, and generator metrics. It is for developers and researchers who need to identify whether retrieval or generation is driving quality problems and guide targeted improvements.

PythonApache-2.0AIRAGEvaluation
Stars
1.1k
Forks
92
Stars, last 8 days
+2

Our take

Health score

26/100

How it is scored
Activity
20
Community
41
Issues
21
Pull requests
21

+2 stars in the last 8 days

Overview

RAGChecker is a Python framework for evaluating and diagnosing Retrieval-Augmented Generation (RAG) systems. It measures the complete pipeline and separates retrieval issues from generation issues, helping teams understand more than a single overall score can show.

Evaluation uses claim-level entailment checks against a ground-truth answer and retrieved context. It is most useful when you have RAG outputs to inspect and want evidence to guide improvements to a retriever, generator, or both.

Key Features

  • Reports overall precision, recall, and F1 metrics for RAG results.
  • Provides retriever diagnostics, including claim recall and context precision.
  • Provides generator diagnostics, including faithfulness, hallucination, and context utilization.
  • Uses claim-level entailment for fine-grained checking.
  • Runs from either a command-line interface or Python code.
  • Supports evaluation with configurable extractor and checker models.
  • Includes a benchmark and meta-evaluation data, with usage guidance in the repository.
  • Integrates with LlamaIndex through its evaluation tooling.

Use Cases

  • RAG application developers can determine whether weak answers stem from missed evidence or generation behavior.
  • ML engineers can compare pipeline changes using consistent overall and component-level metrics.
  • Researchers can evaluate RAG systems at claim level and study how automated results relate to human judgments.
  • Teams tuning retrieval can use claim recall and context precision to investigate coverage and irrelevant context.

Getting Started

Install the package and its required spaCy English model:

pip install ragchecker
python -m spacy download en_core_web_sm

Provide query results, generated responses, retrieved context, and a ground-truth answer, then run the CLI or use the Python API. See the README for input formats, model configuration, and full examples.

Alternatives

  • Ragas: Ragas evaluates and optimizes LLM applications with a broad set of metrics and test generation, while RAGChecker focuses on diagnosing retrieval versus generation quality.
ProjectLanguageLicenseStarsStatus
RAGCheckerPythonApache-2.01.1kNot checked yet
ragasPythonApache-2.015.9kQuiet

Considerations

  • Evaluation requires a ground-truth answer for each query. Results also depend on the quality of the supplied responses and retrieved context.
  • Claim extraction and checking use models, so you need to configure compatible model access. The README demonstrates AWS Bedrock models, but that example is not a universal requirement.
  • The project reports diagnostic metrics rather than automatically improving a RAG system. Interpreting results and making system changes remain the user's responsibility.
  • The repository describes a benchmark dataset and human-annotated meta-evaluation data. Consult their documentation to understand their availability and intended use.

Found this useful?

Share it with someone who would like RAGChecker.

Comparisons