独立课程
在这里学习完整课程并检验你的理解。
RAG Formation 的 16 节课程内容已完成。本页包含完整课程内容、本地参考资料和可直接在浏览器中完成的即时练习。
本课的具体收获
你会有一张轻量的 MVP 威胁与权限清单,并为每条边界设计一个证明它确实有效的负向测试。
观看讲解视频
1 · 核心技能
检查演示环境边界、环境变量的加载方式、CORS 和日志假设,然后运行一次负向访问测试——整个过程不打开任何密钥文件。
- 最小权限:用户、服务和工具各自只获得实际需要的访问权限。
- 数据边界:在演示、预发布和生产之间建立真实的技术隔离,同时隔离数据和解锁数据所需的凭证。
- 提示词/数据注入:不受信任的文档或用户内容试图劫持系统行为,或泄露本不该泄露的信息。
- CORS,摆在明面上:
api/app.py里设的是allow_origins=["*"]——这不是需要你去验证的假设,而是一个可以直接读到的事实。自己判断一下,这对这套演示环境的威胁模型来说是否可以接受,真要做成多租户的生产部署,又该怎么改。
2 · 运行证据闭环
先看数据导入这条边界——这是一次空跑,不会改动任何东西:
cd demo
python3 setup_demo.py ingest --dry-run
读一下打印出来的命令,确认密钥路径:.env.demo.local(仅供演示使用,已加入 .gitignore)跟 demo/.env(生产环境变量的副本)是两个完全独立的文件——演示环境的技术栈永远不会去读后者。
接下来实测查询阶段的边界。把技术栈启动起来(python3 setup_demo.py up)之后,用同一个问题、除了 workspace 字段以外完全相同的请求,调用两次 /api/v1/qa:
curl -s -X POST http://localhost:8000/api/v1/qa \
-H "Content-Type: application/json" \
-d '{"question": "PR-QA-MRD-009 从 V3 到 V4 之间改了什么?", "workspace": "meridian_demo"}'
curl -s -X POST http://localhost:8000/api/v1/qa \
-H "Content-Type: application/json" \
-d '{"question": "PR-QA-MRD-009 从 V3 到 V4 之间改了什么?", "workspace": "not-a-real-workspace"}'
对比两次返回结果里的 stats.graph_context_chars 和 sources 里的引用列表——如果图谱相关的证据在两次调用之间发生了变化,甚至直接消失了,而向量/摘要/全文这几路的引用完全没变,你就亲眼看到了这条边界真实的样子:图谱这一路信号是真管用的,另外三路完全没设防。
对每条边界写下目前保护它的机制、一条能够证明它的安全命令,以及强制执行方面还缺在哪里。
答案有多准确并不重要——只要暴露了受限文档或密钥,就是一次失败。
3 · 决策工作表
| 基线证据 | 一个假设/改动 | 指标 | 回归检查 | 有边界的结论 |
|---|---|---|---|---|
| _____ | _____ | _____ | _____ | _____ |
4 · 检索练习
问题:一个密钥没有进入 Git,却被打印到了调试日志中。这样的边界安全吗?
企业场景连接
企业聊天机器人一旦暴露客户文档、生产密钥或受限程序,就已经失败,即使答案中的每一个字在事实上都正确。
5 · 交付物与下一步
- 保存命令输出或报告。
- 填写决策工作表。
- 写下一个失败案例,以及下一项要运行的验证。
交付物是一张轻量的 MVP 威胁与权限清单,并为每条边界配一个证明其有效的负向测试。
下一步:第 16 课将讲试点评审和 30 天实施计划。
如果对证据、指标、失败案例或下一步尝试有疑问,尽管继续问我。 这门课我就是你的老师。