# FDE W3D4 评测题 · Query 优化（A 级）

>  candidate: 36 岁，Java + 大数据 + 医疗保险背景，目标 FDE。
>  场景统一用「医疗保险 / 特药理赔 / 保险知识库」。
>  评分维度通用：①概念准确 ②工程权衡 ③举例落地 ④避坑意识。每题满分 5 分（按维度拆分或整体给分均可）。

---

## L1 基础（概念理解）

### Q1. 请解释 Query 优化在 RAG 链路里的位置，以及它解决的根本问题是什么？
- **考察点**：Query 优化的整体定位（检索前 vs 检索后）、与检索/生成的关系。
- **评分维度**：能否讲清"在检索前优化问句"；能否说明"用户原始问句不适合直接检索"的根因（口语化、缺上下文、术语不匹配、指代）。
<details>
<summary>参考答案</summary>

Query 优化位于 RAG 的「检索前」环节：原始 Query → 改写/扩展/分解/压缩 → 优化后的 Query → 检索 → 生成。它解决的根本问题是：用户原始问句往往口语化、缺上下文、术语与知识库不一致、或问题过大需要拆分，直接用于向量检索会召回不准。本质是用一次（或几次）LLM 调用"以算力换召回"，提升后续检索与生成质量。注意 Context Compression 作用在检索后，与其余三者不同。

</details>

### Q2. Query Rewrite（查询改写）一般会做哪些动作？请举一个保险场景例子。
- **考察点**：Rewrite 的典型动作（术语对齐/补全上下文/消歧/意图澄清）与落地意识。
- **评分维度**：能否列出 ≥2 个动作；例子是否真实可信（保险知识库）。
<details>
<summary>参考答案</summary>

典型动作：①术语对齐（"报不报"→"是否符合理赔/报销条件"）；②补全上下文（结合保单类型、城市、险种把隐含信息补进 query）；③消歧/纠错（纠正错别字、明确指代）；④意图澄清（把模糊问题落到具体子意图）。
保险例子：用户问"我那个特药能不能报" → Rewrite 成"投保人在 XX 保单下申请奥希替尼（肺癌靶向药）的特药理赔，是否符合报销范围"。术语对齐 + 补全指代，召回命中率提升。

</details>

### Q3. 什么是无答案拒答（Refusal）？为什么在保险知识库场景它比"硬答"更重要？
- **考察点**：拒答的定义与业务必要性（合规/风险）。
- **评分维度**：能否说明"知识库无依据时不编造"；能否联系保险的真实风险（经济损失、合规、可审计）。
<details>
<summary>参考答案</summary>

拒答 = 当知识库没有相关依据时，模型明确承认"无法回答"并给出引导，而不是硬编答案。保险场景里，错误理赔结论会造成真实经济损失、误导用户决策、带来合规风险；拒答结论可审计、可引导到人/渠道复核，危害远小于幻觉。因此拒答准确率是企业 RAG 核心评测指标之一。

</details>

---

## L2 进阶（机制与对比）

### Q4. Multi-Query 与 Query Rewrite 的核心区别是什么？合并多路召回时要注意什么？
- **考察点**：两种策略的本质差异；多路召回的工程处理（去重、Rerank）。
- **评分维度**：能否区分"改表达(1句)"vs"扩视角(N句)"；是否提到去重 + Rerank + 来源标记。
<details>
<summary>参考答案</summary>

Rewrite 输出 1 个改写问句（改表达）；Multi-Query 输出 N 个不同角度问句并行检索（扩视角）。合并多路召回要：①按 chunk_id/doc_id 去重，否则重复内容挤占上下文；②合并后建议走一次 Rerank 重新排序，避免某路劣质召回拉低质量；③保留每片来源标记，否则引用混乱。代价是 N 倍检索成本，常取 3~5 路。

</details>

### Q5. Query Decomposition 有哪两类？分别适用于什么情况？最大风险是什么？
- **考察点**：独立分解 vs 依赖分解；适用边界；连锁错误风险。
- **评分维度**：能否区分独立/依赖；能否说出多跳场景；是否提到"依赖链错误连锁污染"与早停/最大层数。
<details>
<summary>参考答案</summary>

两类：①独立子问题（并行检索，子问题互不依赖）；②依赖子问题（顺序执行，后一个依赖前一个答案，多跳推理）。适用于复杂复合 / 需要多步推理的问题（如"先报重疾还是先报医疗"）。最大风险是依赖链错误连锁污染——前置子问题答错导致后续全错。应对：设最大分解层数、早停、对子问题结果做校验。

</details>

