Explorar el Código

docs: 更新进度报告,添加规则系统欠缺分析

- 整体进度更新到 92%
- 新增 2026-01-25 功能(Vue Demo、Systemd 配置)
- 新增「规则系统模块 - 详细欠缺分析」章节
  - 已有基础设施
  - 核心欠缺功能(Service/Controller/执行引擎/DSL/智能体)
  - 实现优先级和工作量估计
  - 与模板系统的关系
何文松 hace 1 mes
padre
commit
400c145823
Se han modificado 2 ficheros con 1844 adiciones y 6 borrados
  1. 1666 0
      进度报告.html
  2. 178 6
      进度报告.md

+ 1666 - 0
进度报告.html

@@ -0,0 +1,1666 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>进度报告</title>
+    
+        <style>
+        body {
+            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+            line-height: 1.6;
+            color: #333;
+            max-width: 1200px;
+            margin: 0 auto;
+            padding: 20px;
+            background-color: #fff;
+        }
+        @media (max-width: 480px) {
+            body {
+                padding: 12px;
+                font-size: 14px;
+            }
+            h1 {
+                font-size: 24px;
+                padding-bottom: 8px;
+            }
+            h2 {
+                font-size: 20px;
+                margin-top: 20px;
+                padding-bottom: 6px;
+            }
+            h3 {
+                font-size: 18px;
+                margin-top: 18px;
+            }
+            pre {
+                padding: 10px;
+                font-size: 12px;
+            }
+            code {
+                font-size: 12px;
+            }
+            table {
+                font-size: 12px;
+            }
+            th, td {
+                padding: 8px;
+            }
+            ul, ol {
+                padding-left: 20px;
+            }
+        }
+        h1 {
+            color: #2c3e50;
+            border-bottom: 3px solid #3498db;
+            padding-bottom: 10px;
+        }
+        h2 {
+            color: #34495e;
+            border-bottom: 2px solid #ecf0f1;
+            padding-bottom: 8px;
+            margin-top: 30px;
+        }
+        h3 {
+            color: #555;
+            margin-top: 25px;
+        }
+        img {
+            max-width: 100%;
+            height: auto;
+            border: 1px solid #ddd;
+            border-radius: 4px;
+            margin: 10px 0;
+            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+        }
+        code {
+            background-color: #f4f4f4;
+            padding: 2px 6px;
+            border-radius: 3px;
+            font-family: "Courier New", monospace;
+            font-size: 0.9em;
+        }
+        pre {
+            background-color: #f4f4f4;
+            padding: 15px;
+            border-radius: 5px;
+            overflow-x: auto;
+            border-left: 4px solid #3498db;
+        }
+        blockquote {
+            border-left: 4px solid #3498db;
+            margin: 0;
+            padding-left: 20px;
+            color: #666;
+        }
+        table {
+            border-collapse: collapse;
+            width: 100%;
+            margin: 20px 0;
+        }
+        th, td {
+            border: 1px solid #ddd;
+            padding: 12px;
+            text-align: left;
+        }
+        th {
+            background-color: #3498db;
+            color: white;
+        }
+        tr:nth-child(even) {
+            background-color: #f9f9f9;
+        }
+        ul, ol {
+            padding-left: 30px;
+        }
+        li {
+            margin: 8px 0;
+        }
+        /* 嵌套列表样式 */
+        li ul, li ol {
+            margin-top: 8px;
+            margin-bottom: 8px;
+        }
+        /* 列表项内的段落 */
+        li > p {
+            margin: 0;
+            display: inline;
+        }
+        li > p:not(:last-child) {
+            margin-bottom: 8px;
+            display: block;
+        }
+        strong {
+            color: #2c3e50;
+        }
+        a {
+            color: #3498db;
+            text-decoration: none;
+        }
+        a:hover {
+            text-decoration: underline;
+        }
+        hr {
+            border: none;
+            border-top: 2px solid #ecf0f1;
+            margin: 30px 0;
+        }
+        </style>
+        
+</head>
+<body>
+    <h1 id="20-">📊 灵越智报 2.0 - 当前进度总结</h1>
+<p><strong>整体进度:90%</strong>  |  <strong>报告日期:2026-01-24</strong></p>
+<hr />
+<h2 id="90">✅ 已完成(90%)</h2>
+<h3 id="_1">基础设施</h3>
+<ul>
+<li>Spring Boot 3.1.5 单体应用架构(lingyue-starter)</li>
+<li>数据库(PostgreSQL + pgvector)、缓存(Redis)、消息队列(RabbitMQ)配置完成</li>
+<li>6大服务模块框架搭建完成</li>
+<li><strong>数据库重建脚本</strong> → ✅ 完整的 <code>rebuild_all.sh</code> 脚本</li>
+</ul>
+<h3 id="_2">核心模块现状</h3>
+<table>
+<thead>
+<tr>
+<th>模块</th>
+<th>功能</th>
+<th style="text-align: center;">状态</th>
+<th>说明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>认证服务</strong></td>
+<td>注册/登录/Token</td>
+<td style="text-align: center;">✅</td>
+<td>JWT 认证,密码修改</td>
+</tr>
+<tr>
+<td><strong>文档管理</strong></td>
+<td>上传/列表/删除</td>
+<td style="text-align: center;">✅</td>
+<td>级联删除,批量操作</td>
+</tr>
+<tr>
+<td><strong>文档解析</strong></td>
+<td>OCR/文本提取</td>
+<td style="text-align: center;">✅</td>
+<td>Word/PDF/图片</td>
+</tr>
+<tr>
+<td><strong>结构化解析</strong></td>
+<td>段落/图片/表格</td>
+<td style="text-align: center;">✅</td>
+<td>保留样式和顺序</td>
+</tr>
+<tr>
+<td><strong>RAG 向量化</strong></td>
+<td>分块/嵌入/检索</td>
+<td style="text-align: center;">✅</td>
+<td>pgvector + Ollama</td>
+</tr>
+<tr>
+<td><strong>NER 实体识别</strong></td>
+<td>实体/关系提取</td>
+<td style="text-align: center;">✅</td>
+<td>DeepSeek API</td>
+</tr>
+<tr>
+<td><strong>图数据库</strong></td>
+<td>节点/关系存储</td>
+<td style="text-align: center;">✅</td>
+<td>PostgreSQL + Neo4j</td>
+</tr>
+<tr>
+<td><strong>数据源管理</strong></td>
+<td>CRUD/取值/聚合</td>
+<td style="text-align: center;">✅</td>
+<td>支持多种值类型</td>
+</tr>
+<tr>
+<td><strong>任务中心</strong></td>
+<td>多阶段进度跟踪</td>
+<td style="text-align: center;">✅</td>
+<td>6阶段流水线</td>
+</tr>
+<tr>
+<td><strong>模板系统</strong></td>
+<td>数据模型</td>
+<td style="text-align: center;">✅</td>
+<td>v2.0 重构完成</td>
+</tr>
+<tr>
+<td><strong>模板系统</strong></td>
+<td>Service/Controller</td>
+<td style="text-align: center;">✅</td>
+<td>完整 CRUD + 状态管理</td>
+</tr>
+<tr>
+<td><strong>报告生成</strong></td>
+<td>变量提取/文档生成</td>
+<td style="text-align: center;">✅</td>
+<td>基础流程实现完成</td>
+</tr>
+<tr>
+<td><strong>前端界面</strong></td>
+<td>所有页面</td>
+<td style="text-align: center;">⏳</td>
+<td>Flutter Web 待开发</td>
+</tr>
+</tbody>
+</table>
+<h3 id="_3">模块完成度</h3>
+<div class="codehilite"><pre><span></span><code>认证服务      ████████████████████ 100%
+文档管理      ████████████████████ 100%
+文档解析      ████████████████████ 100%
+RAG服务       ████████████████████ 100%
+NER服务       ████████████████████ 100%
+图数据库      ████████████████████ 100%
+数据源管理    ████████████████████ 100%
+任务中心      ████████████████████ 100%
+模板系统      ████████████████████ 100% (完整实现)
+报告生成      ████████████████░░░░  80% (基础流程)
+前端界面      ████░░░░░░░░░░░░░░░░  20% (HTML原型)
+</code></pre></div>
+
+<h3 id="2026-01-24">新增功能(2026-01-24)✅ 模板系统完整实现 + 原型适配</h3>
+<ul>
+<li>✅ <strong>Service 层(6个服务)</strong></li>
+<li><code>TemplateService</code> - 模板 CRUD、发布、归档、复制</li>
+<li><code>SourceFileService</code> - 来源文件定义管理、重排序</li>
+<li><code>VariableService</code> - 变量管理、重排序、预览提取、<strong>按类别分组查询</strong></li>
+<li><code>GenerationService</code> - 生成任务管理、执行、进度</li>
+<li><code>ExtractionService</code> - 变量提取核心逻辑</li>
+<li>
+<p><code>DocumentGenerationService</code> - 文档生成、文件下载</p>
+</li>
+<li>
+<p>✅ <strong>Controller 层(2个控制器)</strong></p>
+</li>
+<li><code>TemplateController</code> - 模板/来源文件/变量统一管理、<strong>变量分组API</strong></li>
+<li>
+<p><code>GenerationController</code> - 生成任务 CRUD 和执行</p>
+</li>
+<li>
+<p>✅ <strong>DTO(12个)</strong></p>
+</li>
+<li>请求:CreateTemplateRequest, UpdateTemplateRequest, AddSourceFileRequest, AddVariableRequest, CreateGenerationRequest, UpdateVariableValueRequest, ReorderRequest</li>
+<li>
+<p>响应:TemplateDetailResponse, TemplateListResponse, SourceFileResponse, VariableResponse, GenerationResponse, GenerationProgressResponse, VariablePreviewResponse</p>
+</li>
+<li>
+<p>✅ <strong>工具类</strong></p>
+</li>
+<li>
+<p><code>SecurityUtils</code> - 从 JWT 获取当前用户ID</p>
+</li>
+<li>
+<p>✅ <strong>原型适配 - Variable.category 字段(新增)</strong></p>
+</li>
+<li>变量类别用于前端显示分类(与 <code>灵越智报_完整交互版.html</code> 原型对齐)</li>
+<li>类别定义:<ul>
+<li><code>entity</code> - 核心实体(蓝色):智慧园区、公司名等</li>
+<li><code>concept</code> - 概念/技术(紫色):产业升级、智能化管理等</li>
+<li><code>data</code> - 数据/指标(绿色):金额、面积、增长率等</li>
+<li><code>location</code> - 地点/组织(橙色):华南地区、华南事业部等</li>
+<li><code>asset</code> - 资源模板(粉色):图表、结论模板等</li>
+</ul>
+</li>
+<li>新增 API:<code>GET /api/v1/templates/{templateId}/variables/grouped</code> - 按类别分组返回变量</li>
+<li>数据库迁移:<code>V2026_01_24_01__add_variable_category.sql</code></li>
+</ul>
+<h3 id="2026-01-23-v20">新增功能(2026-01-23)✅ 模板系统 v2.0 数据模型重构</h3>
+<ul>
+<li>✅ <strong>设计理念升级</strong></li>
+<li>从「规则配置驱动」改为「示例文档驱动」</li>
+<li>
+<p>用户上传完整报告 → 标记变量 → 保存为模板 → 生成新报告</p>
+</li>
+<li>
+<p>✅ <strong>数据库重构</strong></p>
+</li>
+<li>新增 <code>all_tables.sql</code> 完整数据库表结构(21张表)</li>
+<li>新增 <code>template_tables.sql</code> 模板系统专用表</li>
+<li>
+<p><code>rebuild_all.sh</code> 增加 <code>--simple</code> 模式(单文件初始化)</p>
+</li>
+<li>
+<p>✅ <strong>新实体类(4个)</strong></p>
+</li>
+<li><code>Template</code> - 报告模板(替代 Project)</li>
+<li><code>SourceFile</code> - 来源文件定义(用别名标识)</li>
+<li><code>Variable</code> - 模板变量(绑定到文档位置)</li>
+<li>
+<p><code>Generation</code> - 生成任务</p>
+</li>
+<li>
+<p>✅ <strong>新 Repository(4个)</strong></p>
+</li>
+<li>
+<p><code>TemplateRepository</code>, <code>SourceFileRepository</code>, <code>VariableRepository</code>, <code>GenerationRepository</code></p>
+</li>
+<li>
+<p>✅ <strong>新 DTO 类</strong></p>
+</li>
+<li><code>VariableLocation</code> - 变量在文档中的位置</li>
+<li><code>ReferenceSourceConfig</code> - 引用来源配置</li>
+</ul>
+<h3 id="2026-01-22-">新增功能(2026-01-22 晚)✅ 数据提取规则系统 - 阶段一、二(已重构)</h3>
+<ul>
+<li>✅ <strong>第一阶段:基础设施搭建</strong></li>
+<li>Maven 模块 <code>extract-service</code> 框架搭建完成</li>
+<li>启动类 <code>ExtractServiceApplication.java</code></li>
+<li>配置文件 <code>application.properties</code>(端口 8086)</li>
+<li>健康检查接口 <code>/api/v1/extract/health</code></li>
+<li>~~数据库表(5张核心表)~~ → 已重构为模板系统 v2.0</li>
+<li>
+<p>集成配置:父 pom.xml、lingyue-starter 依赖</p>
+</li>
+<li>
+<p>✅ <strong>第二阶段:核心实体与 Repository 层</strong>(已重构为 v2.0)</p>
+</li>
+<li>~~实体类(5个):Project, SourceDocument, ExtractRule...~~ </li>
+<li>→ 新实体:Template, SourceFile, Variable, Generation</li>
+</ul>
+<h3 id="2026-01-22">新增功能(2026-01-22 下午)✅ 补充缺失接口</h3>
+<ul>
+<li>✅ <strong>认证服务接口完善</strong></li>
+<li><code>PUT /auth/profile</code> - 用户信息修改(用户名、邮箱、头像)</li>
+<li>
+<p><code>PUT /auth/password</code> - 密码修改(验证旧密码、新密码确认)</p>
+</li>
+<li>
+<p>✅ <strong>文档管理接口完善</strong></p>
+</li>
+<li><code>PUT /api/v1/documents/{id}</code> - 文档更新(名称、状态、元数据)</li>
+<li><code>DELETE /api/v1/documents/{id}</code> - <strong>级联删除增强</strong><ul>
+<li>删除向量嵌入、文本分块、图关系、图节点</li>
+<li>删除结构化元素、解析任务、文档记录</li>
+<li>删除文本文件和图片目录</li>
+</ul>
+</li>
+<li><code>POST /api/v1/documents/batch-delete</code> - 批量删除(返回成功/失败列表)</li>
+</ul>
+<h3 id="2026-01-22_1">新增功能(2026-01-22 上午)✅ 一键上传全自动处理 + 数据源管理</h3>
+<ul>
+<li>✅ <strong>一键上传全自动处理流程</strong></li>
+<li>上传接口:<code>POST /api/v1/parse/upload</code>(唯一入口)</li>
+<li>自动触发:RAG向量化 → 结构化解析 → NER实体提取 → 图数据库存储</li>
+<li>
+<p>手动重处理 API 保留,支持单独重新生成</p>
+</li>
+<li>
+<p>✅ <strong>数据源管理系统</strong></p>
+</li>
+<li>支持绑定 <code>GraphNode</code> 和 <code>DocumentElement</code> 两种类型</li>
+<li>支持多种值类型:text/image/table/mixed</li>
+<li>支持多种聚合方式:first/last/concat/sum/avg/list</li>
+<li>
+<p>完整 CRUD + 取值 + 批量取值 API</p>
+</li>
+<li>
+<p>✅ <strong>任务中心进度跟踪</strong></p>
+</li>
+<li>6阶段进度:upload → parse → rag → structured → ner → graph</li>
+<li>阶段权重:parse(15%) + rag(10%) + structured(15%) + ner(50%) + graph(10%)</li>
+<li>
+<p>实时进度查询 API + 结果摘要展示</p>
+</li>
+<li>
+<p>✅ <strong>端到端测试脚本完善</strong></p>
+</li>
+<li><code>test_upload_api.sh</code> 支持完整流程测试</li>
+<li>自动轮询等待 NER 完成(基于 GraphNode 数量稳定检测)</li>
+<li>支持任务中心查询、数据源操作等</li>
+</ul>
+<h3 id="2026-01-21">新增功能(2026-01-21)✅ 文档结构化解析完成</h3>
+<ul>
+<li>✅ <strong>Word 文档结构化提取</strong></li>
+<li>完整提取段落、标题、图片、表格等元素</li>
+<li>保留元素在文档中的原始顺序和位置</li>
+<li>图片自动提取并保存到独立目录</li>
+<li>支持图片尺寸、格式、描述信息提取</li>
+<li>✅ <strong>DocumentElement 实体存储</strong></li>
+<li>新增 <code>document_elements</code> 表存储结构化内容</li>
+<li>支持 JSONB 字段存储样式和表格数据</li>
+<li>自定义 <code>PostgreSqlJsonbTypeHandler</code> 处理 JSONB 类型</li>
+<li>✅ <strong>结构化解析 API</strong></li>
+<li><code>GET /parse/structured/{documentId}</code> - 触发结构化解析</li>
+<li><code>GET /parse/elements/{documentId}</code> - 获取所有元素</li>
+<li><code>GET /parse/elements/{documentId}/images</code> - 获取图片列表</li>
+<li><code>GET /parse/elements/{documentId}/tables</code> - 获取表格列表</li>
+<li>✅ <strong>数据库脚本完善</strong></li>
+<li>完整的数据库重建脚本 <code>rebuild_all.sh</code></li>
+<li>修复 UUID/VARCHAR 类型不兼容问题</li>
+<li>统一表结构字段命名规范</li>
+</ul>
+<h3 id="2026-01-20-ner-demo">新增功能(2026-01-20)✅ NER Demo 测试完成</h3>
+<ul>
+<li>✅ <strong>DeepSeek API 集成</strong></li>
+<li>接入阿里云百炼平台 DeepSeek V3.2 实验版</li>
+<li>支持长文本分块处理(每块 2000 字符)</li>
+<li>完整的错误处理和重试机制</li>
+<li>✅ <strong>异步任务轮询模式</strong></li>
+<li>Python 端:<code>/ner/extract/async</code> 提交异步任务</li>
+<li>Python 端:<code>/ner/task/{task_id}</code> 查询任务状态和进度</li>
+<li>Java 端:轮询模式(每 3 秒)查询进度,实时日志反馈</li>
+<li>最大等待时间 10 分钟,失败自动回退到同步 API</li>
+<li>✅ <strong>图数据库存储验证</strong></li>
+<li>实体成功存储到 <code>graph_nodes</code> 表(测试文档:188 个实体)</li>
+<li>关系成功存储到 <code>graph_relations</code> 表(测试文档:82 个关系)</li>
+<li>支持按文档 ID 导出 CSV/JSON 数据</li>
+<li>✅ <strong>Pydantic 序列化修复</strong></li>
+<li>修复 Python 模型 alias 序列化问题(snake_case → camelCase)</li>
+<li>确保 Java 端正确解析关系数据中的 <code>fromEntityId</code>、<code>toEntityId</code></li>
+</ul>
+<h3 id="2026-01-19">新增功能(2026-01-19)</h3>
+<ul>
+<li>✅ <strong>NER 服务完整实现</strong></li>
+<li>Python FastAPI NER 服务(规则模式,支持扩展 spaCy/Transformers/API)</li>
+<li>Java NER 客户端(PythonNerClient)</li>
+<li>NER DTO 类(NerRequest, NerResponse, EntityInfo, RelationInfo 等)</li>
+<li>NER API 接口(/api/ner/extract, /api/ner/document/{id})</li>
+<li>✅ <strong>关系抽取服务</strong></li>
+<li>基于规则的关系抽取(位置邻近性、语义模式匹配)</li>
+<li>关系抽取 API(/api/ner/relations)</li>
+<li>✅ <strong>图数据库服务扩展</strong></li>
+<li>GraphNodeService(节点/关系 CRUD、批量操作)</li>
+<li>图数据库 API(/api/graph/nodes, /api/graph/relations)</li>
+<li>文档节点统计接口</li>
+<li>✅ <strong>解析流程集成</strong></li>
+<li>文档解析完成事件(DocumentParsedEvent)</li>
+<li>NER 自动触发监听器</li>
+<li>解析 → RAG → NER → 图数据库完整链路</li>
+<li>NER 服务配置项(ner.python-service.url 等)</li>
+</ul>
+<h3 id="2026-01-17">已完成功能(2026-01-17)</h3>
+<ul>
+<li>✅ <strong>单体应用架构重构</strong> - 统一到 lingyue-starter 模块</li>
+<li>✅ <strong>配置文件统一</strong> - 全部使用 .properties 格式</li>
+<li>✅ <strong>接口测试完成</strong> - 核心接口验证通过</li>
+</ul>
+<h3 id="2026-01-16">已完成功能(2026-01-16)</h3>
+<ul>
+<li>✅ pgvector 向量数据库集成</li>
+<li>✅ 文本分块服务(智能句子边界切分)</li>
+<li>✅ Ollama Embedding 向量化服务</li>
+<li>✅ RAG 核心服务(索引、检索、问答)</li>
+</ul>
+<hr />
+<h2 id="_4">🎯 第一阶段完成情况</h2>
+<p>根据设计文档 <strong>6.2 第一阶段:核心数据流程(2月10日前)</strong></p>
+<h3 id="week-1-2-95">Week 1-2 任务完成率:95%</h3>
+<table>
+<thead>
+<tr>
+<th>任务</th>
+<th>状态</th>
+<th>说明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>文件上传接口</td>
+<td>✅</td>
+<td>支持 PDF、Word、图片</td>
+</tr>
+<tr>
+<td>文件类型识别</td>
+<td>✅</td>
+<td>MIME 类型检测</td>
+</tr>
+<tr>
+<td>OCR 集成(飞浆OCR)</td>
+<td>✅</td>
+<td>Python 服务调用</td>
+</tr>
+<tr>
+<td>文本提取(Word文档)</td>
+<td>✅</td>
+<td>Apache POI</td>
+</tr>
+<tr>
+<td><strong>Word 结构化提取</strong></td>
+<td>✅</td>
+<td>段落、图片、表格、样式</td>
+</tr>
+<tr>
+<td>TXT 文件存储</td>
+<td>✅</td>
+<td>SSD 硬盘存储</td>
+</tr>
+<tr>
+<td><strong>图片资源提取存储</strong></td>
+<td>✅</td>
+<td>自动提取并保存到独立目录</td>
+</tr>
+<tr>
+<td>解析任务管理</td>
+<td>✅</td>
+<td>异步处理、状态跟踪</td>
+</tr>
+<tr>
+<td>NER 服务集成</td>
+<td>✅</td>
+<td>DeepSeek API 集成</td>
+</tr>
+<tr>
+<td>实体提取接口</td>
+<td>✅</td>
+<td>完整实体列表输出</td>
+</tr>
+<tr>
+<td>关系分析接口</td>
+<td>✅</td>
+<td>规则模式关系抽取</td>
+</tr>
+<tr>
+<td>实体存储到图节点表</td>
+<td>✅</td>
+<td>PostgreSQL 存储验证</td>
+</tr>
+<tr>
+<td>图节点 CRUD 接口</td>
+<td>✅</td>
+<td>完整 CRUD</td>
+</tr>
+<tr>
+<td>图关系 CRUD 接口</td>
+<td>✅</td>
+<td>完整 CRUD</td>
+</tr>
+<tr>
+<td>图查询接口</td>
+<td>✅</td>
+<td>按文档、按用户查询</td>
+</tr>
+<tr>
+<td><strong>Neo4j 集成</strong></td>
+<td>✅</td>
+<td>本地部署,双写同步</td>
+</tr>
+</tbody>
+</table>
+<h3 id="week-3-4">Week 3-4 任务完成情况:</h3>
+<table>
+<thead>
+<tr>
+<th>任务</th>
+<th>状态</th>
+<th>说明</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>数据源创建接口</td>
+<td>✅</td>
+<td><code>POST /api/v1/datasource</code></td>
+</tr>
+<tr>
+<td>数据源绑定节点</td>
+<td>✅</td>
+<td><code>PUT /api/v1/datasource/{id}/refs</code></td>
+</tr>
+<tr>
+<td>数据源查询接口</td>
+<td>✅</td>
+<td>按ID/文档/用户/类型查询</td>
+</tr>
+<tr>
+<td>数据源取值接口</td>
+<td>✅</td>
+<td><code>GET /api/v1/datasource/{id}/value</code></td>
+</tr>
+<tr>
+<td>批量取值接口</td>
+<td>✅</td>
+<td><code>POST /api/v1/datasource/batch-value</code></td>
+</tr>
+<tr>
+<td>任务中心进度跟踪</td>
+<td>✅</td>
+<td>6阶段进度 + 结果摘要</td>
+</tr>
+<tr>
+<td>端到端流程测试</td>
+<td>✅</td>
+<td>完整测试脚本</td>
+</tr>
+<tr>
+<td>模板创建接口</td>
+<td>⏳</td>
+<td>下一步重点</td>
+</tr>
+<tr>
+<td>占位符绑定数据源</td>
+<td>⏳</td>
+<td>下一步重点</td>
+</tr>
+<tr>
+<td>模板渲染接口</td>
+<td>⏳</td>
+<td>下一步重点</td>
+</tr>
+</tbody>
+</table>
+<hr />
+<h2 id="v20week-4-5">📋 下一步计划:模板系统 v2.0(Week 4-5)</h2>
+<p><strong>计划周期:2026-01-23 ~ 2026-01-31</strong></p>
+<p><strong>目标:完成「示例文档驱动」的模板生成系统</strong></p>
+<h3 id="1">1. 数据模型重构 ✅ 已完成</h3>
+<ul>
+<li>[x] 数据库表重构(templates, source_files, variables, generations)</li>
+<li>[x] 实体类创建(Template, SourceFile, Variable, Generation)</li>
+<li>[x] Repository 接口(4个)</li>
+<li>[x] all_tables.sql 完整表结构</li>
+<li>[x] rebuild_all.sh --simple 模式</li>
+</ul>
+<h3 id="2">2. 模板管理(下一步重点)</h3>
+<p><strong>核心用户流程:</strong>
+1. 用户上传示例报告(Word 文档)
+2. 在报告中选中文本,标记为"变量"
+3. 为每个变量配置数据来源(从哪个来源文件提取)
+4. 保存为模板</p>
+<p><strong>待实现 API:</strong></p>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/templates</code></td>
+<td>POST</td>
+<td>创建模板</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}</code></td>
+<td>GET</td>
+<td>获取模板详情</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates</code></td>
+<td>GET</td>
+<td>模板列表</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}</code></td>
+<td>PUT</td>
+<td>更新模板</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/publish</code></td>
+<td>POST</td>
+<td>发布模板</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/source-files</code></td>
+<td>POST</td>
+<td>添加来源文件定义</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/variables</code></td>
+<td>POST</td>
+<td>添加变量</td>
+<td>⏳</td>
+</tr>
+</tbody>
+</table>
+<h3 id="3">3. 报告生成</h3>
+<p><strong>核心用户流程:</strong>
+1. 选择模板
+2. 上传新的来源文件(按模板定义的别名)
+3. 系统自动提取变量值
+4. 用户确认/修改提取结果
+5. 生成新报告</p>
+<p><strong>待实现 API:</strong></p>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/generations</code></td>
+<td>POST</td>
+<td>创建生成任务</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}</code></td>
+<td>GET</td>
+<td>获取生成任务详情</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/extract</code></td>
+<td>POST</td>
+<td>执行变量提取</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/confirm</code></td>
+<td>POST</td>
+<td>确认提取结果</td>
+<td>⏳</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/generate</code></td>
+<td>POST</td>
+<td>生成最终报告</td>
+<td>⏳</td>
+</tr>
+</tbody>
+</table>
+<h3 id="4-api">4. 已实现的数据源 API(保留)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/datasource</code></td>
+<td>POST</td>
+<td>创建数据源</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/{id}</code></td>
+<td>GET</td>
+<td>获取数据源</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/{id}/value</code></td>
+<td>GET</td>
+<td>获取数据源值</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/batch-value</code></td>
+<td>POST</td>
+<td>批量获取值</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<hr />
+<h2 id="_5">⚠️ 关键缺失(对照技术预研表)</h2>
+<table>
+<thead>
+<tr>
+<th>预研项</th>
+<th>进度</th>
+<th>已完成 ✅</th>
+<th>待实现 ❌</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>1️⃣ 规则"智能体"设计</strong></td>
+<td>45%</td>
+<td>Graph Service 架构<br>规则、模板数据模型<br>RAG 问答服务<br><strong>NER 实体提取</strong><br><strong>Neo4j 图数据库</strong></td>
+<td>规则 DSL 定义与解析<br>规则执行引擎<br>多层计算算法</td>
+</tr>
+<tr>
+<td><strong>2️⃣ 产品定位与功能逻辑</strong></td>
+<td>45%</td>
+<td>6大后端服务框架<br><strong>前端交互原型</strong><br>基础组件<br><strong>结构化文档展示</strong></td>
+<td>所有前端页面 UI<br>智能体集群架构<br>规则校验功能</td>
+</tr>
+<tr>
+<td><strong>3️⃣ 规则智能体模拟</strong></td>
+<td>50%</td>
+<td>TextStorage(文本存储)<br>GraphNode、GraphRelation<br><strong>向量相似度检索</strong><br><strong>NER + 关系构建</strong><br><strong>文档结构化存储</strong></td>
+<td>规则逻辑树算法<br>单规则校验引擎<br>知识图谱构建算法</td>
+</tr>
+<tr>
+<td><strong>4️⃣ AI模态体型/OCR</strong></td>
+<td>70%</td>
+<td>PaddleOCR Client<br>PDF/Word/Excel 提取<br><strong>DeepSeek API</strong><br><strong>Ollama Embedding</strong><br><strong>Word 结构化提取</strong></td>
+<td>AI多模态模型接入<br>NSDK集成<br>OCR后处理优化</td>
+</tr>
+<tr>
+<td><strong>5️⃣ 前端交互设计</strong></td>
+<td>20%</td>
+<td><strong>前端交互原型 HTML</strong><br>文档编辑预览<br>实体高亮展示</td>
+<td>所有核心页面 UI<br>与后端 API 对接</td>
+</tr>
+</tbody>
+</table>
+<hr />
+<h2 id="_6">📁 项目结构</h2>
+<div class="codehilite"><pre><span></span><code><span class="nx">backend</span><span class="o">/</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">common</span><span class="o">/</span><span class="w">                 </span><span class="err">#</span><span class="w"> </span><span class="nx">公共模块</span>
+<span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="nx">mybatis</span><span class="o">/</span><span class="w">            </span><span class="err">#</span><span class="w"> </span><span class="nx">PostgreSqlJsonbTypeHandler</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">auth</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">           </span><span class="err">#</span><span class="w"> </span><span class="nx">认证服务</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">document</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">       </span><span class="err">#</span><span class="w"> </span><span class="nx">文档管理服务</span>
+<span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="nx">entity</span><span class="o">/</span><span class="w">             </span><span class="err">#</span><span class="w"> </span><span class="nx">Document</span><span class="p">,</span><span class="w"> </span><span class="nx">DocumentElement</span><span class="p">,</span><span class="w"> </span><span class="nx">DocumentBlock</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">parse</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">          </span><span class="err">#</span><span class="w"> </span><span class="nx">解析服务</span>
+<span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="nx">service</span><span class="o">/</span><span class="w">            </span><span class="err">#</span><span class="w"> </span><span class="nx">WordStructuredExtractionService</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">ai</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">             </span><span class="err">#</span><span class="w"> </span><span class="nx">AI服务</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">graph</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">          </span><span class="err">#</span><span class="w"> </span><span class="nx">图谱服务</span><span class="err">(</span><span class="nx">RAG</span><span class="err">、</span><span class="nx">NER</span><span class="err">、</span><span class="nx">图数据库</span><span class="err">)</span>
+<span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="nx">neo4j</span><span class="o">/</span><span class="w">              </span><span class="err">#</span><span class="w"> </span><span class="nx">Neo4j</span><span class="w"> </span><span class="nx">集成服务</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">extract</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">        </span><span class="err">#</span><span class="w"> </span><span class="nx">模板系统服务</span><span class="err">(</span><span class="nx">v2</span><span class="m m-Double">.0</span><span class="err">)</span>
+<span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="nx">entity</span><span class="o">/</span><span class="w">             </span><span class="err">#</span><span class="w"> </span><span class="nx">Template</span><span class="p">,</span><span class="w"> </span><span class="nx">SourceFile</span><span class="p">,</span><span class="w"> </span><span class="nx">Variable</span><span class="p">,</span><span class="w"> </span><span class="nx">Generation</span>
+<span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="nx">repository</span><span class="o">/</span><span class="w">         </span><span class="err">#</span><span class="w"> </span><span class="mi">4</span><span class="nx">个</span><span class="w"> </span><span class="nx">Repository</span>
+<span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="nx">dto</span><span class="o">/</span><span class="nx">config</span><span class="o">/</span><span class="w">         </span><span class="err">#</span><span class="w"> </span><span class="nx">VariableLocation</span><span class="p">,</span><span class="w"> </span><span class="nx">ReferenceSourceConfig</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">notification</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">   </span><span class="err">#</span><span class="w"> </span><span class="nx">通知服务</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">gateway</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">        </span><span class="err">#</span><span class="w"> </span><span class="nx">网关服务</span>
+<span class="err">├──</span><span class="w"> </span><span class="nx">lingyue</span><span class="o">-</span><span class="nx">starter</span><span class="o">/</span><span class="w">        </span><span class="err">#</span><span class="w"> </span><span class="nx">单体应用启动器</span>
+<span class="err">└──</span><span class="w"> </span><span class="nx">sql</span><span class="o">/</span><span class="w">                    </span><span class="err">#</span><span class="w"> </span><span class="nx">数据库脚本</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">rebuild_all</span><span class="p">.</span><span class="nx">sh</span><span class="w">      </span><span class="err">#</span><span class="w"> </span><span class="nx">完整重建脚本</span><span class="err">(</span><span class="nx">支持</span><span class="w"> </span><span class="o">--</span><span class="nx">simple</span><span class="err">)</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">all_tables</span><span class="p">.</span><span class="nx">sql</span><span class="w">      </span><span class="err">#</span><span class="w"> </span><span class="nx">完整表结构</span><span class="err">(</span><span class="mi">21</span><span class="nx">张表</span><span class="err">)</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">template_tables</span><span class="p">.</span><span class="nx">sql</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="nx">模板系统表</span><span class="err">(</span><span class="nx">v2</span><span class="m m-Double">.0</span><span class="err">)</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">init</span><span class="p">.</span><span class="nx">sql</span><span class="w">            </span><span class="err">#</span><span class="w"> </span><span class="nx">基础表</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">graph_tables</span><span class="p">.</span><span class="nx">sql</span><span class="w">    </span><span class="err">#</span><span class="w"> </span><span class="nx">图谱表</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">supplement_tables</span><span class="p">.</span><span class="nx">sql</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="nx">补充表</span>
+<span class="w">    </span><span class="err">└──</span><span class="w"> </span><span class="nx">rag_tables_compatible</span><span class="p">.</span><span class="nx">sql</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="nx">RAG</span><span class="w"> </span><span class="nx">表</span>
+
+<span class="nx">python</span><span class="o">-</span><span class="nx">services</span><span class="o">/</span>
+<span class="err">└──</span><span class="w"> </span><span class="nx">ner</span><span class="o">-</span><span class="nx">service</span><span class="o">/</span><span class="w">            </span><span class="err">#</span><span class="w"> </span><span class="nx">NER</span><span class="w"> </span><span class="nx">Python</span><span class="w"> </span><span class="nx">服务</span>
+<span class="w">    </span><span class="err">├──</span><span class="w"> </span><span class="nx">app</span><span class="o">/</span>
+<span class="w">    </span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="nx">models</span><span class="o">/</span><span class="w">         </span><span class="err">#</span><span class="w"> </span><span class="nx">数据模型</span>
+<span class="w">    </span><span class="err">│</span><span class="w">   </span><span class="err">├──</span><span class="w"> </span><span class="nx">routers</span><span class="o">/</span><span class="w">        </span><span class="err">#</span><span class="w"> </span><span class="nx">API</span><span class="w"> </span><span class="nx">路由</span>
+<span class="w">    </span><span class="err">│</span><span class="w">   </span><span class="err">└──</span><span class="w"> </span><span class="nx">services</span><span class="o">/</span><span class="w">       </span><span class="err">#</span><span class="w"> </span><span class="nx">业务服务</span>
+<span class="w">    </span><span class="err">│</span><span class="w">       </span><span class="err">├──</span><span class="w"> </span><span class="nx">ner_service</span><span class="p">.</span><span class="nx">py</span><span class="w">      </span><span class="err">#</span><span class="w"> </span><span class="nx">NER</span><span class="w"> </span><span class="nx">调度</span>
+<span class="w">    </span><span class="err">│</span><span class="w">       </span><span class="err">├──</span><span class="w"> </span><span class="nx">deepseek_service</span><span class="p">.</span><span class="nx">py</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="nx">DeepSeek</span><span class="w"> </span><span class="nx">API</span>
+<span class="w">    </span><span class="err">│</span><span class="w">       </span><span class="err">└──</span><span class="w"> </span><span class="nx">relation_service</span><span class="p">.</span><span class="nx">py</span><span class="w"> </span><span class="err">#</span><span class="w"> </span><span class="nx">关系抽取</span>
+<span class="w">    </span><span class="err">└──</span><span class="w"> </span><span class="nx">requirements</span><span class="p">.</span><span class="nx">txt</span>
+
+<span class="nx">frontend</span><span class="o">/</span>
+<span class="err">└──</span><span class="w"> </span><span class="nx">灵越智报_完整交互版</span><span class="p">.</span><span class="nx">html</span><span class="w">  </span><span class="err">#</span><span class="w"> </span><span class="nx">前端交互原型</span>
+
+<span class="nx">database</span><span class="o">/</span>
+<span class="err">└──</span><span class="w"> </span><span class="nx">migrations</span><span class="o">/</span><span class="w">             </span><span class="err">#</span><span class="w"> </span><span class="nx">数据库迁移脚本</span>
+<span class="w">    </span><span class="err">└──</span><span class="w"> </span><span class="nx">V2026_01_21_02__add_document_elements</span><span class="p">.</span><span class="nx">sql</span>
+</code></pre></div>
+
+<hr />
+<h2 id="_7">🔧 技术栈确认</h2>
+<table>
+<thead>
+<tr>
+<th>组件</th>
+<th>技术选型</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>后端框架</td>
+<td>Spring Boot 3.1.5</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>数据库</td>
+<td>PostgreSQL + pgvector</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>缓存</td>
+<td>Redis</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>消息队列</td>
+<td>RabbitMQ</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>NER 模型</td>
+<td>DeepSeek API(内测)</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>Embedding</td>
+<td>Ollama nomic-embed-text</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>OCR</td>
+<td>PaddleOCR</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>图数据库</td>
+<td>PostgreSQL + <strong>Neo4j 4.4</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td>文档解析</td>
+<td>Apache POI(Word 结构化)</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>前端</td>
+<td>HTML 交互原型</td>
+<td>✅</td>
+</tr>
+<tr>
+<td>前端框架</td>
+<td>Flutter Web(待开发)</td>
+<td>⏳</td>
+</tr>
+</tbody>
+</table>
+<hr />
+<h2 id="_8">📅 里程碑</h2>
+<ul>
+<li><strong>M1(2月10日)</strong>:第一阶段完成,核心流程跑通</li>
+<li>✅ 文件上传解析</li>
+<li>✅ RAG 向量检索</li>
+<li>✅ NER 实体提取</li>
+<li>✅ 文档结构化解析(图片、表格)</li>
+<li>✅ Neo4j 图数据库集成</li>
+<li>✅ <strong>数据源管理</strong>(已完成)</li>
+<li>✅ <strong>一键上传全自动处理</strong>(已完成)</li>
+<li>✅ <strong>任务中心进度跟踪</strong>(已完成)</li>
+<li>⏳ 模板基础(下一步)</li>
+</ul>
+<hr />
+<h2 id="api">📋 API 接口清单</h2>
+<h3 id="auth-service">认证服务(auth-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/auth/register</code></td>
+<td>POST</td>
+<td>用户注册</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/auth/login</code></td>
+<td>POST</td>
+<td>用户登录</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/auth/logout</code></td>
+<td>POST</td>
+<td>用户登出</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/auth/refresh</code></td>
+<td>POST</td>
+<td>刷新Token</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/auth/me</code></td>
+<td>GET</td>
+<td>获取当前用户</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/auth/profile</code></td>
+<td>PUT</td>
+<td><strong>更新用户资料</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/auth/password</code></td>
+<td>PUT</td>
+<td><strong>修改密码</strong></td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="document-service">文档管理服务(document-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/documents</code></td>
+<td>GET</td>
+<td>文档列表(分页)</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}</code></td>
+<td>GET</td>
+<td>文档详情</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}</code></td>
+<td>PUT</td>
+<td><strong>更新文档</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}</code></td>
+<td>DELETE</td>
+<td><strong>级联删除</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/batch-delete</code></td>
+<td>POST</td>
+<td><strong>批量删除</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}/text</code></td>
+<td>GET</td>
+<td>获取文档文本</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}/parse-status</code></td>
+<td>GET</td>
+<td>解析状态</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}/elements</code></td>
+<td>GET</td>
+<td>结构化元素</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}/images</code></td>
+<td>GET</td>
+<td>图片列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/documents/{id}/tables</code></td>
+<td>GET</td>
+<td>表格列表</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="_9">文件上传(唯一入口)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/parse/upload</code></td>
+<td>POST</td>
+<td><strong>一键上传,自动触发全流程</strong></td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="parse-service">文档解析服务(parse-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/parse/structured/{documentId}</code></td>
+<td>GET</td>
+<td>手动触发结构化解析</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/parse/elements/{documentId}</code></td>
+<td>GET</td>
+<td>获取所有结构化元素</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/parse/elements/{documentId}/images</code></td>
+<td>GET</td>
+<td>获取图片列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/parse/elements/{documentId}/tables</code></td>
+<td>GET</td>
+<td>获取表格列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/files/images/{docId}/{filename}</code></td>
+<td>GET</td>
+<td>获取图片资源</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="parse-service_1">任务中心(parse-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/tasks/list</code></td>
+<td>GET</td>
+<td>获取任务列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/tasks/{taskId}/detail</code></td>
+<td>GET</td>
+<td>获取任务详情</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/tasks/by-document/{documentId}</code></td>
+<td>GET</td>
+<td>按文档ID查询任务</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/tasks/statistics</code></td>
+<td>GET</td>
+<td>获取任务统计</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="ner-ner-service">NER 服务(ner-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/ner/extract</code></td>
+<td>POST</td>
+<td>文本实体抽取</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/ner/document/{id}</code></td>
+<td>POST</td>
+<td>手动触发文档实体抽取</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/ner/relations</code></td>
+<td>POST</td>
+<td>关系抽取</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="graph-service">图谱服务(graph-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/graph/nodes</code></td>
+<td>POST</td>
+<td>创建节点</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/graph/nodes/{nodeId}</code></td>
+<td>GET/PUT/DELETE</td>
+<td>节点 CRUD</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/graph/documents/{documentId}/nodes</code></td>
+<td>GET</td>
+<td>按文档查询节点</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/graph/relations</code></td>
+<td>POST</td>
+<td>创建关系</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="graph-service_1">数据源服务(graph-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/datasource</code></td>
+<td>POST</td>
+<td>创建数据源</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/{id}</code></td>
+<td>GET</td>
+<td>获取数据源</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/document/{documentId}</code></td>
+<td>GET</td>
+<td>按文档查询</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/{id}/refs</code></td>
+<td>PUT</td>
+<td>更新绑定节点</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/{id}/value</code></td>
+<td>GET</td>
+<td><strong>获取数据源值</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/datasource/batch-value</code></td>
+<td>POST</td>
+<td><strong>批量获取值</strong></td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="extract-service">模板系统(extract-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/templates</code></td>
+<td>POST</td>
+<td>创建模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}</code></td>
+<td>GET</td>
+<td>获取模板详情</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates</code></td>
+<td>GET</td>
+<td>模板列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}</code></td>
+<td>PUT</td>
+<td>更新模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}</code></td>
+<td>DELETE</td>
+<td>删除模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/publish</code></td>
+<td>POST</td>
+<td>发布模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/archive</code></td>
+<td>POST</td>
+<td>归档模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/duplicate</code></td>
+<td>POST</td>
+<td>复制模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/source-files</code></td>
+<td>POST</td>
+<td>添加来源文件定义</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/source-files</code></td>
+<td>GET</td>
+<td>获取来源文件列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/variables</code></td>
+<td>POST</td>
+<td>添加变量</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/variables</code></td>
+<td>GET</td>
+<td>获取变量列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/{id}/variables/grouped</code></td>
+<td>GET</td>
+<td><strong>变量按类别分组</strong></td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/templates/variables/{id}/preview</code></td>
+<td>POST</td>
+<td>预览提取结果</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="extract-service_1">生成任务(extract-service)</h3>
+<table>
+<thead>
+<tr>
+<th>接口</th>
+<th>方法</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>/api/v1/generations</code></td>
+<td>POST</td>
+<td>创建生成任务</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}</code></td>
+<td>GET</td>
+<td>获取任务详情</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations</code></td>
+<td>GET</td>
+<td>获取任务列表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/execute</code></td>
+<td>POST</td>
+<td>执行变量提取</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/progress</code></td>
+<td>GET</td>
+<td>获取执行进度</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/variables/{varName}</code></td>
+<td>PUT</td>
+<td>修改变量值</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/confirm</code></td>
+<td>POST</td>
+<td>确认并生成文档</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>/api/v1/generations/{id}/download</code></td>
+<td>GET</td>
+<td>下载生成文档</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<hr />
+<h2 id="21">🗄️ 数据库表清单(21张)</h2>
+<h3 id="_10">基础模块</h3>
+<table>
+<thead>
+<tr>
+<th>表名</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>users</code></td>
+<td>用户表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>documents</code></td>
+<td>文档表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>elements</code></td>
+<td>要素表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>annotations</code></td>
+<td>批注表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>graphs</code></td>
+<td>关系网络表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>parse_tasks</code></td>
+<td>解析任务(多阶段进度)</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>sessions</code></td>
+<td>会话表</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="_11">图谱模块</h3>
+<table>
+<thead>
+<tr>
+<th>表名</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>graph_nodes</code></td>
+<td>图节点(NER实体)</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>graph_relations</code></td>
+<td>图关系</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="_12">补充模块</h3>
+<table>
+<thead>
+<tr>
+<th>表名</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>rules</code></td>
+<td>规则表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>data_sources</code></td>
+<td>数据源表</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>text_storage</code></td>
+<td>文本存储</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="rag">RAG 模块</h3>
+<table>
+<thead>
+<tr>
+<th>表名</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>text_chunks</code></td>
+<td>文本分块</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>vector_embeddings</code></td>
+<td>向量嵌入(pgvector)</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="_13">文档结构化模块</h3>
+<table>
+<thead>
+<tr>
+<th>表名</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>document_blocks</code></td>
+<td>文档块(TextElement)</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>document_entities</code></td>
+<td>文档实体标注</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>document_elements</code></td>
+<td>文档结构化元素</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+<h3 id="v20">模板系统 v2.0(新增)</h3>
+<table>
+<thead>
+<tr>
+<th>表名</th>
+<th>说明</th>
+<th>状态</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>templates</code></td>
+<td>报告模板</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>source_files</code></td>
+<td>来源文件定义</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>variables</code></td>
+<td>模板变量</td>
+<td>✅</td>
+</tr>
+<tr>
+<td><code>generations</code></td>
+<td>生成任务</td>
+<td>✅</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>

+ 178 - 6
进度报告.md

@@ -1,16 +1,17 @@
 # 📊 灵越智报 2.0 - 当前进度总结
 
-**整体进度:90%**  |  **报告日期:2026-01-24**
+**整体进度:92%**  |  **报告日期:2026-01-25**
 
 ---
 
-## ✅ 已完成(90%)
+## ✅ 已完成(92%)
 
 ### 基础设施
 - Spring Boot 3.1.5 单体应用架构(lingyue-starter)
 - 数据库(PostgreSQL + pgvector)、缓存(Redis)、消息队列(RabbitMQ)配置完成
 - 6大服务模块框架搭建完成
 - **数据库重建脚本** → ✅ 完整的 `rebuild_all.sh` 脚本
+- **Systemd 服务配置** → ✅ 服务器部署脚本 `scripts/systemd/`
 
 ### 核心模块现状
 
@@ -28,7 +29,9 @@
 | **模板系统** | 数据模型 | ✅ | v2.0 重构完成 |
 | **模板系统** | Service/Controller | ✅ | 完整 CRUD + 状态管理 |
 | **报告生成** | 变量提取/文档生成 | ✅ | 基础流程实现完成 |
-| **前端界面** | 所有页面 | ⏳ | Flutter Web 待开发 |
+| **规则系统** | 规则智能体 | ⚠️ | **数据模型已有,逻辑未实现** |
+| **前端界面** | Vue Demo | ✅ | 测试用 demo 完成 |
+| **前端界面** | 正式 UI | ⏳ | Flutter Web 待开发 |
 
 ### 模块完成度
 
@@ -43,9 +46,34 @@ NER服务       ████████████████████ 100
 任务中心      ████████████████████ 100%
 模板系统      ████████████████████ 100% (完整实现)
 报告生成      ████████████████░░░░  80% (基础流程)
-前端界面      ████░░░░░░░░░░░░░░░░  20% (HTML原型)
+规则系统      ████░░░░░░░░░░░░░░░░  20% (仅数据模型)
+前端界面      ████████░░░░░░░░░░░░  40% (Vue Demo)
 ```
 
+### 新增功能(2026-01-25)✅ 前端 Vue Demo + 服务部署
+
+- ✅ **Vue 3 前端 Demo**(`frontend/vue-demo/`)
+  - 技术栈:Vue 3 + Vite + Element Plus + Pinia
+  - 登录/注册页面(对接后端认证 API)
+  - 首页(统计数据从 API 获取)
+  - 模板管理页面
+  - 模板编辑器(变量标记、分类管理)
+  - 生成任务管理
+  - 路由守卫(登录验证)
+
+- ✅ **Systemd 服务配置**(`scripts/systemd/`)
+  - `lingyue-starter.service` (端口 18520)
+  - `lingyue-extract.service` (端口 18521)
+  - `lingyue-ner.service` (端口 18522)
+  - 一键安装脚本 `install-services.sh`
+
+- ✅ **首页统计 API**
+  - `GET /api/v1/templates/stats` - 获取统计数据
+  - 返回:reportCount, templateCount, variableCount, sourceFileCount
+
+- ✅ **安全配置更新**
+  - SecurityConfig 添加模板系统 API 路径许可
+
 ### 新增功能(2026-01-24)✅ 模板系统完整实现 + 原型适配
 
 - ✅ **Service 层(6个服务)**
@@ -334,10 +362,154 @@ NER服务       ████████████████████ 100
 | 预研项 | 进度 | 已完成 ✅ | 待实现 ❌ |
 |--------|------|-----------|-----------|
 | **1️⃣ 规则"智能体"设计** | 45% | Graph Service 架构<br>规则、模板数据模型<br>RAG 问答服务<br>**NER 实体提取**<br>**Neo4j 图数据库** | 规则 DSL 定义与解析<br>规则执行引擎<br>多层计算算法 |
-| **2️⃣ 产品定位与功能逻辑** | 45% | 6大后端服务框架<br>**前端交互原型**<br>基础组件<br>**结构化文档展示** | 所有前端页面 UI<br>智能体集群架构<br>规则校验功能 |
+| **2️⃣ 产品定位与功能逻辑** | 55% | 6大后端服务框架<br>**前端 Vue Demo**<br>基础组件<br>**结构化文档展示** | Flutter 正式 UI<br>智能体集群架构<br>规则校验功能 |
 | **3️⃣ 规则智能体模拟** | 50% | TextStorage(文本存储)<br>GraphNode、GraphRelation<br>**向量相似度检索**<br>**NER + 关系构建**<br>**文档结构化存储** | 规则逻辑树算法<br>单规则校验引擎<br>知识图谱构建算法 |
 | **4️⃣ AI模态体型/OCR** | 70% | PaddleOCR Client<br>PDF/Word/Excel 提取<br>**DeepSeek API**<br>**Ollama Embedding**<br>**Word 结构化提取** | AI多模态模型接入<br>NSDK集成<br>OCR后处理优化 |
-| **5️⃣ 前端交互设计** | 20% | **前端交互原型 HTML**<br>文档编辑预览<br>实体高亮展示 | 所有核心页面 UI<br>与后端 API 对接 |
+| **5️⃣ 前端交互设计** | 40% | **前端 Vue Demo**<br>**登录/注册页面**<br>**模板管理页面**<br>文档编辑预览<br>实体高亮展示 | Flutter 正式 UI<br>知识图谱可视化 |
+
+---
+
+## 🔴 规则系统模块 - 详细欠缺分析
+
+根据设计文档 `a_docs/灵越智报2.0程序设计详解.md` 中的规则系统设计,以下是当前实现与设计目标的对比:
+
+### 已有基础设施
+
+| 组件 | 状态 | 说明 |
+|------|------|------|
+| `rules` 表 | ✅ | 数据库表结构已定义 |
+| `Rule` 实体类 | ✅ | `graph-service` 中有基础实体 |
+| `ExtractRule` 实体类 | ✅ | `extract-service` 中有提取规则实体 |
+| `RuleRepository` | ✅ | 仅有 Mapper 接口 |
+| `RuleTemplate` 实体类 | ✅ | 规则模板实体 |
+| 图节点/关系存储 | ✅ | `graph_nodes` + `graph_relations` |
+| Neo4j 集成 | ✅ | 双写同步 |
+
+### ❌ 核心欠缺功能
+
+#### 1. 规则 Service 层(完全缺失)
+
+```
+需要实现:
+- RuleService.java          # 规则 CRUD + 执行调度
+- RuleExecutionService.java # 规则链执行引擎
+- RuleValidationService.java # 规则校验逻辑
+```
+
+**设计要求**:
+- 规则本质是 n 个节点之间的关系链(类似单链表)
+- 唯一入口,唯一出口,有方向性
+- 支持条件分支(拆分为多条规则)
+
+#### 2. 规则 Controller 层(完全缺失)
+
+```
+需要实现的 API:
+POST   /api/v1/rules                    # 创建规则
+GET    /api/v1/rules/{id}               # 获取规则详情
+GET    /api/v1/rules                    # 规则列表
+PUT    /api/v1/rules/{id}               # 更新规则
+DELETE /api/v1/rules/{id}               # 删除规则
+POST   /api/v1/rules/{id}/validate      # 校验规则
+POST   /api/v1/rules/{id}/execute       # 执行规则
+GET    /api/v1/rules/{id}/trace         # 获取执行轨迹
+```
+
+#### 3. 规则执行引擎(完全缺失)
+
+**设计要求**(来自设计文档 2.5 章节):
+
+| 关系类型 | 说明 | 实现状态 |
+|----------|------|----------|
+| 依赖关系(DEP) | 数据获取依赖,不涉及计算 | ❌ |
+| 计算关系 | 加减乘除、取并集、取交集 | ❌ |
+| AI能力调用 | 调用AI进行文本生成、总结 | ❌ |
+
+**核心类设计**:
+
+```java
+// 规则执行器接口
+interface RuleExecutor {
+    Object execute(RuleContext context);
+}
+
+// 规则动作类型(设计文档提到约 20-200 类)
+enum RuleActionType {
+    DEP_FETCH,      // 依赖获取
+    CALC_ADD,       // 加法
+    CALC_SUB,       // 减法
+    CALC_MUL,       // 乘法
+    CALC_DIV,       // 除法
+    CALC_UNION,     // 取并集
+    CALC_INTERSECT, // 取交集
+    AI_GENERATE,    // AI 生成
+    AI_SUMMARIZE,   // AI 总结
+    AI_EXTRACT,     // AI 提取
+    // ...
+}
+```
+
+#### 4. 规则 DSL 定义与解析(完全缺失)
+
+**设计要求**:
+- 规则用 DSL(领域特定语言)描述
+- 支持 AI 对话生成规则
+- 输出固定格式的规则描述
+
+```
+示例 DSL 格式(待设计):
+RULE "计算总价"
+  INPUT @产品单价, @产品数量
+  ACTION CALC_MUL(@产品单价, @产品数量)
+  OUTPUT @总价
+END
+```
+
+#### 5. 规则智能体(完全缺失)
+
+**设计要求**(来自设计文档 2.5.5 章节):
+
+| 能力 | 说明 | 实现状态 |
+|------|------|----------|
+| 规则逻辑校验 | 验证规则链完整性、检查循环依赖 | ❌ |
+| 规则关联分析 | 分析规则之间的依赖关系 | ❌ |
+| 要素查询 | 根据规则查询相关节点 | ❌ |
+| 上下文生成 | 将图关系转换为 AI 可理解的格式 | ❌ |
+
+#### 6. AI 记忆库构建(完全缺失)
+
+**设计要求**:
+- 输入+输出模式记录
+- 规则逻辑上下文保存
+- 自动发现规则关联
+
+### 📋 规则系统实现优先级
+
+| 优先级 | 功能 | 预计工作量 |
+|--------|------|------------|
+| P0 | RuleService CRUD | 2天 |
+| P0 | RuleController API | 1天 |
+| P1 | 规则执行引擎(基础动作) | 3天 |
+| P1 | 规则校验(入口→出口路径) | 2天 |
+| P2 | 规则 DSL 解析器 | 3天 |
+| P2 | AI 对话生成规则 | 2天 |
+| P3 | 规则智能体上下文构建 | 3天 |
+| P3 | AI 记忆库 | 2天 |
+
+**总计:约 18 人天**
+
+### 与模板系统的关系
+
+当前模板系统(v2.0)采用的是「示例文档驱动」的设计:
+- 用户上传示例报告 → 标记变量 → 配置提取规则 → 生成新报告
+
+规则系统与模板系统的区别:
+- **模板系统**:侧重于「变量提取」和「文档生成」,规则相对简单
+- **规则系统**:侧重于「复杂计算链」和「多节点关联」,支持 AI 调用
+
+两者可以协同工作:
+- 模板变量的 `extract_type` 可以调用规则系统
+- 规则系统的输出可以作为模板变量的数据来源
 
 ---