# 测试规则 本文件是评测纪律的定稿。任何一次得分收录进 `ai模型纬度得分/` 之前, 必须满足下列全部规则。 ## 1. 求解方式 - 求解统一使用**无任何上下文的新开子代理**,每命主独立排盘 + 独立推理, 禁止跨命主共享推理上下文、禁止把其他命主的题目或答案带入会话。 - 排盘使用**技能副本**(复制一份技能目录再跑,不改母版),并先对副本执行 `评测/工具/extend_cities.py` 完成评测用地点扩展(境外/模糊地名 → 代理城市)。 - 求解提示词按求解契约(任务书)执行:逐题复述考点 → 推理链 → 选项字母。 ## 1.1 额度豁免(评测不烧授权次数) 评测/复测一律在命令前加环境变量 `ZIPEC_EVAL=1`:授权门(`scripts/_license_gate.py`) 直接放行——**不签发、不扣次、不创建任何授权文件**,用户跑复测不消耗自己的授权次数。 ```bash ZIPEC_EVAL=1 python scripts/cast_chart.py --name 张三 --gender 男 \ --birth "1990-05-14 08:30" --place "四川省成都市" ``` `评测/工具/` 下的脚本若内部调用排盘(批处理场景),环境变量随子进程继承,同样适用; `memory_save.py` 等其余经过授权门的入口也同一口径。 ## 2. 盲测纪律(红线) - 求解端**只接触** `试题/<赛事>/questions/`(盲版题面)。 - **禁触** `试题/<赛事>/answers/`(答案键)、`ai模型纬度得分/`、 他人 `ai答案/`、以及任何含官方答案/跑分的文件;不得联网搜索题目或赛事答案。 - 若在允许阅读的材料中发现疑似答案泄露(如题目 JSON 残留 answer 字段), 立即停止该命主作答,在答案文件开头写明泄露位置并报告,不利用泄露内容。 ## 3. 排盘口径 - 每命主**先排真太阳时主盘**;满足任一条件再排 120°E 不经度修正的**对照盘**: - 主盘真太阳时距时辰边界(奇数整点)小于 15 分钟;或 - 出生地为境外/模糊地名(美国、中国、中国大陆、日本、马来西亚、新加坡、台湾、香港等)。 - **双盘口径纪律**:两盘答案不同时,答案行以真太阳时主盘为准,并在行尾标注 `Q2: B # 口径分歧: 对照盘=C`。 - 排盘失败(退出码非 0)不得自行猜测降级:记录 stderr、答案文件标注「排盘失败」, 5 行答案仍须给出(按最倾向项,标 `# 低置信`)。 ## 4. 输出契约(判分脚本只认这个格式) - 每命主写 `/_.md`,末尾恰好 5 行: `Q1: A` … `Q5: X`,X ∈ {A,B,C,D};行尾允许 `#` 注释。 - 题号必须按**每命主 Q1 起连续编号**(Q1…Qn 对应该命主题面第 1–n 题), 严禁全局题号或跨命主续号——2026-10 规则库 3.7 轮曾因答案文件使用全局题号 导致判分漏计,修正为 Q1 起连续编号后重跑收录。 - 断不出:给最倾向项并标 `# 低置信`;完全无法给倾向时标 `Q3: N` (判分按未答处理,属最后手段)。 - 5 行之外不得出现其他 `Q\d:` 开头的行(判分按每题首次出现取值)。 ## 5. 判分 - 判分一律用 `评测/工具/run_eval.py` **脚本判分**,不用模型裁判。 - 判分输入:`--questions` 盲版 + `--answers-key` 答案键 + `--submissions` 待判答案目录; 输出 eval_result.json(逐题明细)与 eval_report.md(统计报告)。 - 报告与官方基线(34.5%,口径见 `试题/BaziQA-全球算命师大赛/SOURCE.md`)对照。 ## 6. 对照组规范 - `without-skill` 组:同一模型**裸答**——不给排盘、不给规则库, 只给出生信息 + 题目,输出契约与判分方式与 with-skill 完全相同。 - 对照组与实验组必须使用同一模型、同一题目集、同一判分脚本。 ## 7. 收录规范 - 目录命名:`ai模型纬度得分/<模型名>//` 与 `ai答案/<模型名>//`;模型名一律小写(如 `kimi-k3`)。 - 历史留档存档:被新一轮替换的旧答案目录改名 `<模式>-v<规则库大版本>/` (如 `with-skill-v3.6/`)并列存放;当前成绩固定收录于 `<模式>/`。 - 每个得分目录收录三件:`得分.json` + `得分.md` + `得分.html` (`得分.html` 由 `评测/工具/render_scorecard.py` 渲染)。 - `得分.json` 字段 schema: ```json { "model": "kimi-k3", "skill_mode": "with-skill", "skill_version": "3.6.2-未发版(规则库 3.7)", "eval_date": "2026-10-13", "benchmark": "BaziQA-全球算命师大赛", "overall": {"total": 200, "correct": 79, "accuracy": 39.5, "no_answer": 0}, "baseline": {"name": "官方基线(Gemini)", "overall": {"total": 200, "correct": 69, "accuracy": 34.5}, "per_contest": {"contest8_2021": 27.5}, "per_dimension": {"流年运势": 40.5}}, "per_contest": {"contest8_2021": {"total": 40, "correct": 19, "accuracy": 47.5, "no_answer": 0}}, "per_dimension": {"流年运势": {"total": 37, "correct": 13, "accuracy": 35.1, "no_answer": 0}} } ``` - `per_contest` / `per_dimension` 的数值必须来自 `run_eval.py` 输出, 不得手工填写;`得分.md` 错题清单的错因分类可人工/脚本合并补录。 - 新赛事:`试题/<赛事名>/` 一个目录(questions/ + answers/ + SOURCE.md), 由 `make_blind.py --src <原始包> --out 试题/<赛事名>` 生成。