Skip to main content

RAGeval

License: AGPL v3

CI License: AGPL v3

PyPI License: AGPL v3

Drop-in LLMOps observability. Self-hosted. SQLite-default. Persona-aware. Multi-judge consensus.

Version: v0.1.10 | pip install omnismart-rageval

🔗 Live dashboard: https://rageval.ysiddo-ai-projects.app/ · browser dashboard (score a query + view metrics). Also fully scriptable — API: /health, /eval/* via curl/HTTPie. On-demand backend (first request ~30–60 s to wake). Self-hosting: see SELF_HOSTING.md.

The 60-Second Pitch

from rageval import track

@track(model="anthropic/claude-sonnet-4-6", persona="cfo")
async def answer_question(query: str, context_chunks: list[str]) -> str:
    ...

That's it. Open the dashboard at localhost:8003.

What It Measures

Metric Definition
Retrieval relevance Cosine sim between query and retrieved chunks (BGE-large by default)
Groundedness consensus Multi-judge LLM scoring (Claude Haiku 4.5 + Groq LLaMA 3.3 + GPT-5-mini), flags disagreement
Faithfulness Per-sentence max-similarity to any chunk (NLI proxy)
Cost USD per interaction, tracked by model
Latency End-to-end wall-clock

Comparison vs Alternatives

Feature RAGeval Phoenix Langfuse TruLens
Self-hosted
SQLite default
Drop-in decorator partial partial
Persona-aware
Multi-judge consensus
Cost tracking partial
Setup time 60 sec 10 min 15 min 10 min

Quick Start

pip install --index-url https://gateway.ysiddo-ai-projects.app/pypi/simple/ omnismart-rageval     # distribution name; CLI + import remain `rageval`
rageval init                 # creates ~/.rageval/rageval.db
rageval serve --port 8003

Integration

FastAPI

from rageval import track

@app.post("/ask")
@track(model="anthropic/claude-sonnet-4-6", persona="cfo")
async def ask(query: str):
    chunks = await retriever.search(query)
    return await llm.generate(query, chunks=chunks)

LangChain

@track(model="groq/llama-3.3-70b-versatile")
def chain_invoke(query: str, context_chunks: list[str]):
    return chain.invoke({"query": query, "context": context_chunks})

Endpoints

Method Path Purpose
GET /health Liveness
POST /eval/log Score + store
POST /eval/score Score only (no storage)
GET /eval/metrics?days=7 Aggregate dashboard data
GET /eval/queries Query log (filter by needs_review)
GET /eval/cost-report?days=30 Cost breakdown by day + model
GET /eval/alerts Recent flagged queries
POST /eval/retrieval-bench A/B compare retrieval strategies
POST /eval/embedding-comparison Compare embedding models

Tests

38 test functions across smoke, API, evaluator, decorator, DSPy integration, store, and e2e:

pytest tests/ -q

License

AGPL-3.0

⚖️ License & Enterprise Use (Dual-License)

This project is open-source under the AGPL-3.0 License. It is completely free for researchers, students, and open-source hobbyists.

Commercial Use: The AGPLv3 license requires that any proprietary network service (SaaS, internal corporate tools) that uses or modifies this code must also open-source its entire backend.

If you wish to use this framework in a closed-source commercial environment, or require Enterprise features (SSO, Active Directory, Custom VPC Deployment, Strict RBAC), you must obtain a Commercial License. Please reach out to discuss commercial licensing and integration consulting.

📡 Anonymous Telemetry

This project collects anonymous, GDPR-compliant startup pings to help the author understand usage volume and prioritize development.

  • What is collected: A startup event timestamp and anonymized deployment origin. No API keys, no user prompts, and no sensitive application data is ever collected.
  • How to disable: We respect your privacy and development environment. To opt-out, simply set TELEMETRY_OPT_OUT=true in your .env file.

Licensing

This project is licensed under the AGPL-3.0 License.

Commercial Use: If you wish to use this software commercially without releasing your own source code, please see COMMERCIAL.md to obtain a commercial license.

Telemetry: See TELEMETRY.md for our privacy-first data practices.

Download files

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

Source Distribution

omnismart_rageval-0.1.12.tar.gz (33.5 kB view details)

Uploaded Source

Built Distribution

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

omnismart_rageval-0.1.12-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

Details for the file omnismart_rageval-0.1.12.tar.gz.

File metadata

  • Download URL: omnismart_rageval-0.1.12.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for omnismart_rageval-0.1.12.tar.gz
Algorithm Hash digest
SHA256 15411f35e1ccc885af9dd1a245c475732db7c9bb6ca96b54239dcd9f1c2818ce
MD5 56cc2eeac9b5a6f61da2cb70adfd9720
BLAKE2b-256 920095fabae092785f3271dc8401d1e534545b16f658a865efb38b14b7008c98

See more details on using hashes here.

File details

Details for the file omnismart_rageval-0.1.12-py3-none-any.whl.

File metadata

File hashes

Hashes for omnismart_rageval-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 949ba13e4cc2664aa0064124613282e938f5aaf770e5c69e4d7fd98671f1da44
MD5 ac4f65892bafd537da6e0b3b545ccabe
BLAKE2b-256 902d5de43127c815ea996f478d8aed6289e7bd96369993af770830572b23064e

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 Sentry Error logging StatusPage Status page