AI evaluation, validation, benchmarking, and security framework
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?
Most AI evaluation tools stop at metrics.
OpenVals goes further:
- ✅ Aligns evaluation with business objectives
- ✅ Enables multi-model benchmarking
- ✅ Quantifies trust, risk, and performance
- ✅ Supports deployment decision-making
🔷 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:
[ \text{Trust Score} = \sum_{i=1}^{n} w_i \cdot m_i ]
- 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
bash pip install -e .
⚡ Quick Start
1. Run Evaluation
bash openvals run --dataset examples/sample_eval.json
2. Run Multi-Model Benchmark
bash openvals benchmark --dataset examples/sample_eval.json
🧪 Example Dataset
json [ { "id": "1", "input": "hello", "expected_output": "olleh" } ]
🧠 Python API Usage
python 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
python 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.
⚡ 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.0.5.tar.gz.
File metadata
- Download URL: openvals-0.0.5.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb2137550af07343a0c1be186f5ca76d8d5052e1235e0cb332b137633ab89a51
|
|
| MD5 |
282983fadb5c417df9bd583488b678ad
|
|
| BLAKE2b-256 |
e4fee1249b6372baa930df4310d095ee5c49215282ef09a192693c697a8bcd45
|
Provenance
The following attestation bundles were made for openvals-0.0.5.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.0.5.tar.gz -
Subject digest:
eb2137550af07343a0c1be186f5ca76d8d5052e1235e0cb332b137633ab89a51 - Sigstore transparency entry: 1420100588
- Sigstore integration time:
-
Permalink:
vishwanathakuthota/openvals@7a1eefb478a6192363947f52a8e9432f9039d548 -
Branch / Tag:
refs/tags/v0.0.5 - Owner: https://github.com/vishwanathakuthota
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7a1eefb478a6192363947f52a8e9432f9039d548 -
Trigger Event:
push
-
Statement type:
File details
Details for the file openvals-0.0.5-py3-none-any.whl.
File metadata
- Download URL: openvals-0.0.5-py3-none-any.whl
- Upload date:
- Size: 8.5 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 |
cdfc70ebcdbf48b40d156616bb694de19437e25b793c43697836c229df6f8829
|
|
| MD5 |
727107e69a0f956fee012b72bc327733
|
|
| BLAKE2b-256 |
3f3f91cb2e76b1e791255d5339a45b4a1e5b52ef7fb0d3618800277c08868644
|
Provenance
The following attestation bundles were made for openvals-0.0.5-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.0.5-py3-none-any.whl -
Subject digest:
cdfc70ebcdbf48b40d156616bb694de19437e25b793c43697836c229df6f8829 - Sigstore transparency entry: 1420100694
- Sigstore integration time:
-
Permalink:
vishwanathakuthota/openvals@7a1eefb478a6192363947f52a8e9432f9039d548 -
Branch / Tag:
refs/tags/v0.0.5 - Owner: https://github.com/vishwanathakuthota
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7a1eefb478a6192363947f52a8e9432f9039d548 -
Trigger Event:
push
-
Statement type: