Compare LLM configurations on a defined set of test cases
Compare model responses against a fixed benchmark and explicit acceptance rules. Results apply to these test cases, not a universal model ranking; no winner is selected automatically. Evaluation remains with the Python program.
pip install llm-eval · python -m llm_evalInterface preview
This mock-up shows what a browser interface for the tools could look like. It is not yet connected to the Python tools and does not run their calculations. To use the tools, download and run the code from the respective GitHub repository: github.com/dr-opoku/llm-eval
The code is available under a non-commercial license. Commercial use requires a separate license.
Benchmark
Task, policy and test cases (schema_version 1.0; 1–500 cases; at least one boundaries case expecting reject).
benchmark_sha256 (canonical JSON as in llm_eval.contracts.fingerprint): · Edits change the fingerprint; existing runs will no longer match.
Benchmark details
policy – sample acceptance rules
Response contract
decision: accept | review | rejectfields.supplier: nonempty string or nullfields.units: integer 1–1,000,000 or nullfields.unit_price_eur: number 0–1,000,000 or nullevidence_ids: unique, nonempty stringsreason: nonempty string- Accepted = strict_json ∧ schema_valid ∧ fields_match ∧ decision_match ∧ evidence_match. The reason text is not evaluated.
cases (0)
llm_eval/fixtures/benchmark.json or add test cases.Run
Supplied responses per configuration (1–20 configurations, 1–20 attempts per case, maximum 20 MB).
run_file – run JSON
schema_version 1.0 · provenance.kind synthetic | measured | imported
Command
demo · evaluate · run (live collection through local Ollama).
llm-eval evaluate run.json --format json --output report.json
| exit | meaning |
|---|---|
| 0 | Report generated or run collected (collection ≠ acceptable responses) |
| 1 | --require-candidate and no configuration meets the rules |
| 2 | Error (ValueError, OSError, UnicodeError, RecursionError) |
Report
schema_version 1.0 · deployment_readiness always not_established
llm-eval evaluate run.json --format json --output report.json here.