### Q6. 引用准确性（Citation Accuracy）为什么在保险场景尤其重要？请列出至少三种保证手段。
- **考察点**：引用的业务价值（审计/追责）；技术保证手段。
- **评分维度**：能否联系"可核查/合规"；手段 ≥3 种（绑定 id / 结构化 / 校验 / 回溯）。
<details>
<summary>参考答案</summary>

保险答案关系理赔金额与责任判定，结论若无可靠来源无法审计、无法追责。保证手段：①检索即绑定 doc_id/chunk_id，生成时只允许从这些 id 引用；②结构化引用输出 citations:[{claim, chunk_id}]，每句挂来源；③引用校验（二次判定该 chunk 是否真支持该 claim，防张冠李戴/虚构 id）；④前端点击引用回溯原文高亮，可人工复核。多路召回合并必须保留来源标记。

</details>

### Q7. Context Compression 与检索前的 Query 优化有什么不同？它有什么典型风险？
- **考察点**：检索后压缩的定位；丢关键证据的风险。
- **评分维度**：能否区分作用阶段；是否提到"压掉否定/缺失证据导致错误硬答"。
<details>
<summary>参考答案</summary>

Context Compression 作用在检索后：对召回 chunk 过滤/抽句，只留相关片段，降噪声、省 token、提质量；而 Rewrite/Multi-Query/Decomposition 作用在检索前，优化 query。典型风险是压缩可能丢失信息，尤其危险的是压掉"无此条款/未规定"的否定证据，导致模型在不存在的依据上硬答。原则：拒答判定应在压缩前做，压缩要保留"无/不/未"类信号。

</details>

---

## L3 深度（设计 + 评测）

### Q8. 如果让你设计一个可降级、可观测的 Query 优化服务，你会怎么组织各策略与降级路径？
- **考察点**：工程架构思维、分级路由、降级兜底。
- **评分维度**：是否按问题难度分级路由；是否每策略都有 fallback；是否提到缓存与可观测（Trace/指标）。
<details>
<summary>参考答案</summary>

按问题难度分级路由：简单问题→Rewrite（地基必做）；召回不稳→+Multi-Query；复杂多跳→+Decomposition；召回噪声大→+Context Compression。每策略都要有降级：改写失败 fallback 用原 query 检索；多路召回失败降级单路；拒答判定失败默认"进生成但题目没有就拒"。同时：对高频相同 query 缓存改写结果（省成本）；全流程记 Trace（用了哪些策略、各路分数、是否拒答、引用分布）；用评测集对照各策略增益。

</details>

### Q9. 如何用对照实验评测 Query Rewrite / Multi-Query 的效果？拒答与引用又怎么量化？
- **考察点**：评测方法论（对照、指标）。
- **评分维度**：Rewrite/多查询用"召回指标对照"；拒答用"拒答准确率"；引用用"引用准确率/幻觉率"。
<details>
<summary>参考答案</summary>

Rewrite：同一批问题对比"原 query"vs"改写 query"的 Hit Rate@K / nDCG，看召回提升。Multi-Query：对比单 query vs 多 query 合并后的 Recall@K 覆盖率。Decomposition：人工/LLM 判定分解是否合理、是否覆盖必要子问题。拒答：在 should_refuse 标注集上测 precision/recall（拒答准确率）。引用：人工/LLM 判定每句结论的引用是否正确且真实存在（引用准确率、幻觉率）。所有优化都要靠对照集证明"真的有用"。

</details>

### Q10. 拒答的信号可以来自哪些层面？如何避免"该拒却答"和"该答却拒"两类错误？
- **考察点**：拒答的多信号融合、阈值校准。
- **评分维度**：≥2 种信号（检索分数阈值 / should_refuse 字段 / 置信度）；能否说明阈值靠评测集校准平衡两类错误。
<details>
<summary>参考答案</summary>

信号：①检索分数阈值——topK 相关分都低于门槛直接判无答案，无需进生成；②结构化 should_refuse 字段 + prompt 约束"无依据就拒"；③置信度兜底——生成后答案无可引用来源则强制拒。避免两类错误：阈值设太高→该答却拒（漏答），太低→该拒却答（幻觉），必须用语义检索集（含 should_refuse=true 的 case）校准阈值，并在评测里同时看拒答 precision 和 recall。

</details>

---

## L4 场景（医疗保险实战）

### Q11. 场景：用户问"我去年买的百万医疗，现在确诊肺癌要吃奥希替尼，能报吗？报销比例多少？"请设计完整的 Query 优化链路。
- **考察点**：综合运用 Rewrite + Multi-Query + Decomposition + 拒答 + 引用。
- **评分维度**：是否覆盖改写补全画像、多视角扩写、复杂子问题拆分、拒答与引用落点。
<details>
<summary>参考答案</summary>

