RAG 与知识检索
先检索资料,再组织带来源的回答,分别检查检索与生成两个阶段。
RAG 解决什么问题
RAG 是检索增强生成:先从外部资料中找出相关内容,再把结果提供给模型组织答案。它适合需要引用项目资料、专业知识或经常更新信息的场景;并不意味着把资料直接训练进模型。基本流程可参考 Google Cloud 的 RAG 介绍。
检索结果相关、准确,生成阶段才有可靠材料可用。引用了资料也仍可能答错,因此要分别检查“找到了什么”和“据此写了什么”。
给资料保留身份
在本站案例中,每份资料先保存以下信息:
{
"document_id": "P-02",
"title": "试运行变更说明",
"version": "2",
"section": "时间安排",
"text": "试运行调整为11月9日。"
}片段继承文档编号、版本和所在章节。这样检索后仍能说明来源,更新资料时也能定位需要重新处理的内容。
从可解释的检索开始
先按标题、段落和条目切分,尽量保留一个条件或一条规则的完整上下文。表格中行与列的含义也要一起保留。片段长度没有对所有文档通用的固定值,应观察问题是否能检索到完整证据。
关键词检索适合明确编号、术语和名称;向量检索可用于语义相近的表达。是否需要结合两种方式、增加重排,要看实际测试问题与检索记录。下面是教学流程:
用户问题
-> 确定可访问的资料范围
-> 检索候选片段
-> 检查相关性、版本与重复内容
-> 将有来源的片段交给模型
-> 生成答案并核对引用两类错误要分开修
如果正确资料没有进入候选片段,先检查资料解析、切分、查询表达和过滤条件。如果证据已经齐全,回答却遗漏条件或混淆日期,再检查提示词、材料顺序和输出约定。
当材料互相冲突时,先执行已经确定的版本规则;没有规则时呈现冲突。找不到依据时说明缺什么,避免生成一个看似完整的答案。
动手检查
为“试运行日期”“负责人员”“不存在的预算”等问题保存候选片段与最终答案。检查每个结论是否有对应原文;加入同名旧版本,确认版本信息没有在切分或检索时丢失。
下一步:工具调用,把检索等外部能力放进有边界的执行流程。