openauditor

Reviews decisions.
Returns a probability, not a paragraph.

A small open model that answers typed questions about any JSON state in tens of milliseconds. No generated text, no output tokens, no JSON to parse. Train it on your own rows with one command.

Get the code and weights Read the docs

Three question types. That is the whole API.

Choice

Pick one of N named options. Returns a probability per option.

Score

Place on an ordinal rubric. Returns a distribution over levels.

Noul

Yes or no, with a calibrated probability you can threshold.

One call

from openauditor import OpenAuditor, Choice, Noul, Score

auditor = OpenAuditor.from_pretrained("artifacts/model", device="cuda")
result = auditor.review(
    {"message": "Our payment integration is down and customers cannot check out."},
    {
        "team": Choice("Which team should own this?", {"billing": "Payments", "technical": "Outages"}),
        "urgent": Noul("Does this need urgent attention?"),
        "frustration": Score("How frustrated is the customer?", ["calm", "frustrated", "very frustrated"]),
    },
)
# team: {"billing": 0.04, "technical": 0.96}   urgent: 0.91   frustration: {"0": 0.02, "1": 0.31, "2": 0.67}

Also a CLI (openauditor infer), a local HTTP server (POST /v1/review), and a training pipeline that takes JSONL rows of state, questions and targets.

What it is good for

What it is not

Measured, not claimed

Results for the v0.3.0 public-data checkpoint are being finalized. The full evidence report, with calibration, ablations and every failure, ships with the release.

Inside

Qwen3-0.6B with two learned graph bridges inserted after decoder layers 9 and 18: sixteen latent nodes read the prompt, form a sparse directed graph, run two rounds of message passing, and write back into the decision token. Rank-16 LoRA and the bridges train jointly and merge into one checkpoint. Trained on public and synthetic data only; no chat or session transcripts.

Install

gh release download v0.3.0 -R erphq/openauditor -p openauditor-model.tar.gz -p SHA256SUMS -D artifacts
cd artifacts && shasum -a 256 -c SHA256SUMS --ignore-missing && tar -xzf openauditor-model.tar.gz && cd ..
pip install -e .
openauditor infer --model artifacts/model --request examples/request.json