Skip to main content

jevaudit — 通用校准审计器

Audit ANY decision model, not just Jev. decide → 三指纹账本 → Brier + 基线 + 校准曲线报告。

Why

任何"模型给概率、事后有真值"的决策系统都需要审计:置信度 p 和真实结果 o 到底差多少?是不是瞎猜?基线是多少?jevaudit 把审计变成三件套: 账本(可回溯)+ Brier(可比较)+ 校准曲线(可诊断)。

  • 三指纹账本:input_hash / output_hash / code_hash——输入给偏了、模型漂移了、 判定脚本改了,首查指纹
  • 基线内置:全猜 0.5 的 Brier = 0.25 常数(与结果分布无关),模型低于 0.25 才是有用——报告自动对比,难听话自动打(>0.4 直接写"接近随机")
  • 前视防护:审计时只看决策时点可得的信息,结算后的信息严禁进输入

Install

pip install jevaudit   # (after publish — for now: copy the jevaudit/ directory)

Quickstart

from jevaudit import add_record, load_ledger, input_hash, output_hash, code_hash
from jevaudit import gate2, brier_score, calibration_curve, report

# 1) 每次决策记一条(三指纹 + check_spec 必填)
add_record("ledger.jsonl", {
    "id": "dec-001",
    "input_hash": input_hash(state, questions),   # sha256(规范输入)[:32]
    "output_hash": output_hash(response),         # sha256(响应)[:32]
    "code_hash": code_hash(),                     # sha256(判定脚本)[:16]
    "p": 0.95,                                    # 模型给的置信度
    "outcome": 1,                                 # 真实回填结果 (1/0)
    "check_spec": {"baseline": "implied_price", "tick": 0.01},  # 用的什么基准
})

# 2) 审计:Brier + 基线 + 校准曲线
rows = load_ledger("ledger.jsonl")
b = brier_score([r["p"] for r in rows], [r["outcome"] for r in rows])
curve = calibration_curve([r["p"] for r in rows], [r["outcome"] for r in rows])
report(rows, "calibration_report.md")   # 产出 Markdown(含 0.25 基线对比行)

# 3) 门控:KEEP / CONFIRM / DROP
action = gate2(0.75)   # KEEP (>=0.7) / CONFIRM (0.3-0.7) / DROP (<0.3)

Gotchas(三轮实战沉淀,踩不到的坑)

  1. Brier 难看时,第一步永远是证伪校验基准(真值语义/价格语义/结算语义), 第二步才怀疑模型——两次实战:真值生成器语义反了 → Brier 必然反向
  2. price 列严禁精确校验:展示价是截断/舍入价(残差恒 < 0.0125), 真执行价 = implied_price(usdcSize/size);校验用 tick 级容差(0.01/0.001)
  3. check_spec 必填:记录用的什么基准/容差,让"度量分歧"可回溯, 不然下个人又把基准当真值查一遍
  4. ["0","0"] 是退化态:已结算二元市场必须恰好一边=1,两边全 0 = 未真结算,拒
  5. outcomePrices 可能是字符串(JSON 编码数组),先 json.loads 再算
  6. 残差 <0 的反例(~1.4%)疑似 SELL 侧语义:标注 reverse,不判死不混入
  7. 样本 <3 不下结论;漂移率 |mean_p − mean_o| > 0.01 如实打 ❌,不圆场

配套

  • jevkit(PyPI):OpenRouter Decisions API (Jev) 的第一个开源第三方客户端 —— client + CLI + gate 模式
  • 实战战绩:n=100 黑箱审计(Polymarket 真实交易 vs Jev,前视防护 100/100)

License

MIT

Metadata

Release files for jevaudit 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jevaudit 0.1.1
File Size Uploaded
jevaudit-0.1.1.tar.gz 8.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jevaudit 0.1.1
File Interpreter ABI Platform
jevaudit-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.5 kB

Release files / jevaudit-0.1.1.tar.gz

Download URL jevaudit-0.1.1.tar.gz
Size 8.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b659585199a0054dc33e498a4c2d6df0f8b7815d3a4b6fbb42f4285ae2d5abe4
BLAKE2b-256 checksum
How to use checksums
16b9718454206a254edd0dd1d6ce5e3848a243006b4c7a99466d55925c344e36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / jevaudit-0.1.1-py3-none-any.whl

Download URL jevaudit-0.1.1-py3-none-any.whl
Size 9.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc359e2ef3f06dd9fff2e889ceb98d0707d32acf401a0a27ce11a6a627d1e62b
BLAKE2b-256 checksum
How to use checksums
103a86d233436542108f742030b056fc0b064f3d8ed069a46597a71537925679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page