|
|
@@ -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>
|