ocra

评测

用 ocra-eval 在 AACR-Bench 上衡量审查质量。

ocra-eval 会回放 AACR-Bench:来自 50 个开源项目、覆盖 10 种语言的 200 个真实 PR,以 1,505 条经专家核实的审查意见作为标准答案。

运行

export GEMINI_API_KEY=...
export OCRA_MODEL_STANDARD=google/gemini-flash-lite-latest

node packages/eval/dist/main.js list --limit 20 --max-change-lines 300          # 免费预览
node packages/eval/dist/main.js run  --limit 20 --max-change-lines 300 --label baseline --max-cost-usd 5
node packages/eval/dist/main.js score .ocra/eval/baseline                        # 只重新评分
参数含义
--limit、--seed、--languages、--max-change-lines、--ids用固定随机种子抽样,可复现
--label运行名称;用同一个名称再次运行会接着上次继续
--max-cost-usd审查花费达到上限后,不再开始新的 PR
--mock-judge离线的词重叠判定,只用来检查流程是否跑通(结果不可比)

仓库以 blobless clone 的方式缓存在 ~/.cache/ocra/aacr-bench/repos。commit 已经拉取不到的 PR 会被标记为不可用,不计入评分。

评分方式

移植自该基准的官方匹配规则:文件相同、diff 的同一侧、行号范围相距不超过一行,最后由 LLM 判定两条意见是否指向同一个问题。每条生成的意见只计一次。

指标定义
精确率命中的问题数 / 生成的问题数
召回率命中的问题数 / 标注的意见数
F1两者的调和平均

判定模型使用 JUDGE_BASE_URL、JUDGE_API_KEY 和 JUDGE_MODEL,没有设置时使用 Gemini key。判定结果按运行缓存,重新评分不花钱。报告会按语言、问题类别和上下文层级拆分,并附上 token、花费和耗时。

在 GitHub 上编辑

本页目录