Skip to main content

RAG evaluation library for Indian languages (Hindi, Marathi)

Project description

bharatrag

Open-source RAG evaluation library for Indian languages (Hindi, Marathi). pip install bharatrag

BharatRAG 🇮🇳

RAG Evaluation Library for Indian Languages

Python 3.9+ License: MIT CI GitHub

BharatRAG is the first open-source RAG evaluation library built specifically for Indian languages (Hindi and Marathi).

Existing tools like RAGAS are built and tested on English data. BharatRAG fills the gap — giving developers a reliable way to measure RAG quality in Indic languages.


The Problem

RAG (Retrieval Augmented Generation) systems are being deployed across India for:

  • Government scheme chatbots (PM Kisan, Ayushman Bharat)
  • Health information systems in regional languages
  • EdTech platforms for vernacular learners
  • Banking and insurance customer support

But there is no standard way to evaluate whether these systems are actually working correctly in Hindi, Marathi, or other Indian languages.

RAGAS — the most popular RAG evaluation tool — uses English-first embedding models that produce unreliable scores for Indic text.

BharatRAG solves this.


What it measures

BharatRAG computes the RAG Triad in Hindi and Marathi:

Metric Question it answers
Context Relevance Did we retrieve the right documents?
Groundedness Is the answer based on the context, or hallucinated?
Answer Relevance Does the answer actually address the question?

Benchmark Results

BharatRAG evaluated on 20 Hindi + Marathi QA pairs across government schemes, health, and agriculture domains:

Metric Hindi ✅ Correct Hindi ❌ Hallucinated Marathi ✅ Correct Marathi ❌ Hallucinated
Context Relevance 0.4793 0.4793 0.4327 0.4327
Groundedness 0.9167 0.7000 0.9667 0.2000
Answer Relevance 0.6221 0.5417 0.5072 0.2959
Overall 0.6727 0.5737 0.6355 0.3095

BharatRAG correctly scores hallucinated answers lower than correct answers in both languages. Marathi hallucination detection shows a 2x difference in overall score (0.6355 vs 0.3095).


Installation

pip install bharatrag

Quick Start

from bharatrag import evaluate

results = evaluate(
    questions=["पीएम किसान योजना में कितने रुपये मिलते हैं?"],
    contexts=[[
        "पीएम किसान सम्मान निधि योजना के तहत किसानों को",
        "प्रति वर्ष 6000 रुपये तीन किश्तों में मिलते हैं।"
    ]],
    answers=["पीएम किसान योजना में किसानों को 6000 रुपये मिलते हैं।"],
    language="hindi"
)

print(results)
# {
#   'context_relevance': 0.72,
#   'groundedness': 1.0,
#   'answer_relevance': 0.66,
#   'overall': 0.79,
#   'language': 'hindi',
#   'num_questions': 1
# }

Marathi support

results = evaluate(
    questions=["पीएम किसान योजनेत किती रुपये मिळतात?"],
    contexts=[[
        "पीएम किसान सन्मान निधी योजनेंतर्गत शेतकऱ्यांना",
        "दरवर्षी 6000 रुपये तीन हप्त्यांमध्ये मिळतात."
    ]],
    answers=["पीएम किसान योजनेत 6000 रुपये मिळतात."],
    language="marathi"
)

Individual metrics

from bharatrag.metrics.context_relevance import ContextRelevance
from bharatrag.metrics.groundedness import Groundedness
from bharatrag.metrics.answer_relevance import AnswerRelevance

cr = ContextRelevance(language="hindi")
score = cr.score(
    question="भारत की राजधानी क्या है?",
    contexts=["भारत की राजधानी नई दिल्ली है।"]
)
print(score)  # 0.61

Supported Languages

| Hindi | sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 | | Marathi | l3cube-pune/marathi-sentence-bert-nli | | Tamil | l3cube-pune/tamil-sentence-bert-nli | | English | sentence-transformers/all-MiniLM-L6-v2 |

More languages coming soon — Tamil, Bengali, Gujarati.


Benchmark Dataset

BharatRAG ships with a hand-curated benchmark dataset of 20 Hindi + Marathi QA pairs across:

  • Government schemes (PM Kisan, Ayushman Bharat, Jan Dhan, Ujjwala)
  • Health (diabetes, sanitation)
  • Agriculture (wheat sowing, crop insurance)
  • Education (Mid Day Meal, Beti Bachao)

Each example includes a correct answer and a hallucinated answer for evaluation testing.

Dataset location: data/benchmark.json


Project Structure

bharatrag/ ├── bharatrag/ │ ├── init.py # evaluate() function │ ├── embeddings/ │ │ └── indic_embeddings.py # Indic embedding models │ └── metrics/ │ ├── context_relevance.py # Metric 1 │ ├── groundedness.py # Metric 2 │ └── answer_relevance.py # Metric 3 ├── data/ │ └── benchmark.json # 20 Hindi+Marathi QA pairs ├── tests/ │ └── test_metrics.py # 21 pytest tests └── examples/ └── run_benchmark.py # Benchmark runner


Running Tests

pip install -e ".[dev]"
pytest tests/ -v

Tests run automatically on every PR via GitHub Actions.


Why BharatRAG?

Feature RAGAS BharatRAG
English RAG evaluation
Hindi RAG evaluation ❌ Unreliable
Marathi RAG evaluation ❌ Not supported
Indic benchmark dataset
Free, no API key needed

Roadmap

  • Hindi support
  • Marathi support
  • 20-example benchmark dataset
  • Tamil support
  • Bengali support
  • 100-example benchmark dataset
  • LangChain integration
  • LlamaIndex integration
  • HuggingFace Spaces demo

Author

Pradnya Gundu B.E. Artificial Intelligence & Data Science, APCOER Pune


License

MIT License — free to use, modify, and distribute.


Contributing

Contributions welcome! See CONTRIBUTING.md for setup, code style, and what we're looking for.

Especially looking for:

  • New Indian language support
  • More benchmark QA pairs
  • Integration with LangChain/LlamaIndex
  • Test coverage improvements

Open an issue or submit a PR on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bharatrag-0.1.4.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

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

bharatrag-0.1.4-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file bharatrag-0.1.4.tar.gz.

File metadata

  • Download URL: bharatrag-0.1.4.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for bharatrag-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1221343411b91b98462ae304aff9a0d0afe864727dff6799e6f7e129845de9e0
MD5 aae3e51845e22cb22c6aedbde284e14a
BLAKE2b-256 490221e8f3efbd998087ad87f7ee2d6521502129a6413d708b6a54ae43e415a2

See more details on using hashes here.

File details

Details for the file bharatrag-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: bharatrag-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for bharatrag-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 09288c9740d1c5f330914e858755ca2fafeeaf9c3817a0c936254b80c3a811df
MD5 bb177025d574d8240c5c6c76ef095405
BLAKE2b-256 69a035aea69c7773d11d24e9bceae4963634549d3f410ed6a44aa12ab9af6d08

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page