Эх сурвалжийг харах

Merge branch 'dev_sgsc_wxm' of CRBC-MaaS-Platform-Project/LQAgentPlatform into dev

WangXuMing 3 өдөр өмнө
parent
commit
b0b50dfc97

+ 1326 - 0
.design/施工方案审查应用/基础架构设计/施工审查应用基础架构设计.md

@@ -0,0 +1,1326 @@
+# LQAgentPlatform 最终架构设计
+
+> **版本**: v3.0
+> **更新日期**: 2026-04-09
+> **项目状态**: 核心功能已实现,生产环境运行中
+> **v2.0→v3.0 变更**: 新增施工方案编写模块、脱敏模块、简化管道、标准匹配、LLM分类器v2、LLM链式客户端框架
+
+---
+
+## 最终架构设计图
+
+```
+┌─────────────────────────────────────────────────────────────────────────────────────┐
+│                         LQAgentPlatform - 实际架构实现 (v2.0)                       │
+├─────────────────────────────────────────────────────────────────────────────────────┤
+│                                                                                     │
+│  ┌───────────────────────────────────────────────────────────────────────────────┐  │
+│  │                           Server Layer (服务器层)                              │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  FastAPI Application (server/app.py)                                    │  │  │
+│  │  │  • RouteManager - 路由管理                                               │  │  │
+│  │  │  • CeleryWorkerManager - 异步任务管理                                     │  │  │
+│  │  │  • ApplicationFactory - 应用工厂                                          │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  └───────────────────────────────────────────────────────────────────────────────┘  │
+│                                        ▲                                            │
+│                                        │ HTTP Request                                │
+│                                        ▼                                            │
+│  ┌───────────────────────────────────────────────────────────────────────────────┐  │
+│  │                            Views Layer (视图层)                               │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  construction_review/ - 施工方案审查API ✅ (已实现)                        │  │  │
+│  │  │  • file_upload.py - 文档上传接口                                          │  │  │
+│  │  │  • launch_review.py - 启动审查接口                                        │  │  │
+│  │  │  • review_results.py - 审查结果接口                                       │  │  │
+│  │  │  • task_control.py - 任务控制接口                                         │  │  │
+│  │  │  • desensitize_api.py - 脱敏API接口 🆕                                   │  │  │
+│  │  │  • schemas/error_schemas.py - 错误模式定义                                │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  construction_write/ - 施工方案编写API ✅ (已实现) 🆕                     │  │  │
+│  │  │  • outline_views.py - 大纲生成接口                                       │  │  │
+│  │  │  • content_completion.py - 内容补全接口                                   │  │  │
+│  │  │  • regenerate_views.py - 重新生成接口                                    │  │  │
+│  │  │  • task_cancel_views.py - 任务取消接口                                   │  │  │
+│  │  │  • similar_plan_recommend.py - 相似方案推荐接口                           │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  test_views.py - 测试接口                                                │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  └───────────────────────────────────────────────────────────────────────────────┘  │
+│                                        ▲                                            │
+│                                        │ 调用业务逻辑                                │
+│                                        ▼                                            │
+│  ┌───────────────────────────────────────────────────────────────────────────────┐  │
+│  │                           Core Layer (核心业务层)                             │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  construction_review/ - 施工方案审查模块 ✅ (已实现)                       │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  workflows/ - 工作流层                                          │    │  │  │
+│  │  │  │  • ai_review_workflow.py - AI审查工作流 (54KB, 核心)             │    │  │  │
+│  │  │  │  • document_workflow.py - 文档处理工作流                         │    │  │  │
+│  │  │  │  • report_workflow.py - 报告生成工作流                           │    │  │  │
+│  │  │  │  • core_functions/ - 核心业务函数 🆕                             │    │  │  │
+│  │  │  │  • types/ - 状态类型定义 (AIReviewState, TaskChainState) 🆕      │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  component/ - 组件层                                            │    │  │  │
+│  │  │  │  • ai_review_engine.py - AI审查引擎 (核心引擎)                   │    │  │  │
+│  │  │  │  • document_processor.py - 文档处理器                            │    │  │  │
+│  │  │  │  • report_generator.py - 报告生成器                              │    │  │  │
+│  │  │  │  • outline_catalogue_matcher.py - 大纲目录匹配器 🆕               │    │  │  │
+│  │  │  │  • constants.py - 常量定义 🆕                                   │    │  │  │
+│  │  │  │  • check_completeness/ - 完整性检查组件                          │    │  │  │
+│  │  │  │  • desensitize/ - 数据脱敏模块 🆕                                │    │  │  │
+│  │  │  │    - engine.py, validator.py, dict_manager.py                   │    │  │  │
+│  │  │  │    - model_client.py, remapper.py                               │    │  │  │
+│  │  │  │    - processors/ (pii, geo, biz, financial)                     │    │  │  │
+│  │  │  │  • doc_worker/ - 文档处理工作器                                  │    │  │  │
+│  │  │  │    - classification/ (chunk, hierarchy, smart_local) 🆕         │    │  │  │
+│  │  │  │    - pdf_worker/ (html_to_markdown) 🆕                          │    │  │  │
+│  │  │  │    - config/ (StandardCategoryTable.csv, prompt.yaml)           │    │  │  │
+│  │  │  │  • minimal_pipeline/ - 简化处理管道 🆕                            │    │  │  │
+│  │  │  │    - ocr_processor.py, pdf_extractor.py                        │    │  │  │
+│  │  │  │    - toc_builder.py, toc_detector.py                           │    │  │  │
+│  │  │  │    - simple_processor.py, chunk_assembler.py                    │    │  │  │
+│  │  │  │  • standard_matching/ - 标准匹配模块 🆕                          │    │  │  │
+│  │  │  │    - standard_dao.py, standard_service.py                      │    │  │  │
+│  │  │  │  • infrastructure/ - 基础设施组件                                │    │  │  │
+│  │  │  │  • reviewers/ - 审查器集合                                       │    │  │  │
+│  │  │  │    - base_reviewer.py - 基础审查器                               │    │  │  │
+│  │  │  │    - completeness_reviewer.py - 完整性审查器                     │    │  │  │
+│  │  │  │    - reference_basis_reviewer.py - 参考依据审查器               │    │  │  │
+│  │  │  │    - standard_timeliness_reviewer.py - 标准时效性审查器 🆕       │    │  │  │
+│  │  │  │    - timeliness_basis_reviewer.py - 时效性审查器                │    │  │  │
+│  │  │  │    - timeliness_content_reviewer.py - 时效性内容审查器 🆕        │    │  │  │
+│  │  │  │    - semantic_logic.py - 语义逻辑审查器                         │    │  │  │
+│  │  │  │    - sensitive_word_check.py - 敏感词检查 🆕                    │    │  │  │
+│  │  │  │    - utils/llm_content_classifier_v2/ - LLM分类器v2 🆕          │    │  │  │
+│  │  │  │    - utils/llm_chain_client/ - LLM链式客户端框架 🆕             │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  construction_write/ - 施工方案编写模块 ✅ (已实现) 🆕                    │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  component/                                                     │    │  │  │
+│  │  │  │  • outline_generator.py - 大纲生成器                             │    │  │  │
+│  │  │  │  • state_models.py - 状态模型                                   │    │  │  │
+│  │  │  │  • prompt/ - 提示词配置                                         │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  workflows/                                                     │    │  │  │
+│  │  │  │  • agent.py - 编写智能体                                        │    │  │  │
+│  │  │  │  • outline_workflow.py - 大纲工作流                              │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  base/ - 基础组件 ✅ (已实现)                                           │  │  │
+│  │  │  • progress_manager.py - 进度管理器                                     │  │  │
+│  │  │  • workflow_manager.py - 工作流管理器                                   │  │  │
+│  │  │  • sse_manager.py - SSE服务器推送事件管理器                             │  │  │
+│  │  │  • redis_duplicate_checker.py - Redis去重检查器                         │  │  │
+│  │  │  • task_models.py - 任务模型定义                                        │  │  │
+│  │  │  • words_detect/ - 敏感词检测模块                                       │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  └───────────────────────────────────────────────────────────────────────────────┘  │
+│                                        ▲                                            │
+│                                        │ 调用基础设施                                │
+│                                        ▼                                            │
+│  ┌───────────────────────────────────────────────────────────────────────────────┐  │
+│  │                        Foundation Layer (基础设施层)                           │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  ai/ - AI模块 ✅ (已实现)                                               │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  agent/ - AI智能体                                              │    │  │  │
+│  │  │  │  • base_agent.py - 智能体基类                                    │    │  │  │
+│  │  │  │  • test_agent.py - 测试智能体                                    │    │  │  │
+│  │  │  │  • generate/ - 生成模块                                          │    │  │  │
+│  │  │  │  • workflow/ - 工作流模块                                        │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  models/ - 模型管理                                              │    │  │  │
+│  │  │  │  • model_handler.py - 多模型管理器                               │    │  │  │
+│  │  │  │  • rerank_model.py - 重排序模型                                  │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  rag/ - RAG检索增强生成                                         │    │  │  │
+│  │  │  │  • retrieval/ - 检索模块                                         │    │  │  │
+│  │  │  │  • query_rewrite.py - 查询重写                                  │    │  │  │
+│  │  │  │  • entities_enhance.py - 实体增强检索                            │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  database/ - 数据库模块 ✅ (已实现)                                    │  │  │
+│  │  │  ┌─────────────────────────────────────────────────────────────────┐    │  │  │
+│  │  │  │  base/ - 数据库基础层                                            │    │  │  │
+│  │  │  │  • kg/ - 知识图谱 (Neo4j)                                       │    │  │  │
+│  │  │  │  • sql/ - SQL数据库 (MySQL/PostgreSQL)                          │    │  │  │
+│  │  │  │  • vector/ - 向量数据库 (Milvus/PG Vector)                       │    │  │  │
+│  │  │  └─────────────────────────────────────────────────────────────────┘    │  │  │
+│  │  │  • models/ - 数据模型定义                                             │  │  │
+│  │  │  • repositories/ - 数据访问层                                        │  │  │
+│  │  │  • migrations/ - 数据库迁移                                           │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  infrastructure/ - 基础设施 ✅ (已实现)                                │  │  │
+│  │  │  • cache/ - 缓存管理 (Redis)                                          │  │  │
+│  │  │  • config/ - 配置管理 (config_handler)                                │  │  │
+│  │  │  • messaging/ - 消息队列 (Celery)                                     │  │  │
+│  │  │  • mysql/ - MySQL连接池                                              │  │  │
+│  │  │  • tracing/ - 链路追踪                                                │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  observability/ - 可观测性 ✅ (已实现)                                │  │  │
+│  │  │  • logger/ - 日志管理                                                 │  │  │
+│  │  │  • metrics/ - 指标收集                                                │  │  │
+│  │  │  • monitoring/ - 监控 (ai_trace_monitor.py, time_statistics.py)       │  │  │
+│  │  │  • monitoring/rag/ - RAG监控 🆕                                       │  │  │
+│  │  │  • cachefiles/ - 缓存文件管理 🆕                                      │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  schemas/ - 数据模式 ✅ (已实现)                                       │  │  │
+│  │  │  utils/ - 工具函数 ✅ (已实现)                                         │  │  │
+│  │  │  • common.py, redis_utils.py, yaml_utils.py, tool_utils.py            │  │  │
+│  │  │  • md5.py - MD5工具 🆕                                                │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  └───────────────────────────────────────────────────────────────────────────────┘  │
+│                                        ▲                                            │
+│                                        │ 数据处理                                    │
+│                                        ▼                                            │
+│  ┌───────────────────────────────────────────────────────────────────────────────┐  │
+│  │                      Data Pipeline Layer (数据管道层)                          │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  document/ - 文档处理 ✅ (部分实现)                                      │  │  │
+│  │  │  • parsers/ - 文档解析器 (PDF, DOCX, OCR)                               │  │  │
+│  │  │  • processors/ - 数据处理器                                             │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  RAG_recall/ - RAG检索 ✅ (已实现)                                      │  │  │
+│  │  │  • rag_miluvs/ - Milvus RAG实现                                        │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  │  ┌─────────────────────────────────────────────────────────────────────────┐  │  │
+│  │  │  milvus_inbound_script/ - Milvus入库脚本                                │  │  │
+│  │  │  training_data/ - 训练数据处理                                          │  │  │
+│  │  └─────────────────────────────────────────────────────────────────────────┘  │  │
+│  └───────────────────────────────────────────────────────────────────────────────┘  │
+│                                        ▲                                            │
+│                                        │ 数据存储                                    │
+│                                        ▼                                            │
+│  ┌───────────────────────────────────────────────────────────────────────────────┐  │
+│  │                    External Services (外部服务)                                │  │
+│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐           │  │
+│  │  │   MySQL     │  │   Milvus    │  │   Redis     │  │   Neo4j     │           │  │
+│  │  │  关系数据库   │  │  向量数据库   │  │   缓存      │  │  知识图谱    │           │  │
+│  │  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘           │  │
+│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐                          │  │
+│  │  │   AI Models │  │   MinerU    │  │   Langfuse  │                          │  │
+│  │  │  本地/云端   │  │   OCR服务   │  │   监控系统   │                          │  │
+│  │  └─────────────┘  └─────────────┘  └─────────────┘                          │  │
+│  └───────────────────────────────────────────────────────────────────────────────┘  │
+│                                                                                     │
+└─────────────────────────────────────────────────────────────────────────────────────┘
+```
+
+---
+
+## 实际目录结构
+
+```
+LQAgentPlatform/
+├── server/                          # 服务器层 ✅
+│   └── app.py                      # FastAPI应用入口
+│
+├── views/                           # 视图层 (API接口) ✅
+│   ├── __init__.py                 # Lifespan管理(敏感词初始化、DB连接池)
+│   ├── construction_review/         # 施工方案审查API ✅
+│   │   ├── file_upload.py          # 文档上传接口
+│   │   ├── launch_review.py        # 启动审查接口
+│   │   ├── review_results.py       # 审查结果接口
+│   │   ├── task_control.py         # 任务控制接口
+│   │   ├── desensitize_api.py      # 脱敏API接口 🆕
+│   │   └── schemas/
+│   │       └── error_schemas.py    # 错误模式定义
+│   ├── construction_write/          # 施工方案编写API ✅ 🆕
+│   │   ├── outline_views.py        # 大纲生成接口
+│   │   ├── content_completion.py   # 内容补全接口
+│   │   ├── regenerate_views.py     # 重新生成接口
+│   │   ├── task_cancel_views.py    # 任务取消接口
+│   │   └── similar_plan_recommend.py # 相似方案推荐接口
+│   └── test_views.py               # 测试接口
+│
+├── core/                            # 核心业务层 ✅
+│   ├── base/                       # 基础组件 ✅
+│   │   ├── progress_manager.py     # 进度管理器
+│   │   ├── workflow_manager.py     # 工作流管理器
+│   │   ├── sse_manager.py          # SSE推送管理
+│   │   ├── redis_duplicate_checker.py  # Redis去重
+│   │   ├── task_models.py          # 任务模型
+│   │   └── words_detect/           # 敏感词检测
+│   │
+│   ├── construction_review/        # 施工方案审查模块 ✅
+│   │   ├── workflows/              # 工作流层 ✅
+│   │   │   ├── ai_review_workflow.py       # AI审查工作流 (核心)
+│   │   │   ├── document_workflow.py        # 文档工作流
+│   │   │   ├── report_workflow.py          # 报告工作流
+│   │   │   ├── core_functions/             # 核心业务函数 🆕
+│   │   │   │   └── ai_review_core_fun.py   # AI审查核心逻辑
+│   │   │   └── types/                      # 状态类型 🆕
+│   │   │       └── __init__.py             # AIReviewState, TaskChainState
+│   │   │
+│   │   └── component/              # 组件层 ✅
+│   │       ├── ai_review_engine.py          # AI审查引擎 (核心)
+│   │       ├── document_processor.py        # 文档处理器
+│   │       ├── report_generator.py          # 报告生成器
+│   │       ├── outline_catalogue_matcher.py # 大纲目录匹配器 🆕
+│   │       ├── constants.py                 # 常量定义 🆕
+│   │       │
+│   │       ├── desensitize/                 # 数据脱敏模块 🆕
+│   │       │   ├── engine.py                # 脱敏引擎核心
+│   │       │   ├── validator.py             # 黑白名单校验
+│   │       │   ├── dict_manager.py          # 脱敏词典管理
+│   │       │   ├── model_client.py          # 本地LLM脱敏客户端
+│   │       │   ├── remapper.py              # 审查结果反向映射
+│   │       │   └── processors/              # 四维度处理器
+│   │       │       ├── base_processor.py    # 基础处理器
+│   │       │       ├── pii_processor.py     # 个人信息 (姓名/电话/身份证)
+│   │       │       ├── geo_processor.py     # 地理位置 (桩号/位置/高程)
+│   │       │       ├── biz_processor.py     # 业务信息 (公司/项目名称)
+│   │       │       └── financial_processor.py # 财务信息 (金额/价格)
+│   │       │
+│   │       ├── doc_worker/                  # 文档处理工作器
+│   │       │   ├── interfaces.py            # 数据接口/契约
+│   │       │   ├── classification/          # 内容分类 🆕
+│   │       │   │   ├── chunk_classifier.py  # 分块分类器
+│   │       │   │   ├── hierarchy_classifier.py # 层级分类器
+│   │       │   │   └── smart_local_classifier.py # 智能本地分类
+│   │       │   ├── pdf_worker/              # PDF处理 🆕
+│   │       │   │   └── html_to_markdown.py  # HTML转Markdown
+│   │       │   ├── config/                  # 配置
+│   │       │   │   ├── StandardCategoryTable.csv # 分类标准表
+│   │       │   │   ├── prompt.yaml          # LLM提示词
+│   │       │   │   └── config.yaml
+│   │       │   ├── models/                  # 数据模型
+│   │       │   │   ├── document_structure.py # 文档结构模型
+│   │       │   │   └── converters.py        # 模型转换器
+│   │       │   └── utils/
+│   │       │       ├── text_split_support.py # 文本切分支持
+│   │       │       └── prompt_loader.py     # 提示词加载
+│   │       │
+│   │       ├── minimal_pipeline/            # 简化处理管道 🆕
+│   │       │   ├── simple_processor.py      # 简化处理器
+│   │       │   ├── ocr_processor.py         # OCR处理(解耦模块)
+│   │       │   ├── pdf_extractor.py         # PDF提取
+│   │       │   ├── chunk_assembler.py       # 分块组装器
+│   │       │   ├── catalog_reviewer.py      # 目录审查
+│   │       │   ├── toc_builder.py           # 目录构建器
+│   │       │   └── toc_detector.py          # 目录检测器
+│   │       │
+│   │       ├── standard_matching/           # 标准匹配模块 🆕
+│   │       │   ├── standard_dao.py          # 标准数据访问
+│   │       │   └── standard_service.py      # 标准匹配服务
+│   │       │
+│   │       ├── infrastructure/              # 基础设施组件
+│   │       │   ├── milvus.py                # Milvus向量库客户端
+│   │       │   ├── parent_tool.py           # 父块工具
+│   │       │   └── relevance.py             # 相关性评分
+│   │       │
+│   │       ├── check_completeness/          # 完整性检查
+│   │       │   └── components/
+│   │       │       └── result_analyzer.py   # 结果分析器
+│   │       │
+│   │       ├── report/                      # 报告生成
+│   │       │   └── prompt/
+│   │       │       └── report_reviewers.yaml
+│   │       │
+│   │       └── reviewers/                   # 审查器集合 ✅
+│   │           ├── base_reviewer.py         # 基础审查器
+│   │           ├── completeness_reviewer.py # 完整性审查器
+│   │           ├── reference_basis_reviewer.py # 参考依据审查
+│   │           ├── standard_timeliness_reviewer.py # 标准时效性审查 🆕
+│   │           ├── timeliness_basis_reviewer.py  # 时效性审查
+│   │           ├── timeliness_content_reviewer.py # 时效性内容审查 🆕
+│   │           ├── semantic_logic.py        # 语义逻辑审查
+│   │           ├── sensitive_word_check.py  # 敏感词检查 🆕
+│   │           ├── check_completeness/
+│   │           │   └── components/
+│   │           │       └── result_analyzer.py
+│   │           ├── prompt/                  # 审查器提示词
+│   │           │   ├── ai_suggestion.yaml
+│   │           │   ├── basic_reviewers.yaml
+│   │           │   ├── outline_reviewers.yaml
+│   │           │   ├── query_extract.yaml
+│   │           │   ├── rag_reviewers.yaml
+│   │           │   ├── reference_basis_reviewer.yaml
+│   │           │   ├── technical_reviewers.yaml
+│   │           │   └── timeliness_basis_reviewer.yaml
+│   │           ├── sensitive_words/         # 敏感词词典
+│   │           └── utils/                   # 审查工具函数
+│   │               ├── ac_automaton.py      # AC自动机
+│   │               ├── directory_extraction.py
+│   │               ├── llm_content_classifier_v2/ # LLM分类器v2 🆕
+│   │               │   ├── main_classifier.py    # 主入口
+│   │               │   ├── content_classifier.py # 核心分类逻辑
+│   │               │   ├── category_loaders.py   # 分类加载器
+│   │               │   ├── chunks_converter.py   # 分块转换
+│   │               │   ├── models.py             # 数据模型
+│   │               │   ├── prompt.py             # 分类提示词
+│   │               │   └── embedding_client.py   # Embedding客户端
+│   │               └── llm_chain_client/          # LLM链式客户端框架 🆕
+│   │                   ├── bootstrap.py           # 客户端工厂
+│   │                   ├── interfaces/            # 接口定义
+│   │                   │   ├── chain_executor.py
+│   │                   │   ├── llm_client.py
+│   │                   │   └── prompt_loader.py
+│   │                   ├── implementations/       # 实现
+│   │                   │   ├── chains/async_chain_executor.py
+│   │                   │   ├── clients/ (base, deepseek, doubao, gemini, qwen)
+│   │                   │   └── loaders/yaml_prompt_loader.py
+│   │                   └── orchestration/prompt_chain_processor.py
+│   │
+│   └── construction_write/          # 施工方案编写模块 ✅ 🆕
+│       ├── component/
+│       │   ├── outline_generator.py # 大纲生成器
+│       │   ├── state_models.py      # 状态模型
+│       │   └── prompt/
+│       │       └── keyword_rules_3.json # 关键字规则
+│       └── workflows/
+│           ├── agent.py             # 编写智能体
+│           └── outline_workflow.py  # 大纲工作流
+│
+├── foundation/                      # 基础设施层 ✅
+│   ├── ai/                         # AI模块 ✅
+│   │   ├── agent/                  # AI智能体
+│   │   │   └── generate/           # 生成模块
+│   │   │       └── model_generate.py
+│   │   ├── models/                 # 模型管理 ✅
+│   │   │   ├── model_handler.py    # 多模型管理器
+│   │   │   ├── model_config_loader.py # 模型配置加载器 🆕
+│   │   │   └── rerank_model.py     # 重排序模型
+│   │   └── rag/                    # RAG检索增强 ✅
+│   │       └── retrieval/          # 检索模块
+│   │           ├── query_rewrite.py         # 查询重写
+│   │           ├── retrieval.py             # 检索管理器
+│   │           └── entities_enhance.py      # 实体增强检索
+│   │
+│   ├── database/                   # 数据库模块 ✅
+│   │   ├── base/                   # 数据库基础层
+│   │   │   ├── kg/                 # 知识图谱 (Neo4j)
+│   │   │   ├── sql/                # SQL数据库 (MySQL/PostgreSQL)
+│   │   │   └── vector/             # 向量数据库
+│   │   ├── models/                 # 数据模型定义 ✅
+│   │   ├── repositories/           # 数据访问层 ✅
+│   │   └── migrations/             # 数据库迁移
+│   │
+│   ├── infrastructure/             # 基础设施 ✅
+│   │   ├── cache/                  # 缓存管理 (Redis)
+│   │   ├── config/                 # 配置管理 ✅
+│   │   │   └── config.py           # config_handler
+│   │   ├── messaging/              # 消息队列 (Celery) ✅
+│   │   ├── mysql/                  # MySQL连接池 ✅
+│   │   └── tracing/                # 链路追踪 ✅
+│   │
+│   ├── observability/              # 可观测性 ✅
+│   │   ├── logger/                 # 日志管理
+│   │   ├── metrics/                # 指标收集
+│   │   ├── monitoring/             # 监控 ✅
+│   │   │   ├── ai_trace_monitor.py # AI追踪监控
+│   │   │   ├── time_statistics.py  # 时间统计
+│   │   │   └── rag/                # RAG监控 🆕
+│   │   └── cachefiles/             # 缓存文件管理 🆕
+│   │
+│   ├── schemas/                    # 数据模式 ✅
+│   └── utils/                      # 工具函数 ✅
+│       ├── common.py
+│       ├── redis_utils.py
+│       ├── yaml_utils.py
+│       ├── tool_utils.py
+│       └── md5.py                  # MD5工具 🆕
+│
+├── data_pipeline/                  # 数据管道层 ✅
+│   ├── document/                   # 文档处理
+│   │   ├── parsers/               # 文档解析器
+│   │   └── processors/            # 数据处理器
+│   ├── RAG_recall/                # RAG检索 ✅
+│   │   └── rag_miluvs/            # Milvus RAG实现
+│   ├── milvus_inbound_script/     # Milvus入库脚本
+│   └── training_data/             # 训练数据处理
+│
+├── config/                         # 配置文件 ✅
+│   ├── config.ini                 # 主配置文件 (模型/数据库/Redis)
+│   ├── config.ini.template        # 配置模板
+│   ├── model_setting.yaml         # 模型设置 🆕
+│   ├── prompt/                    # 提示词配置 ✅
+│   │   ├── system_prompt.yaml
+│   │   └── intent_prompt.yaml
+│   ├── sql/                       # SQL脚本
+│   └── yolo/                      # YOLO模型 🆕
+│       └── best.pt
+│
+├── utils_test/                    # 测试工具集
+│   ├── AI_Review_Test/           # AI审查测试
+│   ├── API_key/                  # API密钥生成 🆕
+│   ├── Check_Item/               # 审查项测试 🆕
+│   ├── Chunk_Split_Test/         # 分块切分测试 🆕
+│   ├── Completeness_Enhanced_Test/ # 增强完整性测试 🆕
+│   ├── Completeness_Test/         # 完整性测试 🆕
+│   ├── Integration_Test/         # 集成测试
+│   ├── Milvus_Test/              # Milvus测试
+│   ├── MinerU_Test/              # MinerU测试
+│   ├── Model_Test/               # 模型测试
+│   ├── Other_Test/               # 其他测试 🆕
+│   ├── Prompt_Test/              # 提示词测试 🆕
+│   ├── RAG_Test/                 # RAG测试 🆕
+│   ├── RE_Rrank_Test/            # 重排序测试 🆕
+│   ├── Redis/                    # Redis哨兵测试 🆕
+│   ├── Redis_Test/               # Redis测试
+│   ├── Result_Visual_Observation_Tools/ # 结果可视化 🆕
+│   ├── Semantic_Logic_Test/      # 语义逻辑测试
+│   ├── Sensitive_Test/           # 敏感词测试
+│   ├── standard_new_Test/        # 新标准测试 🆕
+│   └── Sync_Funcation_Test/      # 同步函数测试
+│
+├── docker/                        # Docker配置
+├── .design/                       # 设计文档
+│   ├── 施工方案编写应用/           # 编写应用设计 🆕
+│   └── 施工方案审查应用/           # 审查应用设计
+│       ├── base_stage/           # 基础阶段设计
+│       ├── Iterative_stage/      # 迭代阶段设计
+│       ├── technical_rehearsal/  # 技术预演
+│       ├── 基础架构设计/          # 架构设计
+│       ├── 施工方案审查API架构设计/ # API架构设计
+│       ├── 完整性审查模块/        # 完整性审查设计
+│       └── 文档处理模块/          # 文档处理设计
+│
+├── .RaD/                          # 研发文档 🆕
+│
+├── logs/                          # 日志目录
+├── README.md                      # 项目说明
+├── README_deploy.md               # 部署说明 🆕
+├── README_test.md                 # 测试说明 🆕
+├── requirements.txt               # 依赖清单
+├── gunicorn_config.py            # Gunicorn配置
+├── run.sh                        # 启动脚本
+└── Dockerfile                    # Docker镜像
+```
+
+---
+
+## 技术栈清单
+
+### Web框架
+- **FastAPI** - 现代化异步Web框架
+- **Uvicorn** - ASGI服务器
+
+### AI框架
+- **LangChain** - LLM应用开发框架
+- **LangGraph** - 工作流编排引擎
+
+### 数据库
+- **MySQL** - 关系型数据库 (主存储) (保留基础组件,暂未使用)
+- **Milvus** - 向量数据库 (RAG检索)
+- **PostgreSQL** - 备选关系型数据库(保留基础组件,暂未使用)
+- **Neo4j** - 知识图谱数据库(保留基础组件,暂未使用)
+
+### 缓存/消息队列
+- **Redis** - 缓存 + 分布式锁
+- **Celery** - 异步任务队列
+
+### 模型支持
+#### 本地模型
+- **lq_qwen3_8b** - Qwen3-8B (默认模型)
+- **lq_qwen3_4b** - Qwen3-4B
+- **lq_qwen3_8b_emd** - Qwen3-8B Embedding
+- **lq_rerank_model** - Qwen3-Reranker-8B
+
+#### 云端模型
+- **豆包 (Doubao)** - 字节跳动模型
+- **通义千问 (Qwen)** - 阿里云模型
+- **DeepSeek** - DeepSeek模型
+- **Gemini** - Google模型
+- **SiliconFlow** - 硅基流动模型
+
+### OCR服务
+- **MinerU** - 文档OCR识别 (集成中)
+
+
+---
+
+
+
+## API接口清单
+
+### 施工方案审查API
+
+#### 文档上传
+- `POST /construction/upload` - 上传待审查文档
+
+#### 审查控制
+- `POST /sgsc/sse/launch_review` - 启动审查任务(SSE流式)
+- `GET /construction/review/results` - 查询审查结果
+
+#### 任务控制
+- `POST /construction/task/terminate` - 终止审查任务
+
+#### 数据脱敏
+- 脱敏API接口 (desensitize_api.py)
+
+### 施工方案编写API 🆕
+
+#### 大纲生成
+- 大纲生成与工作流接口 (outline_views.py)
+
+#### 内容编写
+- 内容补全接口 (content_completion.py)
+- 重新生成接口 (regenerate_views.py)
+- 任务取消接口 (task_cancel_views.py)
+
+#### 方案推荐
+- 相似方案推荐接口 (similar_plan_recommend.py)
+
+---
+
+## 数据流向图
+
+```
+┌──────────────┐
+│  用户上传文档  │
+└──────┬───────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  Views Layer (file_upload.py)                                 │
+│  • 接收文件                                                    │
+│  • 文件验证                                                    │
+│  • 创建任务                                                    │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  Core Layer - Document Workflow                              │
+│  • 文档解析 (PDF/DOCX)                                        │
+│  • 结构提取                                                   │
+│  • 分块处理                                                   │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  Database Layer                                              │
+│  • Redis - 存储文档元数据                                      │
+│  • Milvus - 向量存储                                          │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  Core Layer - AI Review Workflow                             │
+│  • AI审查引擎 (construction_review/ai_review_engine.py)                          │
+│  • 多种审查器并行执行                                          │
+│  • RAG检索增强                                                │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  Foundation Layer - AI模块                                    │
+│  • 模型调用 (model_handler.py)                               │
+│  • RAG检索 (retrieval/)                                      │
+│  • 查询重写                                                   │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  External Services                                           │
+│  • AI模型 (本地/云端)                                         │
+│  • Milvus向量检索                                            │
+│  • Redis缓存                                                 │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────────────────────────────────────────────────┐
+│  结果处理                                                     │
+│  • 报告生成 (report_generator.py)                            │
+│  • SSE推送进度                                                │
+│  • 结果存储                                                   │
+└──────┬───────────────────────────────────────────────────────┘
+       ▼
+┌──────────────────┐
+│  返回审查结果     │
+└──────────────────┘
+```
+
+---
+
+## 各层职责说明
+
+### 1. Server Layer (服务器层)
+**职责**: FastAPI应用管理、路由配置、Celery任务管理
+**实现**:
+- `RouteManager` - 路由配置和中间件
+- `CeleryWorkerManager` - Celery Worker生命周期管理
+- `ApplicationFactory` - 应用工厂模式
+
+### 2. Views Layer (视图层)
+**职责**: HTTP API接口、请求处理、响应格式化
+**实现**:
+- **construction_review/** - 审查API (上传、审查启动、结果查询、任务控制、脱敏)
+- **construction_write/** 🆕 - 编写API (大纲生成、内容补全、重新生成、方案推荐)
+
+### 3. Core Layer (核心业务层)
+**职责**: 业务逻辑编排、应用状态管理、工作流协调
+**实现**:
+- **construction_review/** - 施工方案审查模块
+  - **workflows/** - 基于LangGraph的工作流编排
+  - **workflows/core_functions/** 🆕 - AI审查核心业务函数
+  - **workflows/types/** 🆕 - 状态类型定义 (AIReviewState, TaskChainState)
+  - **component/** - 可复用的业务组件
+  - **component/desensitize/** 🆕 - 四维度数据脱敏 (PII/地理/业务/财务)
+  - **component/minimal_pipeline/** 🆕 - 简化处理管道 (PDF提取/OCR/目录)
+  - **component/standard_matching/** 🆕 - 标准规范匹配服务
+  - **component/doc_worker/classification/** 🆕 - 智能内容分类 (分块/层级/本地)
+  - **component/reviewers/** - 专门化的审查器集合
+  - **component/reviewers/utils/llm_content_classifier_v2/** 🆕 - LLM驱动的内容分类器
+  - **component/reviewers/utils/llm_chain_client/** 🆕 - 多厂商LLM链式调用框架
+- **construction_write/** 🆕 - 施工方案编写模块
+  - **component/** - 大纲生成器、状态模型
+  - **workflows/** - 编写智能体、大纲工作流
+
+### 4. Foundation Layer (基础设施层-办公应用智能体可复用的基础组件)
+**职责**: 基础设施、通用组件、外部服务集成
+**实现**:
+- **ai/** - AI模型管理、RAG检索
+- **database/** - 多数据库支持
+- **infrastructure/** - 缓存、配置、消息队列
+- **observability/** - 日志、监控、指标
+
+### 5. Data Pipeline Layer (离线数据管道层,不与在线流程集成)
+**职责**: 数据处理、格式转换、内容解析
+**实现**: 文档解析器、数据处理器、向量入库
+
+---
+
+## 配置管理结构
+
+### config.ini 主要配置项
+
+```ini
+见源代码中的config/config.ini
+
+---
+
+## 系统启动流程详解
+
+### 1. 应用启动入口 (server/app.py)
+
+#### 启动类架构
+```
+ApplicationFactory (应用工厂)
+├── create_app()              # 创建FastAPI应用实例
+├── create_server_config()    # 创建服务器配置
+└── celery_manager           # CeleryWorkerManager实例
+
+RouteManager (路由管理器)
+├── _setup_cors()            # 配置CORS中间件
+├── _setup_routes()          # 配置所有路由
+├── _setup_exception_handlers() # 全局异常处理
+├── _setup_health_checks()   # 健康检查接口
+└── _setup_api_docs()        # Swagger API文档
+
+CeleryWorkerManager (Celery Worker管理器)
+├── start_worker()           # 启动Celery Worker(后台线程)
+├── stop_worker()            # 优雅停止Worker
+├── stop_worker_immediately() # 立即停止Worker
+└── _cleanup_redis_tasks()   # 清理Redis任务
+
+ServerRunner (服务器运行器)
+└── run_server()             # 运行Uvicorn服务器
+```
+
+#### 启动流程
+```
+1. python server/app.py (主入口)
+   ↓
+2. 创建ApplicationFactory实例
+   ↓
+3. 初始化RouteManager配置路由
+   - 添加CORS中间件
+   - 注册所有API路由
+   - 配置全局异常处理
+   - 设置健康检查接口
+   ↓
+4. 启动CeleryWorkerManager(后台线程)
+   - 清理Redis残留任务
+   - 在独立线程中运行celery_app.worker_main(['worker'])
+   - 等待2秒确保启动成功
+   ↓
+5. 配置信号处理器
+   - SIGINT (Ctrl+C)
+   - SIGTERM (终止信号)
+   - Windows控制台事件(Ctrl_CLOSE_EVENT等)
+   ↓
+6. 启动Uvicorn服务器
+   - host: 0.0.0.0 (可配置)
+   - port: 8002 (可配置)
+   - 加载FastAPI应用
+   ↓
+7. 服务运行中...
+   ↓
+8. 收到停止信号时
+   - 停止Celery Worker
+   - 清理Redis任务
+   - 关闭事件循环
+```
+
+#### 关键配置项
+```ini
+[launch]
+HOST = 0.0.0.0              # 监听地址
+LAUNCH_PORT = 8002          # 监听端口
+
+[redis]
+REDIS_HOST=127.0.0.1        # Redis主机
+REDIS_PORT=6379             # Redis端口
+REDIS_DB=0                  # Redis数据库
+REDIS_PASSWORD=123456       # Redis密码
+```
+
+---
+
+## 任务提交流程详解
+
+### 1. 完整任务流程架构
+
+```
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│                           任务提交与执行完整流程                                   │
+└─────────────────────────────────────────────────────────────────────────────────┘
+
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│ 步骤1: 文件上传 (views/construction_review/file_upload.py)                      │
+│  POST /construction/upload                                                      │
+│  • 接收PDF文件上传                                                               │
+│  • 生成file_id和callback_task_id                                                │
+│  • 保存文件内容到Redis                                                           │
+│  • 返回callback_task_id给前端                                                    │
+└─────────────────────────────────────────────────────────────────────────────────┘
+                                    ↓
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│ 步骤2: 启动审查 (views/construction_review/launch_review.py)                    │
+│  POST /sgsc/sse/launch_review                                                   │
+│  • 验证用户权限和参数                                                            │
+│  • 建立SSE连接                                                                   │
+│  • 调用WorkflowManager.submit_task_processing()                                  │
+└─────────────────────────────────────────────────────────────────────────────────┘
+                                    ↓
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│ 步骤3: 提交到Celery (core/base/workflow_manager.py)                             │
+│  WorkflowManager.submit_task_processing()                                       │
+│  • 使用CeleryTraceManager提交任务                                               │
+│  • 自动传递trace_id用于链路追踪                                                  │
+│  • 任务进入Redis队列                                                             │
+└─────────────────────────────────────────────────────────────────────────────────┘
+                                    ↓
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│ 步骤4: Celery Worker执行 (foundation/infrastructure/messaging/tasks.py)        │
+│  submit_task_processing_task()                                                  │
+│  • 从队列获取任务                                                                │
+│  • 恢复trace_id上下文                                                            │
+│  • 调用WorkflowManager.submit_task_processing_sync()                             │
+└─────────────────────────────────────────────────────────────────────────────────┘
+                                    ↓
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│ 步骤5: LangGraph任务链执行 (core/base/workflow_manager.py)                      │
+│  submit_task_processing_sync()                                                  │
+│  • 创建TaskFileInfo对象                                                          │
+│  • 创建TaskChainState初始状态                                                    │
+│  • 构建LangGraph任务链工作流图                                                   │
+│  • 执行ainvoke()运行工作流                                                       │
+└─────────────────────────────────────────────────────────────────────────────────┘
+                                    ↓
+┌─────────────────────────────────────────────────────────────────────────────────┐
+│                    LangGraph任务链工作流(方案D)                                │
+│  ┌─────────────────────────────────────────────────────────────────────────┐   │
+│  │ start → document_processing → ai_review_subgraph → report_generation →  │   │
+│  │        complete                                                          │   │
+│  └─────────────────────────────────────────────────────────────────────────┘   │
+│           每个阶段后检查终止信号:                                              │
+│           - terminate: 进入终止节点                                            │
+│           - error: 进入错误处理节点                                            │
+│           - continue: 继续下一阶段                                             │
+└─────────────────────────────────────────────────────────────────────────────────┘
+```
+
+### 2. LangGraph任务链节点详解
+
+#### 节点1: start (任务链开始)
+```python
+async def _start_chain_node(state: TaskChainState) -> TaskChainState:
+    """
+    初始化任务链状态
+    - current_stage: "start"
+    - overall_task_status: "processing"
+    - stage_status: 所有阶段初始化为"pending"
+    """
+```
+
+#### 节点2: document_processing (文档处理)
+```python
+async def _document_processing_node(state: TaskChainState) -> TaskChainState:
+    """
+    执行文档处理工作流
+    - 检查终止信号
+    - 创建DocumentWorkflow实例
+    - 调用document_workflow.execute()
+    - 返回结构化内容
+    - stage_status["document"]: "completed"/"terminated"/"failed"
+    """
+```
+
+#### 节点3: ai_review_subgraph (AI审查)
+```python
+async def _ai_review_subgraph_node(state: TaskChainState) -> TaskChainState:
+    """
+    执行AI审查工作流(嵌套子图)
+    - 检查终止信号
+    - 获取文档处理结果中的structured_content
+    - 创建AIReviewWorkflow实例
+    - 调用ai_workflow.execute()
+    - 返回审查结果
+    - stage_status["ai_review"]: "completed"/"terminated"/"failed"
+    """
+```
+
+#### 节点4: report_generation (报告生成)
+```python
+async def _report_generation_node(state: TaskChainState) -> TaskChainState:
+    """
+    生成审查报告
+    - 检查终止信号
+    - 获取AI审查结果
+    - 创建ReportWorkflow实例
+    - 调用report_workflow.execute()
+    - 保存完整结果到文件
+    - stage_status["report"]: "completed"/"terminated"/"failed"
+    """
+```
+
+#### 节点5: complete (任务完成)
+```python
+async def _complete_chain_node(state: TaskChainState) -> TaskChainState:
+    """
+    标记整体任务完成
+    - overall_task_status: "completed" ⚠️ 只有到这里才标记完成
+    - 清理Redis文件缓存
+    - 通知SSE连接
+    """
+```
+
+#### 节点6: error_handler (错误处理)
+```python
+async def _error_handler_chain_node(state: TaskChainState) -> TaskChainState:
+    """
+    处理任务链错误
+    - overall_task_status: "failed"
+    - 清理Redis文件缓存
+    - 通知SSE连接失败状态
+    """
+```
+
+#### 节点7: terminate (任务终止)
+```python
+async def _terminate_chain_node(state: TaskChainState) -> TaskChainState:
+    """
+    处理任务终止
+    - overall_task_status: "terminated"
+    - 清理Redis终止信号
+    - 清理Redis文件缓存
+    - 通知SSE连接终止状态
+    """
+```
+
+### 3. 条件边判断逻辑
+
+```python
+def _should_terminate_or_error_chain(state: TaskChainState) -> str:
+    """
+    决定工作流下一步走向
+    优先级:terminate > error > continue
+    """
+    # 1. 优先检查终止信号
+    if state.get("overall_task_status") == "terminated":
+        return "terminate"
+
+    # 2. 检查错误状态
+    if state.get("overall_task_status") == "failed" or state.get("error_message"):
+        return "error"
+
+    # 3. 默认继续执行
+    return "continue"
+```
+
+---
+
+## 审查逻辑详解
+
+### 1. AI审查引擎架构 (core/construction_review/component/construction_review/ai_review_engine.py)
+
+```
+AIReviewEngine (审查引擎核心)
+├── 基础合规性检查
+│   ├── check_grammar()              # 词句语法检查
+│   ├── check_semantic_logic()       # 语义逻辑检查
+│   ├── check_completeness()         # 完整性检查
+│   ├── check_timeliness()           # 时效性检查
+│   └── check_reference()            # 规范性检查
+│
+├── 技术性合规检查
+│   ├── check_non_parameter_compliance()  # 非参数合规性检查
+│   └── check_parameter_compliance()      # 参数合规性检查
+│
+├── RAG增强审查
+│   ├── vector_search()              # 向量检索
+│   ├── hybrid_search()              # 混合检索
+│   ├── rerank_results()             # 重排序结果
+│   └── generate_enhanced_suggestions() # 生成增强建议
+│
+└── 专业性审查
+    ├── prep_basis_review()          # 编制依据审查
+    ├── outline_review_results_df()  # 目录审查
+    └── catalogues_check()           # 章节审查
+```
+
+### 2. 审查配置与模式
+
+#### 审查配置参数
+```python
+# 方式1: review_config (审查维度枚举值)
+review_config = [
+    'sensitive_word_check',       # 词句语法检查
+    'semantic_logic_check',       # 语义逻辑审查
+    'completeness_check',         # 条文完整性审查
+    'timeliness_check',           # 时效性审查
+    'reference_check',            # 规范性审查
+    'sensitive_check',            # 敏感词审查
+    'non_parameter_compliance_check',  # 非参数合规性检查
+    'parameter_compliance_check', # 参数合规性检查
+]
+
+# 方式2: review_item_config (章节_审查维度格式)
+review_item_config = [
+    'basis_sensitive_word_check',     # 编制依据章节-词句语法检查
+    'plan_semantic_logic_check',      # 施工计划章节-语义逻辑审查
+    'catalogue_completeness_check',   # 目录章节-完整性检查(特殊规则)
+]
+```
+
+#### 审查模式配置
+```ini
+[ai_review]
+MAX_REVIEW_UNITS=5          # 最大审查单元数量(0=全部审查)
+REVIEW_MODE=all             # 审查模式: all/random/first
+```
+
+#### 工程方案类型
+```python
+supported_types = {
+    '01_pf_Found_Rotary_Drill',  # 旋挖钻机、冲击钻机成孔桩
+    '02_pf_Dig_Manual_Pile',     # 人工挖孔桩
+    '03_bd_Sub_Cyl_Pier',        # 圆柱墩、系梁、盖梁
+    # ... 共13种工程方案类型
+}
+```
+
+### 3. AI审查工作流 (core/construction_review/component/workflows/ai_review_workflow.py)
+
+```
+AIReviewWorkflow (基于LangGraph的审查工作流)
+├── 构建审查子图
+│   ├── 添加审查节点(每种审查类型一个节点)
+│   ├── 设置节点间转换关系
+│   └── 编译为可执行图
+│
+├── 审查节点类型
+│   ├── 单元级审查节点
+│   │   ├── 文档分块
+│   │   ├── 并发执行各类审查器
+│   │   ├── 汇总审查结果
+│   │   └── 计算风险等级
+│   │
+│   └── 章节级审查节点
+│       ├── 提取章节内容
+│       ├── 执行章节特定审查
+│       └── 生成章节审查结果
+│
+└── 审查器集合 (reviewers/)
+    ├── base_reviewer.py         # 基础审查器
+    ├── check_completeness/      # 完整性检查组件
+    ├── catalogues_check/        # 目录审查组件
+    └── utils/                   # 审查工具函数
+```
+
+### 4. RAG检索增强流程
+
+```
+RAG检索增强
+│
+├── 1. 查询重写 (query_rewrite_manager)
+│   └── 优化原始查询以提高检索质量
+│
+├── 2. 实体增强 (entity_enhance)
+│   └── 识别文档实体并增强查询
+│
+├── 3. 向量检索 (MilvusManager)
+│   ├── vector_search()         # 纯向量检索
+│   └── hybrid_search()         # 混合检索(向量+关键词)
+│
+├── 4. 父块召回 (enhance_with_parent_docs_grouped)
+│   └── 返回父块上下文信息
+│
+└── 5. 重排序 (rerank_results)
+    └── 使用Rerank模型优化结果排序
+```
+
+### 5. 审查结果数据结构
+
+```python
+{
+    "callback_task_id": "file_id-timestamp",
+    "file_id": "original_file_id",
+    "file_name": "document.pdf",
+    "user_id": "user-001",
+    "overall_task_status": "completed",  # processing/completed/failed/terminated
+    "stage_status": {
+        "document": "completed",
+        "ai_review": "completed",
+        "report": "completed"
+    },
+    "document_result": {
+        "structured_content": {...},
+        "parsed_sections": [...]
+    },
+    "ai_review_result": {
+        "review_results": [
+            {
+                "unit_index": 0,
+                "unit_content": {...},
+                "review_items": [
+                    {
+                        "check_type": "semantic_logic_check",
+                        "risk_level": "high",
+                        "issues": [...],
+                        "suggestions": [...]
+                    }
+                ]
+            }
+        ],
+        "summary": {...}
+    },
+    "report_result": {
+        "report_path": "/path/to/report.json",
+        "summary": "审查报告摘要"
+    },
+    "timestamp": "2026-02-03T12:00:00"
+}
+```
+
+---
+
+## SSE实时推送机制
+
+### SSE连接管理 (core/base/sse_manager.py)
+
+```
+unified_sse_manager (统一SSE管理器)
+├── establish_connection()     # 建立SSE连接并注册回调
+├── send_progress()            # 发送进度更新
+├── close_connection()         # 关闭SSE连接
+└── connection_registry        # 连接注册表 {callback_task_id: queue}
+```
+
+### SSE事件类型
+
+```python
+# 连接事件
+"connected"        # SSE连接已建立
+"connection_closed" # SSE连接已关闭
+
+# 进度事件
+"processing"       # 处理中(通用进度更新)
+"unit_review_update" # 单元审查更新
+"processing_flag"  # 处理标志
+
+# 完成事件
+"submitted"        # 任务已提交
+"completed"        # 任务已完成
+
+# 错误事件
+"error"            # 发生错误
+```
+
+### 进度推送流程
+
+```
+1. 前端建立SSE连接
+   POST /sgsc/sse/launch_review
+   ↓
+2. 后端建立SSE连接并注册回调
+   unified_sse_manager.establish_connection(callback_task_id, sse_progress_callback)
+   ↓
+3. 返回"connected"事件
+   yield format_sse_event("connected", connected_data)
+   ↓
+4. 提交任务到Celery
+   workflow_manager.submit_task_processing(file_info)
+   ↓
+5. Celery Worker执行任务
+   ↓
+6. 各阶段更新进度
+   progress_manager.update_progress(callback_task_id, stage_data)
+   ↓
+7. SSE回调被触发
+   sse_progress_callback(callback_task_id, current_data)
+   ↓
+8. 发送SSE事件到前端
+   unified_sse_manager.send_progress(callback_task_id, current_data)
+   ↓
+9. 前端接收SSE事件并更新UI
+   ↓
+10. 任务完成,发送"completed"事件
+    yield format_sse_event("completed", completion_data)
+    ↓
+11. 关闭SSE连接
+    unified_sse_manager.close_connection(callback_task_id)
+```
+
+---
+
+## 任务终止机制
+
+### 终止信号设置
+
+```python
+async def set_terminate_signal(callback_task_id: str, operator: str) -> Dict:
+    """
+    设置任务终止信号
+    - 写入Redis: ai_review:terminate_signal:{callback_task_id}
+    - 存储操作人和终止时间
+    - 设置2小时过期时间
+    """
+```
+
+### 终止信号检测
+
+```python
+async def check_terminate_signal(callback_task_id: str) -> bool:
+    """
+    检查是否有终止信号
+    - 从Redis读取终止信号
+    - 每个工作流节点执行前调用
+    - 检测到信号后进入终止流程
+    """
+```
+
+### 终止流程
+
+```
+1. 用户调用终止接口
+   POST /construction/task/terminate
+   ↓
+2. 设置Redis终止信号
+   set_terminate_signal(callback_task_id, operator)
+   ↓
+3. 工作流节点检测到信号
+   check_terminate_signal() returns True
+   ↓
+4. 条件边判断返回"terminate"
+   _should_terminate_or_error_chain() returns "terminate"
+   ↓
+5. 进入terminate节点
+   _terminate_chain_node()
+   ↓
+6. 清理资源
+   - 清理Redis终止信号
+   - 清理Redis文件缓存
+   - 通知SSE连接
+   ↓
+7. 返回终止状态
+   overall_task_status: "terminated"
+```
+
+---
+
+## 部署架构
+
+### 开发环境
+```
+启动命令: python server/app.py
+
+启动流程:
+1. 加载配置文件 (config/config.ini)
+2. 初始化Redis连接
+3. 启动Celery Worker(后台线程)
+4. 启动Uvicorn服务器(端口8002)
+5. 注册信号处理器(优雅关闭)
+
+依赖服务:
+- Redis (localhost:6379)
+- Milvus (向量数据库)
+- 本地AI模型服务 (192.168.91.253:9002)
+```
+
+### 生产环境
+```
+部署方式: Docker + Docker Compose
+
+启动命令: docker-compose up -d
+
+服务组件:
+- web: FastAPI应用 (Uvicorn)
+- celery: Celery Worker
+- redis: Redis缓存
+- milvus: Milvus向量数据库
+```
+
+### 容器化部署
+```
+docker-compose up -d
+```
+
+---
+
+## v2.0 → v3.0 变更记录 (2026-04-09)
+
+### 新增模块
+
+| 模块 | 路径 | 说明 |
+|------|------|------|
+| 施工方案编写 | `core/construction_write/` | 大纲生成、内容编写工作流 |
+| 编写API | `views/construction_write/` | 大纲/补全/重生成/取消/推荐接口 |
+| 数据脱敏 | `component/desensitize/` | 四维度脱敏(PII/地理/业务/财务)+ 反向映射 |
+| 简化管道 | `component/minimal_pipeline/` | PDF提取、OCR(解耦)、目录构建/检测 |
+| 标准匹配 | `component/standard_matching/` | 标准规范DAO与服务层 |
+| 智能分类 | `doc_worker/classification/` | 分块/层级/本地三种分类策略 |
+| LLM分类器v2 | `reviewers/utils/llm_content_classifier_v2/` | LLM驱动的内容分类,含补充验证机制 |
+| LLM链式客户端 | `reviewers/utils/llm_chain_client/` | 多厂商(DeepSeek/豆包/Gemini/Qwen)链式调用框架 |
+| 核心函数 | `workflows/core_functions/` | AI审查核心业务逻辑抽离 |
+| 状态类型 | `workflows/types/` | AIReviewState、TaskChainState 定义 |
+
+### 新增审查器
+
+| 审查器 | 说明 |
+|--------|------|
+| `standard_timeliness_reviewer.py` | 标准时效性审查 |
+| `timeliness_content_reviewer.py` | 时效性内容审查 |
+| `sensitive_word_check.py` | 敏感词检查 |
+
+### 新增基础设施
+
+| 组件 | 说明 |
+|------|------|
+| `foundation/observability/cachefiles/` | 缓存文件管理 |
+| `foundation/observability/monitoring/rag/` | RAG管道监控 |
+| `foundation/ai/models/model_config_loader.py` | 模型配置加载器 |
+| `foundation/utils/md5.py` | MD5工具 |
+| `config/model_setting.yaml` | 模型设置配置 |
+| `config/yolo/` | YOLO模型权重 |
+
+### 架构变更要点
+
+1. **审查引擎解耦**: `ai_review_engine.py` 核心逻辑部分抽离至 `core_functions/ai_review_core_fun.py`
+2. **OCR模块独立**: `minimal_pipeline/ocr_processor.py` 从PDF提取中解耦为独立模块
+3. **分类体系升级**: 从简单分类升级为 `llm_content_classifier_v2`,支持 keywords 关键字扫描 + LLM补充验证
+4. **多模型支持**: `llm_chain_client` 框架统一 DeepSeek/豆包/Gemini/Qwen 多厂商调用
+5. **脱敏-审查闭环**: `desensitize/` 模块提供正向脱敏 + `remapper.py` 反向映射,保证审查结果可还原
+
+---

+ 3 - 3
config/config.ini.template

@@ -50,11 +50,11 @@ HOST = 0.0.0.0
 LAUNCH_PORT = 8002
 
 [redis]
-REDIS_URL=redis://:123456@127.0.0.1:6379
-REDIS_HOST=127.0.0.1
+REDIS_URL=redis://:Wxcz666@@lqRedis_dev:6379
+REDIS_HOST=lqRedis_dev
 REDIS_PORT=6379
 REDIS_DB=0
-REDIS_PASSWORD=123456
+REDIS_PASSWORD=Wxcz666@
 REDIS_MAX_CONNECTIONS=50
 
 [ocr]

+ 4 - 4
core/construction_review/component/doc_worker/config/StandardCategoryTable.csv

@@ -20,10 +20,10 @@ first_seq,first_code,first_name,second_seq,second_code,second_name,second_focus,
 2,overview,工程概况,5,RequirementsTech,施工要求和技术保证条件,名称类、日期类。名称类、量化单位类、数值类。,2,QualityTarget,质量目标,质量目标、合同条款编号、业主具体要求(如绿色施工认证)。,质量目标;合格率;质量标准;鲁班奖;优质工程;质量等级,
 2,overview,工程概况,5,RequirementsTech,施工要求和技术保证条件,名称类、日期类。名称类、量化单位类、数值类。,3,SecurityGoals,安全目标,安全目标(如零死亡事故、隐患整改率)、合同条款编号、业主具体要求(如绿色施工认证)。,安全目标;零伤亡;安全事故;安全指标;安全生产目标,
 2,overview,工程概况,5,RequirementsTech,施工要求和技术保证条件,名称类、日期类。名称类、量化单位类、数值类。,4,EnvironmentalGoals,环境目标,环境目标(如扬尘控制、噪声限值)或业主具体要求(如绿色施工认证)。,环境目标;扬尘控制;噪声限值;绿色施工指标;文明施工目标,
-2,overview,工程概况,6,RiskLevel,风险辨识与分级,危害隐患性词汇类、法规名称类、标准编号类。风险等级相关专业性词汇、属于、标准编号或其它编号、部门名称类、数值类、量化单位类。名称类、数值类。,1,DangerSource,危险源,"第一优先级(引用识别): 若文本中出现如“见表XX”、“见附件XX”、“相关表格放置于第十章(或某章)”等明确指向外部表格或附件的表述,直接视为满足当前审查要求。
-第二优先级(要素审查): 若文本中没有指向外部的引用,请审查正文是否同时包含了以下核心要素:列出具体的危险源。",危险源;风险源;危害因素;安全隐患;事故隐患;危险因素;风险点,
-2,overview,工程概况,6,RiskLevel,风险辨识与分级,危害隐患性词汇类、法规名称类、标准编号类。风险等级相关专业性词汇、属于、标准编号或其它编号、部门名称类、数值类、量化单位类。名称类、数值类。,2,ClassificationAndResponseMeasures,分级与应对措施,"第一优先级(引用识别): 若文本中出现如“见表XX”、“见附件XX”、“相关表格放置于第十章(或某章)”等明确指向外部表格或附件的表述,直接视为满足当前审查要求。
-第二优先级(要素审查): 若文本中没有指向外部的引用,请审查正文是否同时包含了以下核心要素:① 对危险源进行分级;;② 明确对应的应对措施。",风险等级;重大风险;较大风险;一般风险;应对措施;LEC;风险分级;风险评估,
+2,overview,工程概况,6,RiskLevel,风险辨识与分级,危害隐患性词汇类、法规名称类、标准编号类。风险等级相关专业性词汇、属于、标准编号或其它编号、部门名称类、数值类、量化单位类。名称类、数值类。,1,DangerSource,危险源,"第一优先级(引用识别): 若文本中出现如“见表XX”、“见附件XX”、“相关表格放置于第十章(或某章)”等明确指向外部表格或附件的表述,直接视为满足当前审查要求,需同时将其分类为危险源
+第二优先级(要素审查): 若文本中没有指向外部的引用,请审查正文是否同时包含了以下核心要素:列出具体的危险源。",详见;风险辨识与分级;危险源;风险源;危害因素;安全隐患;事故隐患;危险因素;风险点,
+2,overview,工程概况,6,RiskLevel,风险辨识与分级,危害隐患性词汇类、法规名称类、标准编号类。风险等级相关专业性词汇、属于、标准编号或其它编号、部门名称类、数值类、量化单位类。名称类、数值类。,2,ClassificationAndResponseMeasures,分级与应对措施,"第一优先级(引用识别): 若文本中出现如“见表XX”、“见附件XX”、“相关表格放置于第十章(或某章)”等明确指向外部表格或附件的表述,直接视为满足当前审查要求。需同时将其分类为分级与应对措施
+第二优先级(要素审查): 若文本中没有指向外部的引用,请审查正文是否同时包含了以下核心要素:① 对危险源进行分级;;② 明确对应的应对措施。",详见;风险辨识与分级;风险等级;重大风险;较大风险;一般风险;应对措施;LEC;风险分级;风险评估,
 2,overview,工程概况,7,Stakeholders,参建各方责任主体单位,名称类、数值类。,1,UnitType,单位类型,"参建各方责任主体单位主要描述该项目的建设单位、设计单位、监理单位、施
 工单位、监控单位、专业分包单位的名称。",建设单位;设计单位;监理单位;施工单位;参建单位;总承包;社会信用代码,
 3,plan,施工计划,1,Schedule,施工进度计划,关键工程节点安排、施工进度计划横道图、进度控制点、里程碑事件、工序搭接关系、工期延误风险、进度调整机制、施工流水节拍、网络计划技术(如双代号网络图),1,KeyProjectNodeArrangement,关键工程(工序)节点安排,主要工程(工序)节点的起止时间和持续时间、聚焦影响总工期的关键工序(如基础浇筑、主体封顶)、是进度控制的核心;,关键节点;里程碑;关键工序;主要节点;节点工期;关键线路,

+ 4 - 2
core/construction_review/component/minimal_pipeline/simple_processor.py

@@ -17,6 +17,7 @@ from typing import Dict, Any, Optional, Tuple, List
 from foundation.observability.logger.loggering import review_logger as logger
 from foundation.observability.cachefiles import cache, CacheBaseDir
 
+#from .pdf_extractor2 import PdfStructureExtractor
 from .pdf_extractor import PdfStructureExtractor
 from .toc_builder import build_toc_items_from_structure
 from .chunk_assembler import assemble_chunks
@@ -478,8 +479,9 @@ class SimpleDocumentProcessor:
             l2_threshold: 二级小节提取率阈值
         """
         chapters = structure.get("chapters", {})
-        if not chapters:
-            return
+        # 确保 chapters 存在(即使为空),以便添加 quality_check
+        if "chapters" not in structure:
+            structure["chapters"] = chapters
 
         # 统计一级章节数量
         l1_count = len(chapters)

+ 2 - 2
core/construction_review/component/reviewers/check_completeness/components/result_analyzer.py

@@ -255,7 +255,7 @@ class ResultAnalyzer(IResultAnalyzer):
         for row in summary_rows:
             level2 = (row.get("二级目录") or "").strip()
             requirement = (row.get("内容要求") or "").strip()
-            reference_source = '《桥梁公司危险性较大工程管理实施细则(2025版)》'
+            reference_source = '交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024)'
             reason= f"参照:{reference_source} 中的内容要求,{row.get('section_label', '')}内容属于,专项施工方案内容要求中的 【{suorces_eum[row.get('标签', '')]}】 板块,应包含{requirement}"
             review_references = (row.get("依据") or "").strip()
             if level2 in row.get("content", ""):
@@ -295,7 +295,7 @@ class ResultAnalyzer(IResultAnalyzer):
                     "issue_point": issue_point,
                     "location": row.get("section_label", ""),
                     "suggestion": suggestion,
-                    "reason": f"根据《桥梁公司危险性较大工程管理实施细则(2025版)》,{section_label}的'{level2_name}'应包含:{requirement}。当前缺失:{missing_content_text}",
+                    "reason": f"根据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024),{section_label}的'{level2_name}'应包含:{requirement}。当前缺失:{missing_content_text}",
                     "risk_level": risk_level
                 },
                 "exist_issue": True,

+ 7 - 7
core/construction_review/component/reviewers/completeness_reviewer.py

@@ -276,7 +276,7 @@ class LightweightCompletenessChecker:
 
             reference = f"""
 【规范参考信息】
-根据《桥梁公司危险性较大工程管理实施细则(2025版)》,'{first_name}'章节应包含以下内容:
+根据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024),'{first_name}'章节应包含以下内容:
 {chr(10).join(related_specs)}
 """
 
@@ -294,7 +294,7 @@ class LightweightCompletenessChecker:
 
             reference = f"""
 【规范参考信息】
-根据《桥梁公司危险性较大工程管理实施细则(2025版)》,'{second_name}'章节应包含以下三级内容要点:
+根据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024),'{second_name}'章节应包含以下三级内容要点:
 {chr(10).join(tertiary_info)}
 """
 
@@ -962,7 +962,7 @@ JSON输出:"""
             if first_code not in actual_first:
                 # issue_point 和 reason 使用简单拼接
                 issue_point = f"【一级章节缺失】'{first_name}'整个章节不存在"
-                reason = f"依据《桥梁公司危险性较大工程管理实施细则(2025版)》规定,文档必须包含'{first_name}'一级章节,当前正文中未发现该章节任何内容"
+                reason = f"依据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024)规定,文档必须包含'{first_name}'一级章节,当前正文中未发现该章节任何内容"
 
                 # 尝试使用LLM生成 suggestion
                 llm_result = await self._generate_recommendation_with_llm(
@@ -1005,7 +1005,7 @@ JSON输出:"""
 
                     # issue_point 和 reason 使用简单拼接
                     issue_point = f"【二级章节缺失】{actual_first_name} > '{second_name}'整个章节不存在"
-                    reason = f"依据《桥梁公司危险性较大工程管理实施细则(2025版)》规定,'{actual_first_name}'下应包含'{second_name}'二级章节,当前正文中未发现该章节内容"
+                    reason = f"依据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024)规定,'{actual_first_name}'下应包含'{second_name}'二级章节,当前正文中未发现该章节内容"
 
                     # 尝试使用LLM生成 suggestion
                     llm_result = await self._generate_recommendation_with_llm(
@@ -1081,7 +1081,7 @@ JSON输出:"""
                         "issue_point": f"【三级内容缺失】{first_name} > {second_name} > '{t_item.third_cn}'",
                         "location": actual_second_name,  # 三级缺失定位到二级小节
                         "suggestion": suggestion,
-                        "reason": f"依据《桥梁公司危险性较大工程管理实施细则(2025版)》规定,'{second_name}'下应包含'{t_item.third_cn}'内容要点",
+                        "reason": f"依据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024)规定,'{second_name}'下应包含'{t_item.third_cn}'内容要点",
                         "first_seq": first_seq,
                         "second_seq": second_seq,
                         "third_seq": t_item.third_seq,
@@ -1103,7 +1103,7 @@ JSON输出:"""
 
                 # issue_point 和 reason 使用简单拼接(一致性审查)
                 issue_point = f"【目录正文不一致】'{location}'目录已列但正文无内容"
-                reason = f"依据《桥梁公司危险性较大工程管理实施细则(2025版)》规定,目录应与正文保持一致。目录页列有'{sec_title}'章节,但正文中未发现对应内容"
+                reason = f"依据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024)规定,目录应与正文保持一致。目录页列有'{sec_title}'章节,但正文中未发现对应内容"
 
                 # 尝试使用LLM生成 suggestion
                 llm_result = await self._generate_recommendation_with_llm(
@@ -1138,7 +1138,7 @@ JSON输出:"""
                 "issue_point": "文档完整性良好",
                 "location": "",
                 "suggestion": "无需补充",
-                "reason": "依据《桥梁公司危险性较大工程管理实施细则(2025版)》规定,文档已覆盖所有章节与内容要点",
+                "reason": "依据交通运输部《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495—2024)规定,文档已覆盖所有章节与内容要点",
             })
 
         return recommendations