沙特建筑规范人工智能助手——基于MCP的代理混合RAG
一个端到端的管道,允许您使用自然语言查询沙特建筑规范(SBC 201-CC-2024),并获得基于章节的答案——由多代理架构中通过MCP提供的代理混合RAG提供支持。
它做什么
问这样的问题 *“最小胎面深度是多少?”* 并得到:
275毫米 (第1011.5.2节,第1106-1107页)
没有幻觉。只有实际的代码,带有部分引用。
建筑
Colab (processing + embeddings)
→ Supabase (vector DB + keyword search)
→ n8n (AI Agent #1: Agentic Hybrid RAG)
→ MCP (protocol layer)
→ Claude (AI Agent #2: conversational interface)为什么是“带MCP的代理混合RAG”?
- 混合动力RAG --两种检索方法:矢量搜索(语义相似性)+关键字搜索(精确术语匹配)。一个知识库。
- 能动性 --n8n AI Agent自主决定如何查询这两个检索工具,组合结果并生成可靠的答案。它会对发现的内容进行推理,而不仅仅是检索和粘贴。
- 主控程序 --工作流作为MCP服务器公开,因此Claude可以作为第二个AI代理连接到它。两个代理,两个角色,一个管道。
- 多Agent --Claude通过MCP处理对话和用户交互。n8n AI Agent处理检索和基于代码的推理。
堆栈
| 图层 | 工具 | 角色 |
|---|---|---|
| 数据处理 | 谷歌Colab | PDF提取、分块、嵌入生成 |
| 嵌入 | OpenAI(text-embedding-ada-002) | 用于语义搜索的向量嵌入 |
| 知识库 | 数据库库 | 矢量数据库(match_sbc_documents)+关键字搜索(keyword_search_sbc) |
| AI代理/编排 | n8n | AI代理,具有双检索工具+直接聊天界面 |
| LLM | GPT-4.1-mini | 推理和答案生成 |
| 协议 | MCP | 将n8n工作流暴露给外部AI客户端 |
| 接口 | Claude.ai | 通过MCP连接的对话式前端 |
存储库内容
├── README.md
├── SBC_RAG_Pipeline.ipynb # Colab notebook: PDF processing, chunking, embedding, upload
├── SBC_MCP_Query.json # n8n workflow: AI Agent with dual retrieval + MCP
└── screenshots/ # Architecture diagram and demo screenshots (optional)安装指南
1.Supabase
创建一个Supabase项目并设置以下内容:
向量表 — sbc_documents:
id(int8,主键)content(文本)metadata(jsonb)embedding(矢量(1536))
功能:
match_sbc_documents--基于pgvector的向量相似度搜索keyword_search_sbc--内容全文关键字搜索
2.Colab笔记本
打开 SBC_RAG_Pipeline.ipynb 在谷歌Colab中:
- 上传SBC 201-CC-2024 PDF
- 设置环境变量:
- OPENAI_API_KEY - SUPABASE_URL - SUPABASE_KEY
- 运行所有单元格--这将:
- 从PDF中提取文本 - 把它分成有意义的部分 - 生成OpenAI嵌入 - 将所有内容上传到Supabase
3.n8n工作流程
导入 SBC_MCP_Query.json 在n8n实例中:
- 转到n8n→ 导入工作流→ 粘贴JSON
- 配置凭据:
- 开放人工智能 -您的API密钥 - 速贝 -您的项目URL和API密钥
- 使用您的Supabase URL和密钥更新HTTP请求节点
- 激活工作流
- 启用 “在MCP中可用” 在工作流设置中
4.第ai条(MCP连接)
- 在Claude.ai设置中,添加n8n MCP服务器URL
- 开始新的对话,并提出任何SBC问题
演示问题
这些查询始终返回强有力的、有根据的答案:
- “最小胎面深度是多少?”
- “立管的最大高度是多少?”
- “楼梯的最小宽度是多少?”
关键决策
- 双重检索 --仅矢量搜索就错过了精确的术语;仅关键字搜索就忽略了上下文。使用这两种方法可以得到最可靠的结果。
- topK=12 --每个向量查询检索12个块,以充分覆盖复杂的代码段。
- GPT-4.1分钟 --RAG推理层快速且经济高效。Claude负责处理对话界面。
- 会话记忆 --n8n代理在会话中维护对话上下文,以便后续提问。
局限性
- 一些SBC部分(例如出口楼梯围护结构的防火等级)没有可靠地检索到——这是一个已知的分块/嵌入差距,可以通过更好的分块策略或上下文丰富来改善。
- 该系统最适合特定的、可测量的代码查询(尺寸、高度、宽度),而不是广泛的概念问题。
许可证
该项目用于教育和研究目的。由于版权问题,沙特建筑规范(SBC 201-CC-2024)内容未包含在此存储库中。
作者
作为Zigurat理工学院建筑、工程、施工和运营人工智能硕士(MAICEN)项目的一部分而建造。
______________________________________________________________________
*这是AEC专业人员接地AI的一种方法——建筑规范可以回应。*
