EvalForge
Automated LLM evaluation pipeline generator.
Built by SubstrAI — Open-source GenAI frameworks for serverless infrastructure.
The Problem
Every team deploying LLMs builds evaluation pipelines from scratch. RAGAS and DeepEval are libraries — they don't generate infrastructure, schedule runs, detect drift, or route to human reviewers.
The Solution
Describe your use case → EvalForge generates the complete evaluation pipeline:
# evalforge.yaml
use_case:
type: rag
description: "Customer support chatbot"
model:
provider: bedrock
model_id: anthropic.claude-3-haiku-20240307-v1:0
evaluation:
metrics: auto # auto-selects: faithfulness, relevancy, precision, recall, toxicity
evalforge run
# Faithfulness: 0.91 ✓ (threshold: 0.85)
# Answer Relevancy: 0.87 ✓ (threshold: 0.80)
# Context Precision: 0.78 ✓ (threshold: 0.75)
# Toxicity: 0.02 ✓ (threshold: 0.05)
# Overall: PASS (4/4 metrics passing)
Features
- Use-case-driven metric selection — describe your app, get optimal metrics
- 6 use case types — RAG, summarization, classification, generation, chat, code
- 16+ built-in metrics — faithfulness, ROUGE, BLEU, toxicity, injection resistance, F1
- Synthetic test data generation — adversarial, edge cases, domain-specific
- Drift detection — alerts when quality degrades over time
- Human-in-the-loop — route uncertain evaluations to reviewers
- Scheduled pipelines — daily/weekly automated evaluation runs
- Benchmark registry — compare against published benchmarks
- One-command deploy — Step Functions + Lambda infrastructure
Installation
pip install substrai-evalforge
Quick Start
# Scaffold project
evalforge init my-eval --use-case rag
# Run evaluation
cd my-eval
evalforge run
# List available metrics
evalforge metrics --use-case rag
Python SDK
from evalforge import EvalPipeline
# Quick start for any use case
pipeline = EvalPipeline.for_use_case("rag")
results = pipeline.run()
print(results.summary())
print(f"All passing: {results.all_passing}")
Supported Use Cases & Auto-Selected Metrics
| Use Case | Auto-Selected Metrics |
|---|---|
| rag | faithfulness, answer_relevancy, context_precision, context_recall, toxicity |
| summarization | rouge_l, bleu, coherence, conciseness, fluency |
| classification | accuracy, precision, recall, f1_score |
| generation | fluency, coherence, toxicity, bias_detection |
| chat | coherence, toxicity, injection_resistance, fluency |
| code | accuracy, coherence |
License
MIT — see LICENSE
Author
Gaurav Kumar Sinha — Founder, SubstrAI
- Email: gaurav@substrai.dev
- GitHub: @substrai
Release files for substrai-evalforge 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| substrai_evalforge-1.6.0.tar.gz | 102.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| substrai_evalforge-1.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 196.7 kB
Release files / substrai_evalforge-1.6.0.tar.gz
| Download URL | substrai_evalforge-1.6.0.tar.gz |
|---|---|
| Size | 102.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3a3e98eb04669869be95fd709888f319c092efe05926614190db881a437157f
|
|
BLAKE2b-256 checksum How to use checksums |
6ab1bdafb2ae0524dadc3a638f6c89da1d78783835e3454cb8e491bf94efda47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / substrai_evalforge-1.6.0-py3-none-any.whl
| Download URL | substrai_evalforge-1.6.0-py3-none-any.whl |
|---|---|
| Size | 94.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3f8d4da7de0b8a175dd871e4de099712570126be37091673e3a62b63f3ec2908
|
|
BLAKE2b-256 checksum How to use checksums |
232e8dbd104911bd320a4cf7bbb8afd70242685bb6d6e1e16c96b51cde0bddad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|