AI evaluation, validation, benchmarking, security Recommendation Engine
Project description
OpenVals
OpenVals is an open evaluation and benchmarking framework for LLMs, SLMs, and AI systems, designed to help organizations measure, compare, and trust AI models before deployment.
> Evaluate. Benchmark. Trust. Deploy with Confidence.
🚀 Why OpenVals?
AI models are powerful—but without proper validation, they are unpredictable, insecure, and hard to trust. Most AI evaluation tools stop at metrics.
OpenVals exists to solve that.
It provides a structured way to:
- ✅ Aligns evaluation with business objectives
- ✅ Supports deployment decision-making
- ✅ Quantifies trust, risk, and performance
- ✅ Evaluate model performance
- ✅ Benchmark multiple models
- ✅ Normalize and compare results
- ✅ Introduce trust before deployment
This is especially critical for:
- ✅ LLMs and generative AI
- ✅ Enterprise AI systems
- ✅ Regulated industries
- ✅ Security-sensitive environments
Core Capabilities
1. Model Evaluation
Evaluate model outputs against structured datasets using:
- Accuracy
- Semantic similarity
- Latency
2. Multi-Model Benchmarking
Compare multiple models under the same conditions:
- Side-by-side evaluation
- Normalized scoring
- Model ranking
- Performance insights
3. Scoring Engine
Weighted scoring aligned to business priorities:
Trust Score = Σ (wᵢ × mᵢ)
-
Customize weights per use case
-
Balance accuracy, cost, and latency
4. Extensible Architecture
- Plug-and-play model adapters
- Custom metrics support
- Scalable evaluation pipelines
Installation
pip install openvals
⚡ Quick Start
1. Run Evaluation
openvals run --dataset examples/sample_eval.json
2. Run Multi-Model Benchmark
openvals benchmark --dataset examples/sample_eval.json
🧪 Example Dataset
json [ { "id": "1", "input": "hello", "expected_output": "olleh" } ]
API Usage
from openvals.core.evaluator import Evaluator
from openvals.models.dummy_model import DummyModel
from openvals.datasets.loader import load_dataset
dataset = load_dataset("examples/sample_eval.json")
model = DummyModel()
evaluator = Evaluator(model, dataset)
result = evaluator.run()
print(result)
Multi-Model Benchmarking Example
from openvals.models.dummy_model import DummyModel
from openvals.benchmarking.benchmark import BenchmarkRunner
from openvals.benchmarking.normalization import normalize_scores
from openvals.benchmarking.ranking import rank_models
models = {
"model_a": DummyModel(),
"model_b": DummyModel()
}
runner = BenchmarkRunner(models, dataset)
results = runner.run()
normalized = normalize_scores(results)
ranking = rank_models(normalized, {
"accuracy": 0.5,
"semantic": 0.3,
"latency": 0.2
})
print(ranking)
🏗️ Project Structure
openvals/
│
├── core/ # Evaluation engine
├── models/ # Model adapters
├── datasets/ # Dataset loading & schema
├── metrics/ # Evaluation metrics
├── benchmarking/ # Multi-model benchmarking layer
├── scoring/ # Scoring logic
├── safety/ # Risk & safety checks (WIP)
├── reporting/ # Output & reports (WIP)
├── cli.py # Command-line interface
Roadmap
v0.3
- OpenAI / Ollama / HuggingFace adapters
- Config-driven benchmarking (config.yaml)
- Parallel execution
v0.4
- Safety layer (prompt injection, hallucination)
- Cost tracking
- Advanced reporting
v1.0
- Trust Score engine
- Industry-specific benchmarks
- Certification layer
Vision
OpenVals is evolving into:
> A Trust Layer for AI Systems
Where organizations can answer:
- Which model should be deployed?
- Is it safe?
- Is it aligned with business goals?
- Can it be trusted in production?
Contributing
Contributions are welcome.
- Fork the repo
- Create a feature branch
- Submit a pull request
License
MIT License
Backed by
Developed as part of DrPinnacle’s AI Trust & Validation Initiative, focused on building secure, scalable, and trustworthy AI systems.
openvalidations.com
⚡ Final Thought
AI models are easy to build.
Trusting them is the hard part.
OpenVals exists to solve that.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openvals-0.1.0.tar.gz.
File metadata
- Download URL: openvals-0.1.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44f245bd10ef583de877236770135d0a3be2ef58dd02248fd043eb05f7caeb75
|
|
| MD5 |
1e3e06cc169dee18169de209178e1502
|
|
| BLAKE2b-256 |
ee90c205e7f73d45bbfa73d539bb9c0b8aa9cb681697913d6bfdc7c6276bba93
|
Provenance
The following attestation bundles were made for openvals-0.1.0.tar.gz:
Publisher:
publish.yml on vishwanathakuthota/openvals
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openvals-0.1.0.tar.gz -
Subject digest:
44f245bd10ef583de877236770135d0a3be2ef58dd02248fd043eb05f7caeb75 - Sigstore transparency entry: 1432439608
- Sigstore integration time:
-
Permalink:
vishwanathakuthota/openvals@2761c3c3c9635fa26638f1779de918788d1a5d3c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vishwanathakuthota
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2761c3c3c9635fa26638f1779de918788d1a5d3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file openvals-0.1.0-py3-none-any.whl.
File metadata
- Download URL: openvals-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e84518d2a56fea74371e85c835160a23cf68573d55e6de846903ca531908398e
|
|
| MD5 |
aaa81dd6959199da5e9b98a146aa072c
|
|
| BLAKE2b-256 |
d414138c3c6b8251f5158cb057e22d466321d60e12cf688286e5afd1c0ea03f2
|
Provenance
The following attestation bundles were made for openvals-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on vishwanathakuthota/openvals
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openvals-0.1.0-py3-none-any.whl -
Subject digest:
e84518d2a56fea74371e85c835160a23cf68573d55e6de846903ca531908398e - Sigstore transparency entry: 1432439699
- Sigstore integration time:
-
Permalink:
vishwanathakuthota/openvals@2761c3c3c9635fa26638f1779de918788d1a5d3c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vishwanathakuthota
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2761c3c3c9635fa26638f1779de918788d1a5d3c -
Trigger Event:
push
-
Statement type: