本节目标
把原始制度整理成可检索、可引用的记录。结束时,你应能回答:这段内容来自哪里、何时有效、是否允许当前用户查看?
练习用虚构资料,所有日期只是示例版本信息。不要把真实公司的客户记录或密钥放进示例文件。
先设计记录,而不是先选向量库
{
"id": "expense-v1-01",
"title": "报销材料",
"source": "demo/expense-policy",
"version": "2026-09-01",
"text": "报销需要发票、付款凭证和审批单。"
}
id 标识片段,source 标识原文。若原文变更,版本字段和片段内容应一起更新;不能只改标题。生产环境还要记录访问范围、失效时间和文档归属,但本课只使用所有人可见的虚构资料。
按语义边界切分
先尝试“一条完整规则一个片段”。如果规则很长,再沿标题、段落边界拆分,并保留解释规则所需的限定条件。
例如“出差可报销住宿费”后面紧跟“仅限审批通过的行程”,不应把两句拆到互不相关的记录。否则检索可能只返回前半句,导致回答过度概括。
表格要保留表头与单位。单独取出“300”既不知道是金额还是天数,也不知道对应哪个地区。扫描件还应抽查识别文字;错误资料进入索引后,模型不能可靠地替你修复。
给孤立片段补上下文
“有效期 30 天”需要知道它描述哪种申请。可在片段前补入原文已经确定的主题:“设备借用申请的有效期为 30 天”。不得添加原文没有的限制。
Anthropic 的 Contextual Retrieval 文章介绍了为片段补充上下文后再进行索引的方法。本课程只借用“片段不要脱离语境”的思路,没有实现其完整方案,也不承诺复现其实验效果。
来源:Introducing Contextual Retrieval,核验日期:2026-09-07。
准备三条练习资料
本课下载程序中内置了三个主题:报销材料、账号权限、密码重置。运行后查看每条记录的 id、source 和 version,确认检索输出能带回这些字段。
动手增加一条“出差审批”资料,写明申请时间和所需材料。再故意制作一条过期版本:你会发现仅有 version 字段并不会自动完成版本过滤。实际应用必须在索引构建或查询时落实有效版本策略。
验收
找一个不知道你的文件组织方式的人,只给他检索结果中的 source 和 id,检查是否能定位原文。若不能,这份资料尚不具备可追溯性。
本节交付:四条虚构资料、每条记录的来源与版本,以及一条不能孤立切开的限定条件。下一节实现一个可运行的检索基线。