筑见 BuildView - 基于 Milvus + PostgreSQL + Redis + Neo4j + 大模型的建筑工程「知识库 + 项目智能」双核平台
支持 智能问答 + Agent 智能分析 + 知识图谱 + 施工图处理
类别
技术
说明
Web框架
FastAPI
高性能异步 API 框架
ORM
SQLAlchemy 2.0
数据库操作
关系数据库
PostgreSQL 15
文档元数据、用户、日志
向量数据库
Milvus 2.3
文档向量存储与检索
图数据库
Neo4j 5.0
知识图谱存储与查询
缓存
Redis 7
Query 缓存、会话管理
大模型
OpenAI / Qwen / GLM / Ollama
可替换的 LLM 接口
向量化
BGE / text2vec / OpenAI
Embedding 模型
OCR
PaddleOCR
扫描件文字识别
容器化
Docker Compose
一键部署
1. 文档处理(Document Pipeline)
功能
说明
格式支持
PDF、Word(.doc/.docx)、扫描件(OCR)、文本
处理流程
加载 → 解析 → 清洗 → 分块 → 向量化
元数据管理
自动提取标题、作者、日期等信息
支持批量文本向量生成
向量与 Chunk 元数据解耦存储
可替换不同 Embedding 模型(BGE / text2vec / OpenAI)
检索方式
说明
向量检索
基于 Milvus,支持 TopK、相似度阈值
关键词检索
基于 BM25,提升专业术语召回率
混合检索
向量 + BM25 结果合并、去重、加权
图增强检索
结合知识图谱的语义检索
重排序
Cross-Encoder 精排,减少无关上下文
Prompt 模板化管理
强约束回答来源:未检索到内容 → 明确返回「文档中未找到」
支持私有化模型和云端 API
支持 OpenAI / 通义千问 / 智谱GLM / Ollama / vLLM
组件
用途
Redis
Query → Answer 缓存,降低 LLM 调用成本
PostgreSQL
文档信息、Chunk 元数据、问答日志
Agent
功能
核心指标
WeeklyReportAgent
自动生成项目周报
进度、成本、风险汇总
RiskAnalysisAgent
风险识别与预警
多维度风险评估
CostAnalysisAgent
成本分析与预测
CPI、EAC、超支识别
ProgressAnalysisAgent
进度分析与预测
SPI、延期预警、完工预测
SafetyAnalysisAgent
安全合规分析
合格率、隐患统计、整改计划
功能
说明
实体提取
从文档中提取结构化实体
关系抽取
识别实体间的关联关系
图谱存储
Neo4j 图数据库存储
图谱查询
支持路径查找、邻居查询
图增强RAG
结合图谱进行语义增强检索
功能
说明
图纸解析
解析施工图纸文件
实体提取
提取图纸中的构件、材料、尺寸等
关系抽取
识别构件间的连接和包含关系
知识入图
将图纸信息存入知识图谱
┌─────────────────────────────────────────────────────────────────────┐
│ Client (Web / API) │
└─────────────────────────────────┬───────────────────────────────────┘
│
┌─────────────────────────────────▼───────────────────────────────────┐
│ FastAPI API Layer │
│ ┌───────┐ ┌────────┐ ┌───────┐ ┌────────┐ ┌───────┐ ┌───────────┐ │
│ │ /qa │ │/document│ │/admin │ │/agents │ │/graph │ │ /drawing │ │
│ └───────┘ └────────┘ └───────┘ └────────┘ └───────┘ └───────────┘ │
└─────────────────────────────────┬───────────────────────────────────┘
│
┌─────────────────────────────────▼───────────────────────────────────┐
│ Business Layer │
│ ┌─────────────────────┐ ┌──────────────────┐ ┌────────────────┐ │
│ │ RAG Pipeline │ │ Agent Orchestra │ │ Graph Service │ │
│ │ Query→Retrieve→ │ │ Weekly│Risk│Cost │ │ Entity│Relation│ │
│ │ Rerank→Generate │ │ Progress│Safety │ │ Query│Path │ │
│ └─────────────────────┘ └──────────────────┘ └────────────────┘ │
└─────────────────────────────────┬───────────────────────────────────┘
│
┌─────────────────────────────────▼───────────────────────────────────┐
│ Service Layer │
│ Document │ Embedding │ Retrieval │ LLM │ Cache │ Graph │ Drawing │
└─────────────────────────────────┬───────────────────────────────────┘
│
┌─────────────────────────────────▼───────────────────────────────────┐
│ Infrastructure │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │PostgreSQL│ │ Milvus │ │ Redis │ │ Neo4j │ │ LLM API │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘
enterprise_rag/
├── app/ # 主应用
│ ├── main.py # 项目入口
│ ├── api/v1/ # API 接口层
│ │ ├── qa.py # 问答接口
│ │ ├── document.py # 文档管理接口
│ │ ├── admin.py # 管理接口
│ │ ├── projects.py # 项目管理接口
│ │ ├── drawing.py # 施工图处理接口
│ │ └── graph.py # 知识图谱接口
│ └── schemas/ # Pydantic 模型
│
├── agents/ # Agent 智能分析模块
│ ├── weekly_report_agent.py # 周报生成 Agent
│ ├── risk_agent.py # 风险分析 Agent
│ ├── cost_agent.py # 成本分析 Agent
│ ├── progress_agent.py # 进度分析 Agent
│ ├── safety_agent.py # 安全分析 Agent
│ └── api/v1/agents.py # Agent API 路由
│
├── tools/ # 专业分析工具
│ ├── cost_tools.py # 成本分析工具(8个)
│ ├── progress_tools.py # 进度分析工具(8个)
│ ├── safety_tools.py # 安全分析工具(9个)
│ └── rag_tool.py # RAG 检索工具
│
├── core/ # 核心模块
│ ├── config.py # 配置中心
│ ├── logger.py # 日志管理
│ ├── database.py # 数据库连接
│ ├── constants.py # 全局常量
│ └── security.py # 安全工具
│
├── models/ # 数据模型
│ ├── document.py # 文档模型
│ ├── project.py # 项目模型
│ ├── query.py # 查询模型
│ ├── user.py # 用户模型
│ ├── construction_drawing.py # 施工图模型
│ └── graph_models.py # 图数据模型
│
├── services/ # 核心业务服务
│ ├── document/ # 文档处理子系统
│ │ └── construction_drawing/ # 施工图处理
│ ├── embedding/ # 向量化子系统
│ ├── retrieval/ # 检索子系统
│ │ ├── vector/ # 向量检索
│ │ ├── bm25/ # BM25检索
│ │ ├── hybrid/ # 混合检索
│ │ └── graph/ # 图增强检索
│ ├── llm/ # LLM 子系统
│ ├── cache/ # 缓存子系统
│ ├── graph/ # 知识图谱服务
│ ├── rag/ # RAG Pipeline
│ ├── permission/ # 权限管理
│ └── project_service.py # 项目服务
│
├── repository/ # 数据访问层
│ ├── document_repo.py # 文档 DAO
│ ├── vector_repo.py # 向量 DAO
│ ├── query_log_repo.py # 日志 DAO
│ └── graph_repo.py # 图数据 DAO
│
├── docker/ # Docker 配置
│ └── docker-compose.yml # 一键部署配置
│
├── scripts/ # 辅助脚本
│ ├── init_db.py # 数据库初始化
│ ├── init_milvus.py # Milvus 初始化
│ └── ingest_docs.py # 文档入库
│
├── tests/ # 测试用例
│ ├── test_agents.py # Agent 测试
│ └── test_agents_api.py # API 测试
│
├── docs/ # 项目文档
│ └── DEPLOYMENT_GUIDE.md # 部署指南
│
├── .env # 环境变量配置
├── pyproject.toml # 项目与依赖定义(uv)
└── README.md # 项目说明
Windows / Linux / macOS
Docker & Docker Compose
Python >= 3.9
cd docker
docker-compose up -d
启动服务:PostgreSQL、Milvus、Redis、Etcd、MinIO
# 安装依赖(依赖见 pyproject.toml,uv 自动管理虚拟环境)
uv sync
重型 ML 层(OCR/向量化)按需安装:
uv add torch sentence-transformers paddlepaddle
# 编辑 .env 文件,配置数据库和 LLM API
主要配置项:
POSTGRES_PASSWORD - 数据库密码
OPENAI_API_KEY - LLM API 密钥
OPENAI_API_BASE - LLM API 地址
NEO4J_PASSWORD - 图数据库密码(如使用知识图谱)
python scripts/init_db.py
# 开发模式
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 生产模式
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
详细部署说明请参考 部署指南
Agent
端点
功能
成本分析
POST /api/v1/agents/cost-analysis
CPI计算、超支识别、成本预测
进度分析
POST /api/v1/agents/progress-analysis
SPI计算、延期预警、完工预测
安全分析
POST /api/v1/agents/safety-analysis
合格率、隐患统计、整改计划
风险分析
POST /api/v1/agents/risk-analysis
多维度风险评估
周报生成
POST /api/v1/agents/weekly-report
自动周报生成
# 成本快速检查
GET /api/v1/agents/cost-analysis/{project_id}/quick-check
# 进度快速检查
GET /api/v1/agents/progress-analysis/{project_id}/quick-check
# 安全快速检查
GET /api/v1/agents/safety-analysis/{project_id}/quick-check
# 风险快速扫描
GET /api/v1/agents/risk-analysis/{project_id}/quick-scan
# 项目仪表盘(综合概览)
GET /api/v1/agents/dashboard/{project_id}
import requests
# 成本分析
response = requests .post (
"http://localhost:8000/api/v1/agents/cost-analysis" ,
json = {
"project_id" : "P001" ,
"analysis_months" : 3 ,
"include_prediction" : True
}
)
print (response .json ())
# 项目仪表盘
response = requests .get (
"http://localhost:8000/api/v1/agents/dashboard/P001"
)
print (response .json ())
指标
计算公式
判定标准
CPI (成本绩效指数)
挣值 / 实际成本
>1 节约, <0.9 超支
SPI (进度绩效指数)
挣值 / 计划值
>1 超前, <0.9 滞后
合格率
合格数 / 总检查数
>=95% 良好, <90% 风险
知识图谱模块基于 Neo4j 图数据库,支持从文档和施工图中提取结构化知识,并提供图谱查询和图增强检索能力。
方法
端点
说明
GET
/api/v1/graph/nodes
查询节点
GET
/api/v1/graph/relationships
查询关系
GET
/api/v1/graph/paths
路径查找
GET
/api/v1/graph/stats
图谱统计
方法
端点
说明
POST
/api/v1/drawing/upload
上传施工图
GET
/api/v1/drawing/status
处理状态查询
GET
/api/v1/drawing/entities/{id}
获取提取的实体
类型
说明
Document
文档节点
Drawing
图纸节点
Component
构件节点
Material
材料节点
Specification
规范节点
Dimension
尺寸节点
Location
位置节点
关系
说明
CONTAINS
包含关系
USES_MATERIAL
使用材料
REFERS_TO
引用关系
HAS_DIMENSION
具有尺寸
LOCATED_AT
位于位置
CONNECTED_TO
连接关系
BELONGS_TO
属于关系
模块
前缀
说明
问答
/api/v1/qa
RAG 智能问答
文档
/api/v1/document
文档上传/管理
项目
/api/v1/projects
项目 CRUD
Agent
/api/v1/agents
智能分析
图谱
/api/v1/graph
知识图谱查询
施工图
/api/v1/drawing
施工图处理
管理
/api/v1/admin
系统管理
方法
端点
说明
POST
/agents/weekly-report
生成周报
POST
/agents/risk-analysis
风险分析
GET
/agents/risk-analysis/{id}/quick-scan
快速风险扫描
POST
/agents/cost-analysis
成本分析
GET
/agents/cost-analysis/{id}/quick-check
快速成本检查
POST
/agents/progress-analysis
进度分析
GET
/agents/progress-analysis/{id}/quick-check
快速进度检查
POST
/agents/safety-analysis
安全分析
GET
/agents/safety-analysis/{id}/quick-check
快速安全检查
GET
/agents/dashboard/{id}
项目仪表盘
GET
/agents/workflows
工作流列表
GET
/agents/workflows/{log_id}
工作流详情
用户提问
↓
Query 预处理(分词、意图识别)
↓
混合检索(向量检索 + BM25 + 图增强)
↓
Rerank 精排(Cross-Encoder)
↓
构造 Prompt(仅使用检索内容)
↓
LLM 生成答案
↓
缓存 & 日志记录
关键设计点:
没检索到内容 → 不调用 LLM,明确告知用户
Prompt 明确限制模型不得编造
检索与生成完全解耦,便于扩展 Agent
图增强检索提供更丰富的上下文
# 应用配置
APP_NAME = 筑见 BuildView
DEBUG = false
ENVIRONMENT = production
# PostgreSQL
POSTGRES_HOST = localhost
POSTGRES_PORT = 5432
POSTGRES_USER = rag_user
POSTGRES_PASSWORD = your_secure_password
# Milvus
MILVUS_HOST = localhost
MILVUS_PORT = 19530
# Redis
REDIS_HOST = localhost
REDIS_PORT = 6379
# Neo4j(知识图谱)
NEO4J_URI = bolt://localhost:7687
NEO4J_USER = neo4j
NEO4J_PASSWORD = your_neo4j_password
# LLM
OPENAI_API_KEY = your-api-key
OPENAI_API_BASE = https://api.openai.com/v1
LLM_MODEL = gpt-3.5-turbo
# Embedding
EMBEDDING_MODEL_NAME = BAAI/bge-large-zh-v1.5
服务
端口
说明
FastAPI
8000
API 服务
PostgreSQL
5432
关系数据库
Milvus
19530
向量数据库
Redis
6379
缓存
Neo4j
7687
图数据库
MinIO
9000/9001
对象存储
企业内部知识库
工程 / 运维 / 法律 / 制度问答
私有文档智能检索
项目管理智能分析
施工图纸知识管理
私有化大模型应用
多知识库 / 多租户
SSO / 权限控制
Query 质量评估与自动调优
微调 / RAG 评测闭环
更多 Agent 扩展
流式输出支持
版本
日期
更新内容
v1.2.0
2026-01
新增知识图谱模块、施工图处理、权限管理
v1.1.0
2025
新增 Agent 智能分析模块(成本/进度/安全)
v1.0.0
2025
初始版本,RAG 问答系统
MIT License
Made with by Kerro