参考资料
安全、权限与部署边界
RAG Formation 的课程内容已完成;这份资料可用于自主学习和练习。
一句话规则
即使答案在事实层面正确,只要暴露了受限文档或密钥,仍然不可接受。
核心术语
| 术语 | 含义 |
|---|---|
| 最小权限(Least privilege) | 只向用户、服务和工具授予其所需的访问权限。 |
| 数据边界(Data boundary) | 在演示、预发布和生产数据及凭据之间建立技术隔离。 |
| 提示词/数据注入(Prompt/data injection) | 不受信任的文档或用户内容试图改变系统行为或暴露信息。 |
| 按 workspace 隔离 | workspace 确实隔离了 LightRAG 的图谱存储,但从未传到 Qdrant 或 Meilisearch——这两路完全忽略它。要用一次两次调用的实测来验证,不能靠假设。 |
| CORS | api/app.py 里设的是 allow_origins=["*"]——这是一个可以直接读到的事实,不是需要去验证的东西。 |
证据卡
| 事项 | 记录 | 不要声称 |
|---|---|---|
| 基线 | 命令、配置和观测结果 | 基线就是目标。 |
| 改动 | 一个假设或决策 | 多个因素同时变化时,仍能确定是什么导致了结果。 |
| 指标 | 记录每个边界、当前控制措施、一条安全验证命令以及任何缺失的执行点。 | 一个指标就能说明质量的全部。 |
| 安全 | 一个失败案例和一个回归案例 | 流畅的回答就能证明系统可靠。 |
本地命令
cd demo
python3 setup_demo.py ingest --dry-run
# 然后,在技术栈启动之后(setup_demo.py up):
curl -s -X POST http://localhost:8000/api/v1/qa -H "Content-Type: application/json" \
-d '{"question": "...", "workspace": "meridian_demo"}'
curl -s -X POST http://localhost:8000/api/v1/qa -H "Content-Type: application/json" \
-d '{"question": "...", "workspace": "not-a-real-workspace"}'对比两次调用的 stats.graph_context_chars 和 sources——图谱那一路应该有变化,向量/摘要/全文那三路应该完全不变。
产物: 一份 MVP 威胁与权限检查表,为每个边界附带一条负向验证。