内部知识库的问答窗口里,一个常见场景是:答案读起来顺,引用却指向两年前的制度;问的人以为系统“懂了”,复核的人发现它只是把相似句子拼在一起。检索增强生成要处理的,正是这类看似流畅、实际脱节的问题。
它的基本思路不复杂:先按问题去资料里找相关片段,再把片段和问题一起交给模型组织答案。模型不再只靠训练时留下的印象,而是被临时提供的材料约束。这个约束是否有效,取决于检索到的内容是否真的相关、是否在有效期内、是否属于提问者有权查看的范围。换句话说,检索增强生成把一部分责任从模型参数转移到了资料系统。
难点不只在“接一个向量库”
很多讨论把这件事简化成向量检索加提示词。实际落地时,切分方式会直接影响召回:一份长文档按固定字数切开,可能把一条制度的适用条件和使用范围分到两段;按标题切,又可能漏掉表格和附件里的关键限制。检索环节也有类似问题,问法口语化、缩写多、指代不清时,相似度未必能抓住真正需要的那一页。
我更愿意把检索增强生成看成一次“资料可用性”的检验。资料本身版本混乱、命名随意、权限边界模糊,系统只会更快地把这些问题呈现给用户。它不会自动判断哪份文件作废,也不会替组织建立元数据规范。若知识源没有基本秩序,回答越流畅,复核成本可能越高。
引用不是装饰,是复核入口
企业场景里,答案后面附上来源,不只是为了让页面显得可信。引用要能让人点回去,看到原文、版本和适用范围。若引用只给一个文档标题,不给段落位置,复核仍然要靠人工翻找。更细一点,系统需要记录这次回答用了哪些片段,片段来自哪个版本,用户是否有权限打开。这样做会增加工程复杂度,但它把“模型说了什么”变成“模型依据什么说”。
权限也常被低估。检索时若只按关键词匹配,不校验用户身份,可能把不该出现的片段送进上下文。即便最终答案没有直接复述敏感内容,片段进入模型上下文这件事本身也需要被管理。检索增强生成不是外挂一个搜索框,它要和账号体系、文档权限、审计日志一起工作。
评估要从问题清单开始
上线前,团队通常会准备一批真实问题,观察回答是否命中正确资料、引用是否可打开、过期内容是否被排除、无答案时是否承认不知道。这些问题清单不需要很庞大,但要覆盖不同部门、不同文档类型和不同问法。评估时别只看答案像不像,还要看检索阶段有没有把正确片段找出来。检索错了,后面组织得再顺,也只是在错误材料上做文章。
更新机制同样具体:制度换版后,旧片段何时退出索引;附件修订后,引用能否指向新版本;同一问题在不同时间问,答案是否跟着资料变化。把这些动作写进日常流程,比在上线时调一轮提示词更费力,也更决定这套系统能不能长期用。
回到开头那个问答窗口,用户真正需要的不是一段像样的解释,而是一条能追溯、能复核、能随资料更新的回答路径。检索增强生成的价值在这里,边界也在这里:它让模型学会先查再答,但查什么、怎么查、查到后如何证明,仍要由人来设计。