先理解
刚接触这个知识点
补齐先备概念,读原理与反例,再用自己的话解释为什么。
从核心原理开始 →理解 → 实现 → 排错 → 取舍
考察多轮指代、实体链接、澄清与原始约束保留。
知识内容核对 2026-10-03 · 原题来源核对 2026-10-02
按当前基础选择起点,也可以依次深入。遇到不熟悉的概念,先回到核心原理;完成后用知识练习检查理解。
LEARN · PRACTICE · REFLECT
先沿着原理、问答和迁移案例阅读。需要检查理解时,再切换巩固练习或展开个人记录。
核心知识 · 查询改写中的实体消歧与约束保真
先备概念:会话状态与指代、结构化查询槽位、澄清与检索计划
改写的目的在于把已知意图表达得更可检索,不能创造缺失事实。实体、否定、时间和范围必须有来源,影响答案的歧义需要保留或澄清。
“它在重庆的余额呢”包含承接关系,却没有完整实体。可以从当前会话取得候选,并记录“它”来自哪一轮、用户当时确认了什么。把已确认实体与推测候选分开保存;一个高相似度候选不是用户授权或实体确认。
结构化意图至少区分实体、地区、指标、时点以及排除条件,未知槽位保持未知。查询可有原句支路和扩展支路,但所有支路共享可信权限范围。改写前后比较受保护槽位,尤其产品编号、否定和日期。反例是用户说“不是招行,是工行”,改写器仍将历史频繁出现的招行补回来;这不是检索质量问题,而是意图被污染。
若两个实体会给出不同答案,先问一个最能区分的具体问题。低风险资料搜索可并行检索候选并展示差异,不能暗中合并;资金、权限或操作类结果更需要明确口径。是否澄清取决于答案对歧义敏感的程度,而不是机械设置相似度差阈值。
设计只改变否定、地区、日期或账户范围的成对题,检查改写是否只改变对应槽位。分别评估原问题、意图和最终检索答案,保留可追溯的证据。多轮历史变长时提取当前有效的确认与否定,不将所有历史实体平等送进候选。新消息可以修正旧状态,但不能从“昨天才说”推出业务事实今天才生效。
先从当前会话中解析“它”可能指向的实体,保留用户原句和可验证的上下文来源,再生成结构化查询意图。实体有多个候选或缺少会改变答案的条件时应澄清。改写不能擅自增加银行、日期、账户或权限;原始问题与改写结果都要进入评测,检查是否保留否定、范围和时间限制。
上下文选择最近明确确认的主体、用户修正和当前任务目标,不把全量聊天塞给改写器。输出实体 ID 候选、地区、指标、时间范围、证据位置与待澄清字段。可信身份和可见数据范围由服务端附加,改写器只能选择已授权候选,不能生成新的授权范围。
“它”可能是上一轮的招商银行,也可能是某个具体账户。先解决指代对象,再映射到数据字典中的银行、分行或账户。名字相似并不代表同一实体,候选应包含可区分的地区与组织属性。只有当前上下文足够明确时自动选择,否则用短问题确认,而不是总挑相似度最高的候选。
保留“不含冻结资金”“昨天收盘”“仅本部门”等限制。可以扩展同义词用于检索,但不能把余额查询变成支出查询,也不能把“重庆分行”扩大成所有重庆地区账户。多个查询变体需要共享预算并在最终答案中回到原始口径,避免分别查到不同对象后拼接。
构造多轮对话,刻意加入实体切换、否定修正、同名分行和历史过期信息。分别测实体准确率、约束保留率、错误自动选择率和澄清后的完成率。检索最终答错时保留原问句、改写和实体候选,才能判断问题来自改写而不是错误调整 Embedding 参数。
沿着问题的前提和约束继续向下读。先理解参考解答,再尝试收起答案,用自己的话解释因果和取舍。
第 1 层两个候选相似度很接近怎么办?
从指代补全走向会改变答案的歧义边界。
相近分数说明自动选择证据不足。检查候选是否会产生实质不同答案;会的话提出最小澄清,例如“指开户分行还是重庆全部账户?”低风险搜索可分候选检索并明确展示,不能随机挑一项后给唯一结论。相似度不替代用户确认。
沿着这个回答继续深入
第 2 层两个候选都可以检索到数据,能把两个余额加起来当答案吗?
父问的相近候选进入查询后,又产生把探索结果合成答案的诱惑。
不能,检索成功不消除实体歧义。只有用户意图明确要求合计且范围合法时才能求和;否则分别说明候选范围并请求确认。尤其两候选可能重叠,加总还会重复计数。先完成口径确认,再交由确定性计算。
沿着这个回答继续深入
第 3 层用户说“都算上”,还需要核对什么?
用户澄清后还需将自然语言集合映射为可验证、不重复的业务集合。
确认“都”指刚展示的两个集合,并检查账户是否重叠、时点币种是否一致与权限是否满足。合计以唯一业务实体去重并固定快照;不能把用户认可两个标签解释成对未知账户的无限扩展。回答列出合计范围,方便用户发现理解偏差。
第 1 层用户上一轮刚否定某个实体怎么保留?
多轮状态需要处理修正,而不是累计相关词。
将否定保存为带轮次、对象和作用范围的约束,标记旧候选失效,而不是只加一句文本。改写校验禁止重新引入被排除实体;若之后用户明确修正,更新约束版本。摘要也应保留该否定,不能只提取频繁出现的实体名称。
第 1 层查询扩展带来不同口径如何处理?
扩展覆盖提高时仍需防止多个口径被融合。
查询扩展只增加表达方式,不改变实体、时间和指标口径。将扩展各自标注为同义表达或不同解释;不同解释不能直接混合证据给一个数字。若扩展命中暴露歧义,先澄清或分别回答,最终答案说明实际范围。
先找出改变的条件,再判断原方案中哪些前提仍成立。下面的案例是教学推演,便于将原理迁移到新问题。
改变的条件:结果用于浏览而非资金判断
延伸问题:“它的取消怎么写”存在两个库,可以少问一句吗?
可以返回两种候选库的短说明与来源,让用户选定,或在有已确认上下文时优先该库。检索计划仍分开版本与实体,不能把 A 的取消 API 配 B 的示例代码。根据用户选择更新会话状态,保留当前假设标签。
保持不变的原理:允许探索不等于允许偷偷确认,证据须与各候选解释一一对应。
改变的条件:历史都提过同一技术名,但当前项目不同
延伸问题:改写是否可取最近出现的项目配置?
先使用当前明确选定的项目作用域,再读取其已确认配置;最近一轮提到的另一个项目可能只是比较对象。作用域缺失且版本影响答案时澄清。权限边界从服务端获取,不能因为历史提到某项目就认为仍可读取。
保持不变的原理:会话相关性不等于当前对象和访问授权,意图必须在明确作用域内解析。
依据公开技术资料设计;参考资料支持技术机制,场景与评分标准为本站设计,不代表某公司面试原题。 新增问答与迁移案例用于原理讲解,来源核查与案例运行验证分别记录。
读完后可以对照这些标准解释原理、边界和取舍。掌握程度由你自评;需要进一步验证时,再完成下方小任务。
将三轮含主体切换的对话改写成结构化意图,并标出不能自动确定的字段。