Skip to main content

Open evaluation and benchmarking framework for AI systems

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


Download files

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

Source Distribution

openvals-0.0.2.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

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

openvals-0.0.2-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file openvals-0.0.2.tar.gz.

File metadata

  • Download URL: openvals-0.0.2.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openvals-0.0.2.tar.gz
Algorithm Hash digest
SHA256 a64327d346b42f4d4e501b125d3733cd8b728eb8e66f08a0f261770c953cce5c
MD5 507d992eebd1677fdfee88d73ca604c2
BLAKE2b-256 95261148fbc0d2cfc9b03f1bae8c99b9d0099afca8e5594018d8f85e205595b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for openvals-0.0.2.tar.gz:

Publisher: publish.yml on vishwanathakuthota/openvals

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openvals-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: openvals-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openvals-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5f91adaeb19b75421c8674bad9431e9c485608a9bdb775c44d1a6dd54dcd68f3
MD5 f2638a30cca3e5f7890851187df5cb84
BLAKE2b-256 7c263031b75601a0bc5ead10d6854eb40829f5f50ef1b803015b5d9974dc39ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for openvals-0.0.2-py3-none-any.whl:

Publisher: publish.yml on vishwanathakuthota/openvals

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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