Self-contained CLI to measure an LLM against the Raidex Responsible-AI index
Project description
Raidex
Measure any LLM's Responsible-AI profile in your own environment: your own fine-tuned or self-hosted model, or a frontier model. raidex.ai
raidex scores a model across open Responsible-AI benchmarks (safety, fairness, factuality, security, machine ethics, robustness, privacy, and sycophancy) and reports a composite RAI Score plus per-dimension scores. The same measurement core also powers a public leaderboard of frontier models.
Quickstart
pip install raidex # Python 3.10 to 3.13
Measure your own or self-hosted model against any OpenAI-compatible endpoint (vLLM, Ollama, TGI, and so on):
raidex eval --model http://localhost:8000/v1 --served-name my-model --tier A+B
Measure a frontier model with any litellm model string. The provider key is read from the matching env var, for example OPENAI_API_KEY:
export OPENAI_API_KEY=sk-... # plus ANTHROPIC_API_KEY for the judges
raidex eval --model openai/gpt-5.2 --tier A+B
No account, no queue, no upload, and no dependency on Raidex servers. raidex prints per-dimension and composite RAI scores and writes a self-describing JSON that never leaves your machine.
What you get
=== Raidex RAI Score ===
RAI Score : 63.5
Coverage : 9/9 🟣
Dimensions:
safety 71.2
fairness_bias 35.3
factuality 52.0
...
- Board-comparable. Identical in scale to the public leaderboard (same core, same benchmarks, same normalization), so you can place your model against the frontier.
- A self-describing result JSON. The model spec, per-benchmark pinned dataset versions, judge, sampling settings, and a timestamp, so a score is reproducible and traceable. It is written locally and nothing is uploaded.
- Honest coverage. The composite is the mean of the constituents you ran, reported as N/9. Benchmarks you skip, or that need a judge you did not configure, simply lower coverage; they never fake a number.
CLI reference
raidex eval --model ... # required: a litellm model id OR a local endpoint URL
--served-name my-model # the model name served by a local endpoint URL
--tier A | B | A+B # A = 7 core benchmarks, B = +robustness/privacy (default A)
--benchmarks bbq,strongreject # explicit subset (overrides --tier)
--limit 150 # sample the big benchmarks (small ones always run full)
--judge anthropic/claude-opus-4-8 # LLM judge for SimpleQA / XSTest / StrongREJECT
--dry-run # print a cost estimate and exit
--offline # use only cached data; never touch the network
--output results.json # where to write the result (default: <model>__.json)
raidex fetch-data # pre-download and cache all benchmark data (for offline / air-gapped use)
Judges. SimpleQA, XSTest, and StrongREJECT are graded by an LLM judge. Configure one with --judge (or RAIDEX_JUDGE_MODEL). If none is available, those three are skipped with a printed reason and honestly reduced coverage, not a failure.
Offline and air-gapped. Run raidex fetch-data on a networked machine to populate a local cache (pinned dataset versions), copy that cache across, and run with --offline for zero network access.
The benchmarks
raidex runs 9 benchmarks across 8 dimensions. The RAI Score is the mean of normalized constituent scores (0 to 100); coverage is reported as N/9.
| Tier | Benchmark | Dimension | Pipeline |
|---|---|---|---|
| A | BBQ | Fairness & Bias | lm-eval (generative) |
| A | WMDP | Security | lm-eval (generative) |
| A | SimpleQA | Factuality | litellm + judge |
| A | StrongREJECT | Security (refusal) | litellm + rubric judge |
| A | ETHICS | Machine Ethics | lm-eval (generative) |
| A | XSTest | Safety (over-refusal) | litellm + judge |
| A | Sycophancy | Sycophancy | litellm (judge-free flip-rate) |
| B | AdvGLUE | Robustness | litellm (exact-match) |
| B | ConfAIde | Privacy | litellm (correlation) |
See space/METHODOLOGY.md for the index design, generative-task creation, judging, sampling, normalization, and disclosures.
The public leaderboard
There is also a public board of frontier models, produced by the same core:
- Live leaderboard: https://huggingface.co/spaces/cloudronin/raidex-space
- Results dataset: https://huggingface.co/datasets/cloudronin/raidex-results
- Eval queue: https://huggingface.co/datasets/cloudronin/raidex-requests
Running the board, the Space, or reproducing the published numbers is a maintainer task. See docs/leaderboard.md.
Repository layout
raidex/: the pip-installableraidexCLI (raidex/cli.py) over the pureraidex.coreeval-and-score library. The core is the shared foundation; the CLI and the backend service are two thin frontends over it, which is why a local score matches the board.space/: the Hugging Face Space (Gradio leaderboard app). Seedocs/leaderboard.md.backend/: the eval service that produces the public board. Seedocs/leaderboard.md.
License
MIT. See LICENSE.
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
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 raidex-0.1.4.tar.gz.
File metadata
- Download URL: raidex-0.1.4.tar.gz
- Upload date:
- Size: 42.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9634e56e7c75f32c10b825ace6a322d6f7e5edb57d0b57885429509dfc19a5e
|
|
| MD5 |
f231deb2f622af3857b80873657f24a2
|
|
| BLAKE2b-256 |
eedf9181a81319e552a3e155aabb12b200b5021e16cf9376f30d00d0028c1881
|
Provenance
The following attestation bundles were made for raidex-0.1.4.tar.gz:
Publisher:
publish-pypi.yml on cloudronin/raidex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
raidex-0.1.4.tar.gz -
Subject digest:
b9634e56e7c75f32c10b825ace6a322d6f7e5edb57d0b57885429509dfc19a5e - Sigstore transparency entry: 2188121216
- Sigstore integration time:
-
Permalink:
cloudronin/raidex@6ef2c41dd841c065a1637a2efbc8ea316dfe4780 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/cloudronin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6ef2c41dd841c065a1637a2efbc8ea316dfe4780 -
Trigger Event:
push
-
Statement type:
File details
Details for the file raidex-0.1.4-py3-none-any.whl.
File metadata
- Download URL: raidex-0.1.4-py3-none-any.whl
- Upload date:
- Size: 55.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 |
95faaea31c44729cfee2769f0197aa203f097f1a568892dda24b011716d4a0c0
|
|
| MD5 |
40adbea5f0e4a30445f9a20fcc917617
|
|
| BLAKE2b-256 |
a2e65d842d8edf964dc32322a009af80d876d30e9b2644a33e7dde06084626f4
|
Provenance
The following attestation bundles were made for raidex-0.1.4-py3-none-any.whl:
Publisher:
publish-pypi.yml on cloudronin/raidex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
raidex-0.1.4-py3-none-any.whl -
Subject digest:
95faaea31c44729cfee2769f0197aa203f097f1a568892dda24b011716d4a0c0 - Sigstore transparency entry: 2188121229
- Sigstore integration time:
-
Permalink:
cloudronin/raidex@6ef2c41dd841c065a1637a2efbc8ea316dfe4780 -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/cloudronin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@6ef2c41dd841c065a1637a2efbc8ea316dfe4780 -
Trigger Event:
push
-
Statement type: