从检索到回答:搭建一个可评估的 RAG 知识库
目标与效果 知识库能够回答问题只是起点。我们还需要知道检索是否命中正确材料,以及最终回答是否忠实于证据。这个示例把检索与生成分开评估,让每次优化都有依据。 环境与数据准备 准备一组不含敏感信息的文档,并手工整理一批问题与对应证据。记录分块策略、嵌入模型版本、检索条数与提示词。实验之间只改变一个变量。
分享实战教程,交流技术难题,记录项目背后的思考。
目标与效果 知识库能够回答问题只是起点。我们还需要知道检索是否命中正确材料,以及最终回答是否忠实于证据。这个示例把检索与生成分开评估,让每次优化都有依据。 环境与数据准备 准备一组不含敏感信息的文档,并手工整理一批问题与对应证据。记录分块策略、嵌入模型版本、检索条数与提示词。实验之间只改变一个变量。
工具不是总会成功 网络超时、参数错误、资源不存在都应成为显式结果。把可重试错误与不可重试错误分开,避免模型一遍遍重复同一个失败动作。 明确输入与执行边界 工具参数通过 schema 校验。为查询和写操作设置不同权限,写操作提供幂等键与审计标识。重试上限、总时长和预算由服务端约束。 type Tool
遇到的问题 将知识库从固定长度分块改成按标题分块后,部分短问题的正确证据排名下降。模型和检索条数保持一致,想讨论如何有步骤地定位原因。 已经尝试的方法 先对比命中片段长度、标题是否进入嵌入文本,以及重复内容是否挤占结果。还需要构建固定测试集,避免只用几条主观印象来判断。 期望的结果 希望得到一个可复
问题与目标 当单次交互包含多次模型调用时,只看最终回答的 token 数无法解释整体账单。先为请求链路加标识,把检索、改写、规划、生成分别记录。 关键取舍 追踪输入输出长度、模型、耗时、重试次数与缓存命中。日志里不保留用户原始敏感内容,必要时仅记录长度和经处理的元数据。 改进顺序 先消除重复调用和不
先定义任务 清楚写下模型应改进的行为,再决定是否需要微调。将训练集、验证集和独立测试集分开,按来源或时间划分能帮助发现泄漏。 检查数据 统计重复、缺失、过长和格式错误的样本;检查输出风格是否一致,以及是否包含不能用于训练的个人或企业信息。保留数据许可和处理记录。 建立基线 先保存原始模型与提示词方案
我们想解决什么 代码生成速度提高后,评审需要更清楚地描述变更目的、行为和验证结果。把一次大的生成任务拆成可以独立审查的小变更。 评审重点 关注权限边界、错误路径、外部依赖和持久化行为。要求变更说明给出可复现的触发条件,不把模型的自述当作运行证据。 验证与复盘 根据实际风险选择检查:核心业务行为做集成