# SysDocAgent **Repository Path**: ouyueyang/sys-doc-agent ## Basic Information - **Project Name**: SysDocAgent - **Description**: SysDocAgent:基于 LLM 的安全管理体系文件自动生成系统。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-02 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SysDocAgent — 安全体系文件编制智能体 基于 LLM 的 LNG 接收站安全管理体系文件自动生成与审核系统。输入企业七要素画像,经过模板驱动 + 混合检索 + 逐节 LLM 生成 + DOCX 渲染,输出排版规范的安全生产管理制度文件(Word 成品),支持生成与审核双模式。 > 详细文档: [docs/v2/](docs/v2/README.md) ## 快速开始 ### CLI 模式 ```bash # 1. 安装依赖 uv sync # 2. 配置 API Key export DEEPSEEK_API_KEY="sk-..." # DeepSeek (LLM 生成) export DASHSCOPE_API_KEY="sk-..." # 阿里云百炼 (语义检索,可选) # 配置文件: config/default_config.yaml (路径/LLM/渲染 默认参数) # 3. 构建法规向量索引(首次或法规更新后执行) python src/knowledge/embedding_index.py # 4. 生成制度文件 python -m src.cli generate -i data/samples/TPL101/TPL101_sample1_gen.json -o output/ # 5. 查看输出 ls output/01_*/ ``` ### Web 前端 ```bash uv run streamlit run frontend/app.py ``` 页面功能:生成制度(表单+JSON导入)、审核制度(上传+AI审核)、法规库浏览、模板查看、系统配置。 ## 命令参考 ```bash # 列出可用模板 python -m src.cli list-templates # 生成制度文件 python -m src.cli generate -i data/samples/TPL101/TPL101_sample1_gen.json -o output/ # 审核制度文件 # 方式1: JSON 内 targetDocumentFile 指向 review_targets/ 下的 MD python -m src.cli review -i data/samples/TPL101/TPL101_sample3_rev.json -o output/ # 方式2: --target 直接指定待审 MD python -m src.cli review -i data/samples/TPL101/TPL101_sample3_rev.json \ -t data/samples/TPL101/review_targets/TPL101_sample3_target.md ``` ## 支持的文件类型 | 编号 | 文件类型 | 模板 | 结构特征 | |------|---------|------|---------| | 01 | 安全生产管理制度 | TPL101 | 综合纲领,7节16章(档位可裁剪) | | 02 | 安全生产责任制度 | TPL102 | 逐岗位清单,八级序列 | | 03 | 安全教育培训制度 | TPL103 | 培训矩阵,学时红线 | | 04 | 安全生产费用管理制度 | TPL104 | 提取测算,十大科目 | | 05 | 安全生产例会制度 | TPL105 | 会议矩阵,领导参会 | ## 系统架构 ``` 七要素输入 (DocumentInput) │ ▼ [1. 输入加载] ← 校验 schema + 推导模板档位 (full/medium/lean) │ ▼ [2. 模板加载] ← 按 document_type 加载模板,解析条件开关 │ ▼ [3. 法规检索] ← 关键词匹配 + 语义相似度 → RRF 融合 → Top-K │ ChromaDB 向量索引 (Aliyun text-embedding-v4) ▼ [4. 内容生成] ← 逐节 LLM 生成 (DeepSeek),制度文风 (应/宜/可) │ → content_data.json ▼ [5. DOCX 渲染] ← 封面 + 正文章节 + 法规附录 + 签批栏 + 页码 │ ▼ 输出包: XX_企业名称/ ├── 企业_制度名称.docx ├── 说明.md ├── content_data.json └── regulation_index.json ``` ### 关键设计 - **双模式**:生成(七要素 → 制度全文) + 审核(待审文本 → 缺陷清单) - **档位自适应**:四问推导 full/medium/lean,自动裁剪章节 - **条件开关**:行业轨道(危化品/工贸/EPC)、地方(湖北导则)、企业规模 - **混合检索**:关键词精确匹配 + ChromaDB 语义 ANN → RRF 融合,无 API 时静默降级 - **结构化先行**:先生成 `content_data.json` 后渲染 `.docx`,内容与格式解耦 ## 目录结构 ``` SysDocAgent/ ├── src/ │ ├── cli.py # CLI 入口 │ ├── pipeline/ # 管道化核心 │ │ ├── orchestrator.py # 总调度器 │ │ ├── content_generator.py # 逐节 LLM 生成 │ │ ├── docx_renderer.py # DOCX 渲染 (封面/章节/附录/签批) │ │ └── regulation_retriever.py # 混合检索 (关键词+ChromaDB语义) │ ├── models/ │ │ └── input_models.py # 七要素 DocumentInput + 5种CoreElement │ ├── llm/ │ │ ├── deepseek_client.py # DeepSeek API 封装 │ │ └── prompt_builder.py # 制度文档 Prompt 构建器 │ ├── knowledge/ # 知识库 │ │ ├── templates/ # 模板定义 (TPL101~105) │ │ │ └── .legacy/ # 旧 TPL001/005 归档 │ │ ├── regulation_db/ # 法规库 JSON (15份, ~1800条) │ │ ├── gb_extractor.py # PDF 国标 + 法律全文提取 │ │ ├── refine_keywords.py # DeepSeek Flash 批量精标关键词 │ │ ├── embedding_index.py # ChromaDB 向量索引构建 │ │ ├── ocr_batch.py # Qwen VL OCR 批量扫描件 │ │ └── verify_ocr_alignment.py # OCR 条款编号校验 │ └── .legacy/ # 旧实现归档 (v1 年度计划流水线) ├── data/ │ ├── regulation_db/ # 法规库 JSON (16份) │ ├── templates/ # 模板定义 (TPL101~105) │ ├── chroma_db/ # ChromaDB 向量索引 │ └── samples/ # 样例数据 (5类×5企业) ├── frontend/ # Streamlit Web 前端 │ ├── app.py # 首页仪表盘 │ └── pages/ # 功能页面 ├── config/ │ └── default_config.yaml # 默认配置 (路径/LLM/渲染/OCR) ├── output/ # 生成输出 └── pyproject.toml ``` ## 法规知识库 | reg_id | 法规名称 | 版本 | 条款 | 获取 | |--------|---------|------|------|------| | REG001 | 安全生产法 | 2021修正 | 108 | HTML | | REG002 | 危化企业安全生产标准化通用规范 | GB 45673-2025 | 60 | PDF | | REG003 | 大中型企业安全生产标准化管理体系 | GB/T 33000-2025 | 49 | PDF | | REG004 | 风险分级管控技术规范 | GB/T 45420-2025 | 48 | PDF | | REG005 | 危险化学品重大危险源辨识 | GB 18218-2018 | 19 | OCR | | REG006 | 危化企业特殊作业安全规范 | GB 30871-2022 | 126 | OCR | | REG007 | LNG接收站工程设计规范 | GB 51156-2015 | 822 | OCR | | REG008 | 职业健康安全管理体系 | GB/T 45001-2020 | 147 | OCR | | REG010 | 危险化学品安全管理条例 | 国务院令第344号 | 72 | HTML | | REG011 | 化工过程安全管理导则 | AQ/T 3034-2022 | 120 | PDF | | REG012 | 重大危险源安全监控技术规范 | AQ 3035-2010 | 91 | OCR | | REG013 | 化工企业定量风险评价导则 | AQ/T 3046-2013 | 141 | OCR | | REG014 | 安全生产费用提取和使用管理办法 | 财资〔2022〕136号 | 40 | PDF | | REG015 | 危化企业隐患排查治理导则 | 应急〔2019〕78号 | 99 | PDF | | REG016 | 安全生产培训管理办法 | 总局令第44号 | 38 | OCR | > 详细来源 URL 见 `REGSOURCE.md`。 ### 法规库维护 ```bash # 提取新 PDF (gb_extractor 自动跳过已有) python src/knowledge/gb_extractor.py # OCR 扫描件 (需 DASHSCOPE_API_KEY) python src/knowledge/ocr_batch.py # 精标关键词 (增量模式跳过已处理) python src/knowledge/refine_keywords.py --incremental # 向量索引 (增量追加) python src/knowledge/embedding_index.py --incremental # OCR 条款校验 (需 DEEPSEEK_API_KEY) python src/knowledge/verify_ocr_alignment.py ``` ## 技术栈 | 层次 | 技术 | |------|------| | LLM 生成 | DeepSeek API (deepseek-chat) | | 关键词精标 | DeepSeek Flash | | 语义检索 | Aliyun text-embedding-v4 + ChromaDB | | OCR 文本提取 | Qwen VL OCR (qwen3.5-ocr) | | 数据校验 | Pydantic v2 | | DOCX 渲染 | python-docx + lxml | | PDF 解析 | PyMuPDF (fitz) | | 任务编排 | Python asyncio | | Web 前端 | Streamlit | | 包管理 | uv | ## 分支说明 | 分支 | 用途 | |------|------| | `master` | 当前主分支 (v2 制度文件) | | `legacy` | v1 年度计划流水线归档 | ## 详细文档 参见 [docs/v2/](docs/v2/README.md):架构、输入模型、模板规范、流水线模块、法规库、CLI、前端、测试。 | `refactor/v2-system-documents` | v2 开发分支 |