独立课程
在这里学习完整课程并检验你的理解。
RAG Formation 的 16 节课程内容已完成。本页包含完整课程内容、本地参考资料和可直接在浏览器中完成的即时练习。
本课的具体收获
学完今天的内容,你会拿到一份脱敏 Meridian Labs 系统全新的实时基线,也能准确说清它证明了什么,以及同样重要的——它没有证明什么。
观看讲解视频
1 · 安全第一:使用隔离演示环境
所有命令都要从演示目录运行,不要从 api 目录运行:
cd demo
演示堆栈完全隔离:服务名、端口、集合、工作区和数据目录各自独立。它只读取演示配置和一个演示 API key 文件。永远不要打印或打开保存密钥的环境文件。
开始之前,再确认以下事项:
- Docker 正在运行。
- 演示 API key 文件存在,并且确实包含密钥。
- 端口
8000没有被生产项目占用。
2 · 运行基线流程
先运行离线检查:
python3 eval.py verify
python3 test_scoring.py
启动隔离堆栈:
python3 setup_demo.py up
随时可以这样检查状态:
python3 setup_demo.py status
现在为合成语料建立索引:
python3 setup_demo.py ingest
导入不会立即完成——图谱索引和摘要索引都要调用 LLM,所以要留出实际运行时间。如果语料库已经建立索引并且你想保留它,请谨慎使用文档中说明的选项。不要随意清除生产数据。
3 · 先测检索,再测答案
先运行只检索的评估——它完全跳过 LLM 评审:
python3 eval.py run --mode retrieval --workspace meridian_demo --tag lesson-4-retrieval
你会准确看到每个索引在哪些方面发挥作用:
- 仅向量检索
- 向量检索加全文检索
- 向量检索加全文检索加摘要
- 所有索引,包括近似图谱匹配
4 · 测量生成答案
接下来运行答案评估:
python3 eval.py run --mode answer --workspace meridian_demo --tag lesson-4-answer
这次运行会调用 /api/v1/qa,检查引用和必需关键词,并让评审模型把每个答案分为 correct、partial 或 incorrect。同时还会记录拒答和延迟。
第一次运行时,可以限制样本数量:
python3 eval.py run --mode both --workspace meridian_demo --limit 10 --tag lesson-4-smoke
5 · 像工程师一样阅读报告
报告位于:
demo/reports/
不要脱离定义引用任何数字。记录下面这些内容:
| 指标 | 你的数值 | 含义 |
|---|---|---|
| 检索并集 | _____ | 在合并后的索引中找到的全部预期来源 |
| 严格准确率 | _____ | 评审结果为 correct |
| 来源命中率 | _____ | 最终答案引用了每一个预期来源 |
| 拒答准确率 | _____ | 不可回答问题被正确拒答 |
| 幻觉率 | _____ | 不可回答问题仍然得到答案 |
| 延迟 p50 / p95 | _____ | 典型响应时间和慢尾响应时间 |
6 · 练习:基线还是过度宣称?
陈述 A:“在 65 道题的 Meridian Labs 评估集上,使用 gpt-4o-mini、topk 5,并在当前工作区运行,严格答案准确率是 70%。”这算是一条扎实的基线陈述吗?
陈述 B:“这个聊天机器人准确率是 70%。”这句话可以写进技术报告吗?
陈述 C:检索并集很高,但严格答案准确率很低。下一步应该查哪里?
企业场景连接
QA 或法规团队无法使用一个既不能解释又不能复现的数字。基线让原型保持诚实:它揭示哪些地方有效、哪些地方无效,也能说明下一次改动是否真的产生了影响。
下一步行动
至少同时运行检索评估和答案评估,然后发给我:
- 两份报告的标签。
- 检索并集百分比。
- 严格答案准确率。
- 来源命中率。
- 拒答准确率和幻觉率。
- 一个你想优先深入排查的失败案例,以及评审理由。
如果 Docker、导入、评审器或某个指标让你困惑,随时提问。 在我们把第 4 课标记完成前,我会帮你理解实时数据。