feat(evaluation): 成稿 100 分 rubric、证据评审与评测台调整

- 回忆录细项上限收紧为合计 100 分,去掉 110 折算与 raw_dimension_total
- judge_memoir 拼接原始访谈与可选导出基线;无证据时提示保守打真实性相关分
- 自动评测 run 与手动章节/故事评审统一带 transcript 证据(会话/用户聚合、截断)
- 访谈打分仍为情绪强化版 15 细项、总分 100
- 评测台默认基准改为 zuckxu 导出 MD;移除逐轮用户句对齐表及相关逻辑
- 新增 judge schema 与 memoir prompt 组装的单元测试
This commit is contained in:
Kevin
2026-04-07 10:34:59 +08:00
parent ea97427767
commit 5972b0e721
9 changed files with 616 additions and 235 deletions

View File

@@ -1,31 +1,60 @@
"""对话评审 rubric 文本v1"""
"""对话评审 rubric 文本v1 · 访谈「情绪强化版」100 分)。"""
TURN_JUDGE_INSTRUCTIONS = """你是「岁月留书」访谈对话质量评审。根据下面维度给本轮 AI 回复打分0-100 为 total_score各子分上限已注明子分之和应与 total_score 大体一致)。
_CONV_LEAF_SPEC = """
## 一、情绪价值与陪伴感(小计最高 30
- emotion_carry情绪承接能力最高 10是否接住情绪、reflect、避免冷战与模板「我理解你」。
- empathy_depth共情深度最高 8情绪类型是否准、语境贴合、非空洞安慰。
- emotion_safety情绪安全感最高 6非评判、尊重、敏感话题语气、可跳过。
- emotion_guidance情绪引导能力最高 6引导感受、关键节点追问情绪、表达更具体。
维度(参考):
- 情绪承接与共情emotion_score,最高 30
- 信息获取与追问information_score,最高 20
- 结构化访谈推进structure_score最高 10
- 提问质量question_score最高 10
- 人物理解与一致性persona_score最高 10
- 重复抑制repetition_score最高 10是否重复了上 12 轮已问过的问题或同一资料槽;高度重复则低分
- 自然流畅naturalness_score最高 10是否像朋友聊天有无不必要采访腔、总结腔、流程感
## 二、信息获取能力(小计最高 25
- fact_mining关键事实挖掘,最高 8
- info_completeness_guide信息完整性引导,最高 8
- info_depth_mining信息深度挖掘最高 9为何、动机与影响。
输出 JSON**json** 字段名如下:
total_score, emotion_score, information_score, structure_score, question_score, persona_score, repetition_score, naturalness_score, rationale
## 三、人物建模能力(小计最高 15
- persona_understanding人物理解最高 7
- persona_consistency_verify人物一致性验证最高 4矛盾澄清。
- persona_expression_guide人物表达引导最高 4「你是谁」层面。
只输出 JSON。"""
## 四、结构化引导(小计最高 15
- interview_structure访谈结构最高 6阶段与逻辑。
- context_memory上下文记忆最高 5关联前文**重复盘问、同一槽位反复**在此项扣分。
- rhythm_control节奏控制最高 4自然**采访腔、总结腔、流程感**在此项与情绪项综合体现。
## 五、提问质量(小计最高 15
- question_quality问题质量最高 7开放、具体。
- follow_up_depth追问能力最高 5
- non_leading非引导性最高 3
输出 JSON 字段(仅这些键;务必含 rationale
emotion_carry, empathy_depth, emotion_safety, emotion_guidance,
fact_mining, info_completeness_guide, info_depth_mining,
persona_understanding, persona_consistency_verify, persona_expression_guide,
interview_structure, context_memory, rhythm_control,
question_quality, follow_up_depth, non_leading,
total_score, rationale
`total_score` 必须等于上述 15 个细项之和(满分 100
聚合分 emotion_score、information_score、persona_score、structure_score、question_score 可不填(服务端会重算)。
只输出 JSON。
"""
CONV_JUDGE_INSTRUCTIONS = """你是访谈整段对话评审。给定完整 transcript用户与 AI 多轮),打一个综合 total_score0-100
TURN_JUDGE_INSTRUCTIONS = (
"你是「岁月留书」访谈对话质量评审,按下列 **情绪强化版** rubric 为本轮 AI 回复打分。\n"
+ _CONV_LEAF_SPEC
)
dimension_scores 建议至少包含emotion, information, structure, repetition, naturalness各 0-100 相对分量即可),用于反映整段是否重复盘问、是否自然;另可有 rationale。
只输出 JSONtotal_score, dimension_scores, rationale。"""
CONV_JUDGE_INSTRUCTIONS = (
"你是访谈整段对话评审。给定完整 transcript用户与 AI 多轮),按与单轮**相同**的 15 项细项与满分上限,"
"对**整段对话表现**打一次分;`total_score` 为细项之和100\n" + _CONV_LEAF_SPEC
)
COMPARE_CONV_STREAM_HINT = """你是访谈对话评测专家。下面给出一份「回放/新测」完整对话 transcript 及其整体评分JSON。请用中文直接写正文不要用 JSON
1) 对这段对话的整体评价与风险点;
1) 对这段对话的整体评价与风险点(对照情绪承接、信息挖掘、人物、结构、提问质量等)
2) 可操作的改进建议(提示词、流程、模型参数等)。
笔调简洁、可执行。"""