9.7 RAG 实践入门
本节为初学者提供 RAG 系统的快速上手指南。我们从 Opencode 的两种实现路径出发,介绍最简单的配置方法、基本问答交互,以及系统评估的核心要点。
9.7.1 Opencode 中的 RAG 实现路径
在 Opencode 环境中构建 RAG 系统,有两条可行路径。选择哪条取决于文档规模和检索精度要求。
路径一:文件级 RAG
利用 Opencode 内置的 Read 和 Grep 工具直接搜索项目目录中的文档。这是最简单的方案,无需额外配置。
适用场景:
| 条件 | 说明 |
|---|---|
| 文档数量 | 50 份以内 |
| 文档总量 | 500KB 以内 |
| 检索需求 | 关键词匹配足够,无需语义理解 |
| 配置要求 | 零配置,即开即用 |
局限性: - 只能做关键词匹配,无法理解语义 - 问「降准」找不到写着「下调存款准备金率」的段落
路径二:MCP 集成向量数据库
通过 MCP 协议连接 Qdrant 等向量数据库,实现真正的语义检索。
适用场景:
| 条件 | 说明 |
|---|---|
| 文档数量 | 不限,支持数万份文档 |
| 检索需求 | 需要语义理解,处理同义词、近义表达 |
| 精度要求 | 金融合规场景,要求高召回率 |
| 配置要求 | 需启动 Docker 服务,配置 MCP |
提示选择建议
初学者从文件级 RAG 起步,理解 RAG 的基本逻辑。当文档超过 50 份或需要语义检索时,再迁移到向量数据库方案。两种方案的 AGENTS.md 配置逻辑相同,迁移成本很低。
9.7.2 简单实践示例
以下演示文件级 RAG 的最小可行配置。
第一步:准备知识库文档
创建项目目录结构:
my-rag-project/
├── AGENTS.md
└── knowledge_base/
└── policies/
├── 2024q3_monetary_policy.md
└── lpr_history.md第二步:配置 AGENTS.md 检索规则
在项目根目录创建 AGENTS.md:
## 项目说明
这是一个货币政策问答系统,知识库包含央行政策文档。
## 检索规则
当用户询问货币政策、利率、准备金等问题时:
1. 使用 Grep 工具搜索 knowledge_base/policies/ 目录
2. 按关键词定位相关段落
3. 基于搜索结果回答,不得编造
4. 回答时标注来源文件名
## 知识库内容
- 2024 年 Q3 货币政策执行报告
- LPR 历史报价记录第三步:基本问答交互
在项目目录启动 Opencode 后即可进行问答。
注记知识卡片
AGENTS.md 中的检索规则定义了模型的检索行为。规则越清晰,模型的行为越可预期。好的检索规则应明确三点:何时检索、去哪里找、怎么引用。
9.7.3 系统评估方法
RAG 系统的质量需要从检索和生成两个层面评估。
检索层评估指标
| 指标 | 含义 | 目标值 |
|---|---|---|
| Recall@K | Top-K 结果中包含正确文档的比例 | > 80% |
| MRR | 正确结果的平均排名倒数 | > 0.6 |
| Precision@K | Top-K 结果中相关文档的比例 | > 60% |
生成层评估指标
| 指标 | 含义 | 目标值 |
|---|---|---|
| 答案准确率 | 回答内容与事实一致 | > 85% |
| 来源标注率 | 正确引用了文档来源 | > 90% |
| 幻觉率 | 编造了文档中没有的信息 | < 5% |
| 完整性 | 回答覆盖了问题的各个方面 | > 80% |
警告注意
幻觉率是金融 RAG 系统最需要关注的指标。一个看似合理但错误的数字(如编造的利率数据)可能导致严重的合规问题。建议对关键数字类回答进行 100% 的人工复核。
常见问题与排查方向
| 问题现象 | 可能原因 | 排查方向 |
|---|---|---|
| 检索不到相关文档 | 关键词不匹配 | 检查文档用词,考虑添加同义词 |
| 检索结果与问题无关 | 分块过大或过小 | 调整分块大小(800-1000 字) |
| 回答内容不完整 | 检索结果数量不足 | 增加 Top-K 值 |
| 回答包含错误信息 | 检索噪声或模型幻觉 | 引入重排序,降低低分结果权重 |