①Rewrite：补全画像 → "持有 XX 百万医疗险的投保人，确诊肺癌需使用奥希替尼（靶向药），该药是否在特药目录内、报销比例及自付要求为何？" ②Multi-Query：生成"奥希替尼 特药目录 纳入情况""百万医疗 靶向药 报销比例""肺癌 靶向治疗 免赔额/自付比例"三路并行。③Decomposition（若含"先报重疾还是先报医疗"）：拆重疾给付责任、医疗报销责任、补偿关系三子问题。④拒答：知识库无具体比例时输出 should_refuse=true，引导"以保单批单/客服为准"。⑤引用：答案每条挂 chunk_id（特药目录条目、报销比例条款），前端可点开复核。

</details>

### Q12. 场景：你发现系统经常"自信地编"特药报销比例，且引用张冠李戴。请定位可能原因并给出修复方案。
- **考察点**：幻觉 + 引用失真的根因分析与修复。
- **评分维度**：能否定位"拒答阈值低 + 引用无校验 + 多路召回丢来源"；修复是否对应（提阈值/引用校验/保留来源）。
<details>
<summary>参考答案</summary>

可能原因：①拒答阈值过低，模型把低相关 chunk 当依据硬答；②引用无校验，模型把不相关 chunk 标上显得有依据（张冠李戴），甚至虚构 chunk_id；③Multi-Query/Decomposition 多路召回合并时丢了来源标记，引用混乱。
修复：①用评测集提高检索分数阈值，让"无依据"正确触发拒答；②引入引用校验——后处理二次判定每条 claim 的 chunk 是否真实存在且真支持该 claim，剔除/纠正虚构与错位引用；③多路召回合并强制保留来源标记；④prompt 显式禁止编造 id，答案无引用即拒答。

</details>

### Q13. 场景：你推行 Query 优化后，老板问"怎么证明这层没白做、值得继续投入？"请组织你的汇报。
- **考察点**：用业务与指标量化 Query 优化的价值（述职/汇报能力）。
- **评分维度**：是否用对照指标（召回提升、拒答准确率、引用准确率）+ 业务收益（误答减少、客诉）+ 成本权衡。
<details>
<summary>参考答案</summary>

汇报结构：①对照指标——同一批问题，Rewrite 后 Hit Rate@K 从 X 提升到 Y，Multi-Query 后 Recall@K 覆盖率提升 Z%；拒答准确率（should_refuse 集）从 A 到 B；引用准确率/幻觉率改善。②业务收益——误答（错误理赔结论）数下降、相关客诉/人工复核量下降、可审计性提升。③成本权衡——优化增加 N% 检索/LLM 调用，但通过缓存高频 query、按难度分级路由控制在可接受范围。结论：以可控成本显著提升召回与可靠性，建议保留并继续迭代评测集。

</details>

---

## 评分汇总表

| 题号 | 层级 | 主题 | 满分 | 候选得分 | 备注 |
|------|------|------|------|----------|------|
| Q1 | L1 | Query 优化定位 | 5 | | |
| Q2 | L1 | Query Rewrite 动作+例子 | 5 | | |
| Q3 | L1 | 拒答定义与必要性 | 5 | | |
| Q4 | L2 | Multi-Query vs Rewrite | 5 | | |
| Q5 | L2 | Decomposition 两类+风险 | 5 | | |
| Q6 | L2 | 引用准确性保证 | 5 | | |
| Q7 | L2 | Context Compression 区别 | 5 | | |
| Q8 | L3 | 可降级可观测设计 | 5 | | |
| Q9 | L3 | 评测方法论 | 5 | | |
| Q10 | L3 | 拒答信号与阈值校准 | 5 | | |
| Q11 | L4 | 特药理赔完整链路 | 5 | | |
| Q12 | L4 | 幻觉+引用失真修复 | 5 | | |
| Q13 | L4 | 价值量化汇报 | 5 | | |
| **合计** | | | **65** | | |

### 达标线
- **L1+L2 全对（基础达标）**：能清晰区分 Rewrite / Multi-Query / Decomposition / Compression 各自解决什么、何时用；能讲清拒答与引用的基本机制。
- **L3 两题以上达标（进阶达标）**：能设计可降级可观测的优化服务，能用对照实验量化效果，能校准拒答阈值。
- **L4 两题以上达标（实战达标 / 面试通过线）**：能结合医疗保险（特药理赔）给出完整 Query 优化链路、定位并修复幻觉与引用失真、用指标量化价值。
- **总分建议**：≥52/65（80%）为"熟练"；40~52 为"基本掌握需补强"；<40 为"不达标，重学手册"。

---

> 配套学习手册：`FDE-W3D4-Query优化-学习手册.html`
