Varan-901/AIIRA-Demo

GitHub: Varan-901/AIIRA-Demo

一个本地运行的 RAG pipeline 原型,读取事件历史文档生成应急响应计划,并为后续在 TEE 机密虚拟机中部署做 attestation 代码预集成。

Stars: 1 | Forks: 0

# 机密应急响应助手 — 本地 RAG 原型 一个在本地运行的检索增强生成 (RAG) pipeline,使用私有参考文档和开源 LLM 创建应急响应计划。这是一个更大项目的功能基线,该项目随后将在机密 VM (TEE) 内部署相同的 pipeline 以提供隐私保证。

就目前而言,当前版本的项目是一个可审计的检索增强应急推理系统,并带有模拟的证据绑定 ## 项目简介 该版本完全在一台机器上运行 —— 不涉及云,也没有进行真正的 TEE 部署。其主要目的是在将逻辑移入受保护环境之前,验证 RAG + LLM 逻辑能够正常工作。 它还包含了对 **dstack SDK** 的早期集成,以便在实际部署机密 VM 之前,演练 attestation 调用的*形式*(quote 生成、nonce 绑定、app/compose identity): - 如果可以连接到 dstack TEE agent,它会请求绑定到全新单次请求 nonce 的真实 TDX quote,并打印真实的 `app_id`、`compose_hash` 以及 quote/event log。 - 如果无法连接到任何 TEE agent(在普通开发机上的预期情况),它将回退到**演示模式**:它仍然会生成 *将要* 绑定到 quote 中的 nonce 和 `report_data` 哈希,打印这些数据,并明确将输出标记为演示数据,而非真实的 attestation。 这使我们能够在不声称提供任何机密性或硬件支持保证的情况下,立即验证 attestation 代码路径和数据流,直到 pipeline 真正在 CVM 内部运行。 ## 架构 ``` documents/ → chunking → embedding model → FAISS index │ question → embedding model → FAISS search → top-k chunks │ prompt template (question + chunks) │ Ollama (local LLM) → answer │ dstack attestation step (Illustrative) ``` ## 技术栈 | 层级 | 工具 | |---|---| | Embeddings | sentence-transformers | | 向量搜索 | FAISS | | LLM 服务 | Ollama | | LLM | Llama 3.1 8B | | Attestation | dstack SDK(在 TEE 中使用真实 quote,否则使用演示性回退) | **为什么选择 FAISS,而不是完整的向量数据库:**它是一个库,而不是服务器 —— 无需运行或保护额外的服务,非常适合本项目的小规模文档。 **为什么选择 Ollama,而不是托管的 API:**LLM 必须在与它所分析的文档相同的信任边界内运行,这样在部署后,任何敏感信息都不会离开受保护的环境。使用托管的 API 会违背这一初衷。 ## 文档 所有参考文档都是合成的,并通过 `fabricate.py` 生成,它们是专门为测试而生成的 —— 并非真实的 Incident 报告。 ## 幻觉处理 prompt 指示模型 (1) 在检索到的上下文与问题不明确相关时拒绝回答,并且 (2) 避免合并不相关的文档,或者从与问题无关的上下文中延续细节(如严重程度标签)。这使回答基于检索到的材料,但并不能确保声明级别的可追溯性 —— 目前还没有针对特定文本块的逐声明引用。 ## 设置 从 [ollama.com](https://ollama.com) 下载并安装 Ollama(支持 macOS、Windows 或 Linux),然后: ``` pip install -r requirements.txt pip freeze > requirements.txt ollama pull llama3.1:8b ``` ## 如何运行 ``` # 初始化 fabricated data: python fabricate.py "" #NOTE: The script generates 3 files per incident (.json, .txt, and .pdf), so total number of generated postmortems will be 3 × the number of reports provided. # 运行此命令以 ingest 数据: python ingest.py # 要使用该 tool,请键入: python rag_model.py "" ``` ## 项目背景 这是 4 个阶段中的第 1 阶段:本地 pipeline → 容器化 → 部署机密 VM → attestation。相同的代码旨在所有阶段中不加修改地运行;只有其周围的保护措施会发生变化。 ## 局限性 - 在现阶段没有任何机密性保证。 - 小型本地模型比托管的前沿模型弱。 - 目前还没有正式的检索/准确性评估。
标签:AI风险缓解, FAISS, RAG, TEE可信执行环境, 人工智能, 后端开发, 用户模式Hook绕过, 运维自动化, 逆向工具, 隐私计算