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 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

Language Model Used
Hindi sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
Marathi l3cube-pune/marathi-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 pytest
pytest tests/ -v
# 21 passed ✅

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! Especially:

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

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.0.tar.gz (12.6 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.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bharatrag-0.1.0.tar.gz
  • Upload date:
  • Size: 12.6 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.0.tar.gz
Algorithm Hash digest
SHA256 8e468214779e88dcd44d483f56882de42674ee424a77cfc258b83baa3aa5c564
MD5 7afcc82eebf19e62236f4c396c637ca7
BLAKE2b-256 07a2dee173af1fb4e39b86a85cb213cd1ed9e6e6e1cbe12ca6c54370a5bb4330

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bharatrag-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e184f027319895245cf51ddd8a86633426eeeb6aa359255a48d2977a96bddb8
MD5 0dffb159d228ec6bc637b0d043fc554c
BLAKE2b-256 cf9afa5c07a551b8a9c8794b3ed2035c128bcd13b779583605fbe1806b9b26bb

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