|
@@ -1,21 +1,43 @@
|
|
|
# 📊 灵越智报 2.0 - 当前进度总结
|
|
# 📊 灵越智报 2.0 - 当前进度总结
|
|
|
|
|
|
|
|
-**整体进度:60%** | **报告日期:2026-01-20**
|
|
|
|
|
|
|
+**整体进度:70%** | **报告日期:2026-01-21**
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-## ✅ 已完成(60%)
|
|
|
|
|
|
|
+## ✅ 已完成(70%)
|
|
|
|
|
|
|
|
### 基础设施
|
|
### 基础设施
|
|
|
- Spring Boot 3.1.5 单体应用架构(lingyue-starter)
|
|
- Spring Boot 3.1.5 单体应用架构(lingyue-starter)
|
|
|
- 数据库(PostgreSQL + pgvector)、缓存(Redis)、消息队列(RabbitMQ)配置完成
|
|
- 数据库(PostgreSQL + pgvector)、缓存(Redis)、消息队列(RabbitMQ)配置完成
|
|
|
- 6大服务模块框架搭建完成
|
|
- 6大服务模块框架搭建完成
|
|
|
|
|
+- **数据库重建脚本** → ✅ 完整的 `rebuild_all.sh` 脚本
|
|
|
|
|
|
|
|
### 核心模块现状
|
|
### 核心模块现状
|
|
|
- 📁 文档管理、解析、认证 → 框架完成
|
|
- 📁 文档管理、解析、认证 → 框架完成
|
|
|
- 🤖 AI服务、图谱服务 → 数据层完成,RAG 功能已实现
|
|
- 🤖 AI服务、图谱服务 → 数据层完成,RAG 功能已实现
|
|
|
- 🔍 **RAG 向量化存储** → ✅ 已完成
|
|
- 🔍 **RAG 向量化存储** → ✅ 已完成
|
|
|
- 🏷️ **NER 实体识别服务** → ✅ 已完成并测试验证
|
|
- 🏷️ **NER 实体识别服务** → ✅ 已完成并测试验证
|
|
|
|
|
+- 📄 **文档结构化解析** → ✅ 已完成(图片、表格、样式)
|
|
|
|
|
+
|
|
|
|
|
+### 新增功能(2026-01-21)✅ 文档结构化解析完成
|
|
|
|
|
+- ✅ **Word 文档结构化提取**
|
|
|
|
|
+ - 完整提取段落、标题、图片、表格等元素
|
|
|
|
|
+ - 保留元素在文档中的原始顺序和位置
|
|
|
|
|
+ - 图片自动提取并保存到独立目录
|
|
|
|
|
+ - 支持图片尺寸、格式、描述信息提取
|
|
|
|
|
+- ✅ **DocumentElement 实体存储**
|
|
|
|
|
+ - 新增 `document_elements` 表存储结构化内容
|
|
|
|
|
+ - 支持 JSONB 字段存储样式和表格数据
|
|
|
|
|
+ - 自定义 `PostgreSqlJsonbTypeHandler` 处理 JSONB 类型
|
|
|
|
|
+- ✅ **结构化解析 API**
|
|
|
|
|
+ - `GET /parse/structured/{documentId}` - 触发结构化解析
|
|
|
|
|
+ - `GET /parse/elements/{documentId}` - 获取所有元素
|
|
|
|
|
+ - `GET /parse/elements/{documentId}/images` - 获取图片列表
|
|
|
|
|
+ - `GET /parse/elements/{documentId}/tables` - 获取表格列表
|
|
|
|
|
+- ✅ **数据库脚本完善**
|
|
|
|
|
+ - 完整的数据库重建脚本 `rebuild_all.sh`
|
|
|
|
|
+ - 修复 UUID/VARCHAR 类型不兼容问题
|
|
|
|
|
+ - 统一表结构字段命名规范
|
|
|
|
|
|
|
|
### 新增功能(2026-01-20)✅ NER Demo 测试完成
|
|
### 新增功能(2026-01-20)✅ NER Demo 测试完成
|
|
|
- ✅ **DeepSeek API 集成**
|
|
- ✅ **DeepSeek API 集成**
|
|
@@ -71,7 +93,7 @@
|
|
|
|
|
|
|
|
根据设计文档 **6.2 第一阶段:核心数据流程(2月10日前)**
|
|
根据设计文档 **6.2 第一阶段:核心数据流程(2月10日前)**
|
|
|
|
|
|
|
|
-### Week 1-2 任务完成率:85%
|
|
|
|
|
|
|
+### Week 1-2 任务完成率:95%
|
|
|
|
|
|
|
|
| 任务 | 状态 | 说明 |
|
|
| 任务 | 状态 | 说明 |
|
|
|
|------|------|------|
|
|
|------|------|------|
|
|
@@ -79,7 +101,9 @@
|
|
|
| 文件类型识别 | ✅ | MIME 类型检测 |
|
|
| 文件类型识别 | ✅ | MIME 类型检测 |
|
|
|
| OCR 集成(飞浆OCR) | ✅ | Python 服务调用 |
|
|
| OCR 集成(飞浆OCR) | ✅ | Python 服务调用 |
|
|
|
| 文本提取(Word文档) | ✅ | Apache POI |
|
|
| 文本提取(Word文档) | ✅ | Apache POI |
|
|
|
|
|
+| **Word 结构化提取** | ✅ | 段落、图片、表格、样式 |
|
|
|
| TXT 文件存储 | ✅ | SSD 硬盘存储 |
|
|
| TXT 文件存储 | ✅ | SSD 硬盘存储 |
|
|
|
|
|
+| **图片资源提取存储** | ✅ | 自动提取并保存到独立目录 |
|
|
|
| 解析任务管理 | ✅ | 异步处理、状态跟踪 |
|
|
| 解析任务管理 | ✅ | 异步处理、状态跟踪 |
|
|
|
| NER 服务集成 | ✅ | DeepSeek API 集成 |
|
|
| NER 服务集成 | ✅ | DeepSeek API 集成 |
|
|
|
| 实体提取接口 | ✅ | 完整实体列表输出 |
|
|
| 实体提取接口 | ✅ | 完整实体列表输出 |
|
|
@@ -88,6 +112,7 @@
|
|
|
| 图节点 CRUD 接口 | ✅ | 完整 CRUD |
|
|
| 图节点 CRUD 接口 | ✅ | 完整 CRUD |
|
|
|
| 图关系 CRUD 接口 | ✅ | 完整 CRUD |
|
|
| 图关系 CRUD 接口 | ✅ | 完整 CRUD |
|
|
|
| 图查询接口 | ✅ | 按文档、按用户查询 |
|
|
| 图查询接口 | ✅ | 按文档、按用户查询 |
|
|
|
|
|
+| **Neo4j 集成** | ✅ | 本地部署,双写同步 |
|
|
|
|
|
|
|
|
### Week 3-4 任务待完成:
|
|
### Week 3-4 任务待完成:
|
|
|
|
|
|
|
@@ -188,11 +213,11 @@ CREATE TABLE IF NOT EXISTS templates (
|
|
|
|
|
|
|
|
| 预研项 | 进度 | 已完成 ✅ | 待实现 ❌ |
|
|
| 预研项 | 进度 | 已完成 ✅ | 待实现 ❌ |
|
|
|
|--------|------|-----------|-----------|
|
|
|--------|------|-----------|-----------|
|
|
|
-| **1️⃣ 规则"智能体"设计** | 40% | Graph Service 架构<br>规则、模板数据模型<br>RAG 问答服务<br>**NER 实体提取** | 规则 DSL 定义与解析<br>规则执行引擎<br>多层计算算法 |
|
|
|
|
|
-| **2️⃣ 产品定位与功能逻辑** | 40% | 6大后端服务框架<br>Flutter 项目结构<br>基础组件 | 所有前端页面 UI<br>智能体集群架构<br>规则校验功能 |
|
|
|
|
|
-| **3️⃣ 规则智能体模拟** | 45% | TextStorage(文本存储)<br>GraphNode、GraphRelation<br>**向量相似度检索**<br>**NER + 关系构建** | 规则逻辑树算法<br>单规则校验引擎<br>知识图谱构建算法 |
|
|
|
|
|
-| **4️⃣ AI模态体型/OCR** | 65% | PaddleOCR Client<br>PDF/Word/Excel 提取<br>**DeepSeek API**<br>**Ollama Embedding** | AI多模态模型接入<br>NSDK集成<br>OCR后处理优化 |
|
|
|
|
|
-| **5️⃣ 前端交互设计** | 15% | Flutter 项目结构<br>路由、主题配置<br>7个页面骨架 | 所有核心页面 UI<br>与后端 API 对接 |
|
|
|
|
|
|
|
+| **1️⃣ 规则"智能体"设计** | 45% | Graph Service 架构<br>规则、模板数据模型<br>RAG 问答服务<br>**NER 实体提取**<br>**Neo4j 图数据库** | 规则 DSL 定义与解析<br>规则执行引擎<br>多层计算算法 |
|
|
|
|
|
+| **2️⃣ 产品定位与功能逻辑** | 45% | 6大后端服务框架<br>**前端交互原型**<br>基础组件<br>**结构化文档展示** | 所有前端页面 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 对接 |
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
@@ -201,15 +226,24 @@ CREATE TABLE IF NOT EXISTS templates (
|
|
|
```
|
|
```
|
|
|
backend/
|
|
backend/
|
|
|
├── common/ # 公共模块
|
|
├── common/ # 公共模块
|
|
|
|
|
+│ └── mybatis/ # PostgreSqlJsonbTypeHandler
|
|
|
├── auth-service/ # 认证服务
|
|
├── auth-service/ # 认证服务
|
|
|
├── document-service/ # 文档管理服务
|
|
├── document-service/ # 文档管理服务
|
|
|
|
|
+│ └── entity/ # Document, DocumentElement, DocumentBlock
|
|
|
├── parse-service/ # 解析服务
|
|
├── parse-service/ # 解析服务
|
|
|
|
|
+│ └── service/ # WordStructuredExtractionService
|
|
|
├── ai-service/ # AI服务
|
|
├── ai-service/ # AI服务
|
|
|
├── graph-service/ # 图谱服务(RAG、NER、图数据库)
|
|
├── graph-service/ # 图谱服务(RAG、NER、图数据库)
|
|
|
|
|
+│ └── neo4j/ # Neo4j 集成服务
|
|
|
├── notification-service/ # 通知服务
|
|
├── notification-service/ # 通知服务
|
|
|
├── gateway-service/ # 网关服务
|
|
├── gateway-service/ # 网关服务
|
|
|
├── lingyue-starter/ # 单体应用启动器
|
|
├── lingyue-starter/ # 单体应用启动器
|
|
|
└── sql/ # 数据库脚本
|
|
└── sql/ # 数据库脚本
|
|
|
|
|
+ ├── rebuild_all.sh # 完整重建脚本
|
|
|
|
|
+ ├── init.sql # 基础表
|
|
|
|
|
+ ├── graph_tables.sql # 图谱表
|
|
|
|
|
+ ├── supplement_tables.sql # 补充表
|
|
|
|
|
+ └── rag_tables_compatible.sql # RAG 表
|
|
|
|
|
|
|
|
python-services/
|
|
python-services/
|
|
|
└── ner-service/ # NER Python 服务
|
|
└── ner-service/ # NER Python 服务
|
|
@@ -222,8 +256,12 @@ python-services/
|
|
|
│ └── relation_service.py # 关系抽取
|
|
│ └── relation_service.py # 关系抽取
|
|
|
└── requirements.txt
|
|
└── requirements.txt
|
|
|
|
|
|
|
|
-frontend_flutter/
|
|
|
|
|
-└── lib/ # Flutter 前端(待开发)
|
|
|
|
|
|
|
+frontend/
|
|
|
|
|
+└── 灵越智报_完整交互版.html # 前端交互原型
|
|
|
|
|
+
|
|
|
|
|
+database/
|
|
|
|
|
+└── migrations/ # 数据库迁移脚本
|
|
|
|
|
+ └── V2026_01_21_02__add_document_elements.sql
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
---
|
|
---
|
|
@@ -239,8 +277,10 @@ frontend_flutter/
|
|
|
| NER 模型 | DeepSeek API(内测)| ✅ |
|
|
| NER 模型 | DeepSeek API(内测)| ✅ |
|
|
|
| Embedding | Ollama nomic-embed-text | ✅ |
|
|
| Embedding | Ollama nomic-embed-text | ✅ |
|
|
|
| OCR | PaddleOCR | ✅ |
|
|
| OCR | PaddleOCR | ✅ |
|
|
|
-| 图数据库 | PostgreSQL 模拟(待接入 Neo4j)| ⏳ |
|
|
|
|
|
-| 前端 | Flutter Web | ⏳ |
|
|
|
|
|
|
|
+| 图数据库 | PostgreSQL + **Neo4j 4.4** | ✅ |
|
|
|
|
|
+| 文档解析 | Apache POI(Word 结构化)| ✅ |
|
|
|
|
|
+| 前端 | HTML 交互原型 | ✅ |
|
|
|
|
|
+| 前端框架 | Flutter Web(待开发)| ⏳ |
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
@@ -250,5 +290,58 @@ frontend_flutter/
|
|
|
- ✅ 文件上传解析
|
|
- ✅ 文件上传解析
|
|
|
- ✅ RAG 向量检索
|
|
- ✅ RAG 向量检索
|
|
|
- ✅ NER 实体提取
|
|
- ✅ NER 实体提取
|
|
|
|
|
+ - ✅ 文档结构化解析(图片、表格)
|
|
|
|
|
+ - ✅ Neo4j 图数据库集成
|
|
|
- ⏳ 数据源管理(下一步)
|
|
- ⏳ 数据源管理(下一步)
|
|
|
- ⏳ 模板基础(下一步)
|
|
- ⏳ 模板基础(下一步)
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 📋 API 接口清单
|
|
|
|
|
+
|
|
|
|
|
+### 文档解析服务(parse-service)
|
|
|
|
|
+
|
|
|
|
|
+| 接口 | 方法 | 说明 | 状态 |
|
|
|
|
|
+|------|------|------|------|
|
|
|
|
|
+| `/parse/structured/{documentId}` | GET | 触发结构化解析 | ✅ |
|
|
|
|
|
+| `/parse/elements/{documentId}` | GET | 获取所有结构化元素 | ✅ |
|
|
|
|
|
+| `/parse/elements/{documentId}/images` | GET | 获取图片列表 | ✅ |
|
|
|
|
|
+| `/parse/elements/{documentId}/tables` | GET | 获取表格列表 | ✅ |
|
|
|
|
|
+| `/api/v1/files/images/{docId}/{filename}` | GET | 获取图片资源 | ✅ |
|
|
|
|
|
+
|
|
|
|
|
+### NER 服务(ner-service)
|
|
|
|
|
+
|
|
|
|
|
+| 接口 | 方法 | 说明 | 状态 |
|
|
|
|
|
+|------|------|------|------|
|
|
|
|
|
+| `/api/ner/extract` | POST | 文本实体抽取 | ✅ |
|
|
|
|
|
+| `/api/ner/document/{id}` | POST | 文档实体抽取 | ✅ |
|
|
|
|
|
+| `/api/ner/relations` | POST | 关系抽取 | ✅ |
|
|
|
|
|
+
|
|
|
|
|
+### 图谱服务(graph-service)
|
|
|
|
|
+
|
|
|
|
|
+| 接口 | 方法 | 说明 | 状态 |
|
|
|
|
|
+|------|------|------|------|
|
|
|
|
|
+| `/api/v1/graph/nodes` | GET/POST | 节点 CRUD | ✅ |
|
|
|
|
|
+| `/api/v1/graph/relations` | GET/POST | 关系 CRUD | ✅ |
|
|
|
|
|
+| `/api/v1/graph/document/{id}` | GET | 按文档查询 | ✅ |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 🗄️ 数据库表清单
|
|
|
|
|
+
|
|
|
|
|
+| 表名 | 说明 | 状态 |
|
|
|
|
|
+|------|------|------|
|
|
|
|
|
+| `users` | 用户表 | ✅ |
|
|
|
|
|
+| `documents` | 文档表 | ✅ |
|
|
|
|
|
+| `document_elements` | 文档结构化元素 | ✅ |
|
|
|
|
|
+| `document_blocks` | 文档块(TextElement)| ✅ |
|
|
|
|
|
+| `document_entities` | 文档实体 | ✅ |
|
|
|
|
|
+| `graph_nodes` | 图节点 | ✅ |
|
|
|
|
|
+| `graph_relations` | 图关系 | ✅ |
|
|
|
|
|
+| `text_chunks` | 文本分块 | ✅ |
|
|
|
|
|
+| `vector_embeddings` | 向量嵌入 | ✅ |
|
|
|
|
|
+| `text_storage` | 文本存储 | ✅ |
|
|
|
|
|
+| `parse_tasks` | 解析任务 | ✅ |
|
|
|
|
|
+| `rules` | 规则表 | ✅(结构)|
|
|
|
|
|
+| `templates` | 模板表 | ✅(结构)|
|
|
|
|
|
+| `data_sources` | 数据源表 | ✅(结构)|
|