feat(decision): 建立 Jev 离线评测与置信度阈值校准工具

Open
#393 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
ai, cli, testing-qa, tooling

Research direction

No repository files, tests, or existing entry points are named in the issue. Start by locating the gf decide command implementation and current Jev integration boundaries, then trace how CLI commands and tests are organized. Done means versioned fixtures, offline evaluation, calibration, comparison, safety checks, and reusable support for #382–#387 are implemented and tested.

Written by the indexing model from the issue text.

Description

priority:medium triage:done type:feature

Context

Parent: #382

Jevable 的 Jevals 为 Noul、Choice、Score 及混合请求提供本地测试工作台;Jevcal 则从标注数据反推满足目标准确率的置信度阈值和可自动处理覆盖率。

#382 已要求为不同问题独立校准阈值,但当前缺少统一 fixture 格式、离线 runner、版本对比和阈值选择工具。若各集成分别“凭感觉”选择 0.8/0.9 等阈值,结果将不可复现,也无法安全升级模型。

Goal

gf 建立 provider-independent 的离线决策评测与置信度校准能力,支持 Noul、Choice、Score 和混合问题,供 #382–#387 及后续 Jev 集成复用。

建议命令形态:

gf decide eval --fixtures <path> --responses <path>
gf decide calibrate --target-accuracy 0.99 --question <name>
gf decide compare --baseline <report> --candidate <report>

Design

  • 定义版本化 fixture schema,区分输入状态、问题定义、期望标签、语言、风险级别和数据来源。
  • 默认以已保存的响应或 fake engine 离线运行;live provider 评测必须显式启用。
  • 每个 question 独立输出 accuracy、accepted accuracy、coverage/abstention、confusion matrix、false-positive/false-negative、延迟和成本。
  • 阈值选择必须报告样本量与置信区间,样本不足时拒绝给出“可自动化”结论。
  • 报告记录 provider、实际模型版本、question schema hash 和 fixture version,避免 jev-latest 漂移导致不可比较。
  • fixture 必须脱敏,不得收录 token、私有 URL、真实密钥或未经批准的私有仓库内容。

Failure and Safety

  • live 调用缺少 Key、超时或部分失败时报告 incomplete,不得把缺失样本当成错误或正确答案。
  • 校准结果只生成建议配置,不自动修改生产阈值。
  • 评测退化默认只报告;是否阻断 CI 由各调用方明确配置,不能全局硬编码。

Acceptance Criteria

  • 定义并校验版本化 fixture、response 和 report schema
  • Noul、Choice、Score 及混合问题均可离线评测
  • 支持按 question、语言和风险级别分别统计指标
  • calibrate 能根据目标 accepted accuracy 输出阈值、覆盖率、样本量和置信区间
  • compare 能识别模型、问题定义或 fixture 变化造成的指标回归
  • 报告记录实际模型版本、schema hash、数据版本、延迟和成本
  • 样本不足、响应缺失和 live 调用失败均有明确状态,不产生误导性阈值
  • 默认测试完全离线;live Jev 测试必须显式启用且无 Key 时安全跳过
  • fixture 脱敏检查能阻止明显 credential 和私有 URL 入库
  • #382–#387 可共享该工具,不需要各自实现评测 runner

Non-goals

  • 提供通用模型训练平台
  • 自动把评测阈值发布到生产环境
  • 用单一全局阈值覆盖所有问题
Dominant language
Rust
Stars
2
Forks
2
Avg merge
11m
Merged PRs (30d)
50

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from byx-darwin/gitflow-cli

All issues in byx-darwin/gitflow-cli

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.