rag-construction

🏗️ 零依赖建筑知识库RAG框架

基于DDC方法论的建筑知识库RAG系统,支持语义搜索与AI问答,纯Python标准库实现,适合教育学习与原型开发。

收藏
3.1k
安装
856
版本
v2.1.0
CLS 安全性认证2026-05-13
点击查看完整报告 >

使用说明

核心用法

RAG Construction 是一个面向建筑行业的检索增强生成(RAG)系统实现,基于 Data-Driven Construction(DDC)方法论第2.3章。该系统提供完整的文档处理流水线:从建筑文档(规范、图纸、合同、RFI等)的加载,到多种策略的文本分块(固定大小、段落、章节、语义、句子),再到向量存储与相似度搜索,最终生成带引用来源的AI回答。

核心使用流程为:初始化 ConstructionRAG 实例,配置分块策略和大小;使用 add_document()()add_documents()() 批量导入建筑文档;通过 search()() 进行语义检索,或调用 query()() 获取完整的RAG问答响应。系统内置 TextChunker 处理文档分块,,VectorStore 管理向量存储,,EmbeddingModel 生成文本嵌入(当前为基于哈希的模拟实现)。

显著优点

1. 零依赖设计:仅使用 Python 标准库(dataclasses、enum、typing、datetime、json、hashlib、re),完全避免第三方包带来的供应链安全风险。

2. 模块化架构:组件职责清晰(分块器、向量存储、嵌入模型、RAG主类),便于理解、测试和替换实现。

3. 灵活的分块策略:支持5种分块方式,特别针对建筑文档特点优化了章节分块(识别 SECTION/ARTICLE/PART 等标题模式)。

4. 完整的类型注解:全代码覆盖类型提示,配合 dataclass 定义,提升代码可读性和IDE支持。

5. 教育价值高:代码透明、逻辑简洁,是理解RAG系统工作原理的优质学习材料,配套有正式出版的技术书籍参考。

潜在缺点与局限性

1. 模拟实现限制EmbeddingModel 使用 SHA256 哈希生成确定性伪嵌入,非真实语义向量,生产环境必须替换为 OpenAI、Sentence-Transformers 等实际模型。

2. 内存存储局限VectorStore 为纯内存实现,无持久化能力,大规模知识库场景下内存消耗显著,且服务重启数据丢失。

3. 相似度计算效率:采用朴素的遍历计算余弦相似度,时间复杂度 O(N),文档量增大后检索性能急剧下降,缺乏近似最近邻(ANN)索引优化。

4. 回答生成简化_generate_answer()() 仅为模拟实现,直接拼接文本片段,未接入真实LLM,无法处理复杂推理和多步问答。

5. 缺乏高级功能:无重排序(reranking)、无查询扩展、无多路召回(向量+关键词混合搜索)、无访问控制等生产级特性。

适合的目标群体

  • 建筑行业技术人员:希望理解如何将RAG技术应用于工程文档管理的工程师、项目经理
  • AI/ML学习者:需要简洁、无依赖的RAG代码示例来理解核心机制的学习者
  • 原型开发者:快速验证建筑知识库问答产品概念,后续再逐步替换为生产组件
  • 教育机构:配合《Data-Driven Construction》书籍进行案例教学的师生

使用风险

1. 性能瓶颈风险:内存向量存储和线性扫描在大规模数据(>10万文档块)下响应延迟显著,需评估数据规模或提前规划迁移至 FAISS、Milvus 等专业向量数据库。

2. 嵌入质量风险:模拟嵌入无语义表达能力,若误用于生产将产生完全错误的检索结果,务必替换为经训练的嵌入模型。

3. 数据持久化风险:无自动保存机制,进程崩溃或重启导致知识库重建,需自行实现 export_knowledge_base()() 的定期调用和恢复逻辑。

4. 扩展性风险:当前架构为单线程同步设计,高并发场景下需引入异步处理或队列机制。

5. 幻觉传导风险:即使替换为真实LLM,RAG系统的回答质量仍受限于检索片段的相关性和完整性,建筑规范类严肃场景需人工复核关键决策信息。

安全解读

核心用法

本 Skill 提供完整的 RAG (检索增强生成) 系统实现框架,专为建筑行业知识库设计:

文档处理流程

  • 支持 11 种建筑文档类型(规范、图纸、合同、RFI、变更单等)
  • 5 种分块策略:固定大小、段落、章节、语义、句子
  • 智能边界检测,避免在单词或句子中间截断
  • 元数据自动继承,保留文档类型、项目名称等上下文

检索与问答

  • 向量相似度搜索(余弦相似度)
  • 支持按文档类型过滤
  • 上下文组装与模拟答案生成
  • 置信度评分与来源追溯

关键类与接口

| 组件 | 用途 |
|------|------|
| `ConstructionRAG` | 主系统,集成分块、嵌入、检索 |
| `TextChunker` | 可配置的分块器 |
| `VectorStore` | 内存向量存储(可替换为生产级) |
| `EmbeddingModel` | 嵌入模型接口(当前为模拟实现) |

显著优点

1. 行业针对性强:预设建筑文档类型枚举,规范、图纸、RFI 等场景开箱即用
2. 分块策略丰富:章节分块特别适合建筑规范(SPECIFICATION)的结构化特点

3. 代码结构清晰:Dataclass 定义完整,类型注解充分,易于扩展

4. 元数据驱动:支持按项目、分部工程、文档类型等多维度过滤

5. 教学价值高:完整展示 RAG 流程,适合作为学习模板

潜在缺点与局限性

1. 模拟实现待替换EmbeddingModel 使用哈希模拟向量,生产需接入 OpenAI/开源嵌入模型
2. 向量存储简陋VectorStore 为内存字典,无持久化,无法应对大规模数据

3. 无 LLM 集成_generate_answer() 为硬编码模拟,需接入 GPT-4/Claude 等模型

4. 性能未优化:无批处理、无缓存、无索引加速

5. 错误处理缺失:无异常捕获、无重试机制、无输入校验

6. 章节识别简单:正则表达式 r'\n(?=(?:\d+\.|\d+\s|SECTION|ARTICLE|PART)\s+[A-Z])' 可能漏匹配非标准标题

适合人群

  • 建筑行业开发者:需快速搭建规范问答系统的工程师
  • RAG 学习者:理解检索增强生成完整流程的教学案例
  • 原型验证团队:MVP 阶段快速验证建筑知识库问答可行性

常规风险

  • 生产就绪度低:当前为示例代码,直接用于生产会导致性能瓶颈和功能缺失
  • 嵌入质量依赖:模拟嵌入与实际语义模型效果差异巨大,替换前评估不可行
  • 数据安全风险:内存存储无加密,敏感建筑文档需考虑访问控制
  • 幻觉风险:模拟答案生成无真实 LLM 的事实性约束,实际部署需关注答案准确性

rag-construction 内容

手动下载zip · 6.0 kB
SKILL.mdtext/markdown
请选择文件