Files
Jyotisha/scripts/research/jev_intent_samples/README.md
T
jesse-ux c2ecbc74cd
Independent Staging Quality Gate / publish (push) Canceled after 0s
Independent Staging Quality Gate / validate (push) Canceled after 1m37s
research(jev-intent): 修复轮重造语料并全量对照
来源 C 改为 DeepSeek Flash 生成+独立复核,撤回模板拼接结论。来源 B 157 条人工标注后跑 Jev x2 与 Flash 全量对照,结论为缺数据。
2026-09-19 11:30:31 +08:00

141 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Jev 意图分类样本(T0)
## 来源 A · 既有合成样本(提交)
`synthetic.jsonl`,10 条。生产测试 `frontend/tests/rectification-turn-intent-classifier.test.ts` **没有** 10 条带期望输出的 `userMessage` 夹具;本文件用该测试的 `SHUFFLED_CHOICE` 焦点、采集题 prompt,以及测试里实际出现的两句 `userMessage`(`2016年3月入学`、`随便吧`)按分类器提示词写成带标签样本。
sha256: `79d53a958b3b42ed18c79e3bbcff4b31deb22b65eedcd89b39326a7fefc9b0e8`
## 来源 B · 真实会话(本地,不提交)
作用:校准锚,不是主测试集。最少 30 条;不足则代表性检验只报数不判定。
- 抽取 SQL(staging,`agentic_rectification_turns.user_message` 非空):
```sql
select
t.id as turn_id,
t.user_message,
t.status as turn_status,
t.created_at,
c.status as case_status,
f.question_id,
f.expected_answer_schema,
f.status as focus_status
from public.agentic_rectification_turns t
join public.agentic_rectification_cases c on c.id = t.case_id
left join public.agentic_rectification_conversation_focuses f
on f.case_id = t.case_id
and f.status = 'active'
where t.user_message is not null
and length(btrim(t.user_message)) > 0
order by t.created_at desc
limit 500;
```
- 本地路径(worktree 外,已 gitignore):`G:/Ferti/Jyotisha/.cache/jev_intent/source_b.jsonl`
- 本机抽取条数:157(点选 17 / 采集 107 / 无焦点 33),gold 已全部人工标注,未用模型代标
- 长度:P25=12 / 中位=21 / P75=28 / 最长=172
- 标注耗时:约 40 分钟(`runtime_intent` 只作参考,85 条有反推 intent,不抄成 gold)
- 真值:执行方逐条人工标注。**不得提交原文。**
## 来源 C · 模型模拟语料(提交,主测试集)
`simulated.jsonl`。问题池 `question_pool.json`:20 例公开 AA holdout 走 `discriminating_event_probes` 出点选题;采集题用 `USER_COLLECT_QUESTION` / retry / `TARGETED_YEAR_PROMPT`。生成与复核各一次真实模型调用;复核看不到目标标签。
- 生成模型:`deepseek-flash`(temperature 0.85,prompt_version `gen-review-v3`)
- 复核模型:`deepseek-flash`(temperature 0.0,同一家模型、不同提示、看不到标签)
- 生成统计:{"generated": 1261, "accepted_raw": 1225, "accepted": 900, "disputed": 36, "dispute_rate": 0.028548770816812053, "generator": "deepseek-flash", "reviewer": "deepseek-flash", "prompt_version": "gen-review-v3", "seed": 20260919, "usage": {"generate_input_tokens": 553685, "generate_output_tokens": 18677, "review_input_tokens": 700669, "review_output_tokens": 29296, "generate_calls": 1389, "review_calls": 1318, "generate_cached": 53, "review_cached": 79}, "reselect_only": true}
- 争议分层:{"by_layer": {"collect": 33, "choice": 3}, "by_intent": {"answer_current_focus": 33, "unclear": 3}}
- 配额:{"choice": {"actual": 400, "target": 400, "max_share_delta": 0.045, "ok": true}, "collect": {"actual": 400, "target": 400, "max_share_delta": 0.0325, "ok": true}, "none": {"actual": 100, "target": 100, "max_share_delta": 0.0, "ok": true}}
- 长度:{"n": 900, "p25": 16.0, "median": 20.0, "p75": 24.0, "min": 6.0, "max": 39.0}
- 人设:{"choice_collect": {"rambling": 371, "answer_then_event": 94, "deny_then_event": 49, "terse": 51, "impatient_stop": 57, "ask_result": 51, "off_topic": 48, "dialect_netspeak": 79}, "all": {"rambling": 407, "answer_then_event": 94, "deny_then_event": 49, "terse": 71, "impatient_stop": 63, "ask_result": 54, "off_topic": 53, "dialect_netspeak": 109}, "each_ge_40": true, "terse_dialect_share_all": 0.2, "terse_dialect_share_choice_collect": 0.1625, "min_choice_collect": 48}
- 去重:{"n": 900, "unique": 825, "max_repeat": 5, "unique_ok": true, "repeat_ok": true}
- sha256 simulated: `53f13012fdc8f3721335bbe2961edf8c506a2f705b62bd9d302fce83ce2ef88d`
- sha256 disputed: `e80c5cd69c521a099d743e4a4632ad6bc103c3b5a505f5b376a7c9cebedb7646`
- 问题池条数(点选题):103
### 生成提示原文
系统:`你在模拟一位真人用户,正在做出生时间校正问答。只输出用户会打的那句话,不要解释,不要加引号,不要输出 JSON。`
用户提示模板示例:
```
当前问题:
2023 年前后,工作状态是否出现明显变化?
选项:
- A. 这段时间没有明显变化(对应态度:no)
- B. 记不清当时的情况(对应态度:unsure)
- C. 变化明显而且时间吻合(对应态度:yes)
- D. 有变化但程度比较弱(对应态度:weak_yes)
你必须体现的语义(不要写出这些标签名,不要解释标签):
- 这句话的作用:这句话是在直接回答当前这道题,不是另起一件无关的事,不是要求停止整套校正,也不是在问结果。
- 对当前问题的态度:明确否定当前问题:没有发生、没有变化、这方面没什么。不要再补一句「其实也有一点」。
- 是否另说一件带年月的新经历:不要另说一件带年份或月份的新经历。若当前是采集题且态度是肯定或弱肯定,可以在回答里带上这件事本身的年月,那是在答当前题,不是另说一件;这种情况下也必须出现四位数字年份。若不是采集题的肯定回答,不要写任何 19xx / 20xx 年份。
人设:口语啰嗦,会绕半句再落到要点,但仍要把必需要素说清楚。少用「嗯/啊/emmm」。
硬约束:
- 只输出用户会打的那句话
- 字数约 16–28 个汉字(含标点),不要明显超出
- 不得逐字复述上面的选项原文
- 不得出现真实姓名、地名、学校名、公司名、医院名、单位名
- 不要用「有的 / 发生了 / 就是那段 / 没这回事」这种套话,写得像真人随手打的
- 需要带时间时,用大概年份或年月,事件用普通生活经历
```
### 复核提示原文
系统:`你只做出生时间校正当前轮的意图分类。不回答用户,不修改状态。只输出一个 JSON 对象,不要解释。`
用户提示模板示例:
```
根据当前问题和用户回复分类。看不到任何预设标签。
intent 只能是:
- answer_current_focus:用户在回答当前问题
- provide_new_evidence:没有回答当前问题,只补充了一件带大概年或月的经历
- stop_rectification:明确要求停止整个校正;说当前这件事没发生不是停止
- ask_about_result:在问结果、范围、候选分钟或好了没
- unclear:以上都不成立,或混在一起无法单选
answer_class:
- 仅当 intent 是 answer_current_focus 时非空,否则必须为 null
- 点选题:按选项 label 的含义选 yes / weak_yes / no / unsure,不要按 A/B/C/D 位置猜
- 采集题:没有/没发生/这方面没什么 → no;记不清/不记得/忘了/想不起来/以后再说 → unsure;
用带大概年月的经历直接回答当前采集题 → yes(程度弱则为 weak_yes)
- 不要把「没有」或「记不清」标成 yes
- 采集题若既没有否定、也没有记不清、也没有带年月经历 → intent 为 unclear,answer_class 为 null
- 同一句既明确否定当前采集题又补充了新的带时间经历:intent 仍为 answer_current_focus,answer_class 为 no
has_new_dated_event:
- 仅在同一句里除了回答当前问题之外,还提供了新的、带大概时间的经历时为 true
- 单纯否定、单纯记不清、或只用带年月经历来直接回答当前采集题,都是 false
- 无当前问题时,带年月的经历 → intent 为 provide_new_evidence,has_new_dated_event 为 true
只输出:
{"intent":"...","answer_class":"yes"|"weak_yes"|"no"|"unsure"|null,"has_new_dated_event":true|false}
当前问题:
2023 年前后,工作状态是否出现明显变化?
选项:
- A. 这段时间没有明显变化 (answer_class=no)
- B. 记不清当时的情况 (answer_class=unsure)
- C. 变化明显而且时间吻合 (answer_class=yes)
- D. 有变化但程度比较弱 (answer_class=weak_yes)
用户回复:
(用户回复)
```
公开案例姓名不得出现在回复正文。