Skip to main content

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


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.5.tar.gz (7.9 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.5-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

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

Hashes for openvals-0.0.5.tar.gz
Algorithm Hash digest
SHA256 eb2137550af07343a0c1be186f5ca76d8d5052e1235e0cb332b137633ab89a51
MD5 282983fadb5c417df9bd583488b678ad
BLAKE2b-256 e4fee1249b6372baa930df4310d095ee5c49215282ef09a192693c697a8bcd45

See more details on using hashes here.

Provenance

The following attestation bundles were made for openvals-0.0.5.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.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

Hashes for openvals-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cdfc70ebcdbf48b40d156616bb694de19437e25b793c43697836c229df6f8829
MD5 727107e69a0f956fee012b72bc327733
BLAKE2b-256 3f3f91cb2e76b1e791255d5339a45b4a1e5b52ef7fb0d3618800277c08868644

See more details on using hashes here.

Provenance

The following attestation bundles were made for openvals-0.0.5-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