整体进度:70% | 报告日期:2026-01-21
rebuild_all.sh 脚本document_elements 表存储结构化内容PostgreSqlJsonbTypeHandler 处理 JSONB 类型GET /parse/structured/{documentId} - 触发结构化解析GET /parse/elements/{documentId} - 获取所有元素GET /parse/elements/{documentId}/images - 获取图片列表GET /parse/elements/{documentId}/tables - 获取表格列表rebuild_all.sh/ner/extract/async 提交异步任务/ner/task/{task_id} 查询任务状态和进度graph_nodes 表(测试文档:188 个实体)graph_relations 表(测试文档:82 个关系)fromEntityId、toEntityId根据设计文档 6.2 第一阶段:核心数据流程(2月10日前)
| 任务 | 状态 | 说明 |
|---|---|---|
| 文件上传接口 | ✅ | 支持 PDF、Word、图片 |
| 文件类型识别 | ✅ | MIME 类型检测 |
| OCR 集成(飞浆OCR) | ✅ | Python 服务调用 |
| 文本提取(Word文档) | ✅ | Apache POI |
| Word 结构化提取 | ✅ | 段落、图片、表格、样式 |
| TXT 文件存储 | ✅ | SSD 硬盘存储 |
| 图片资源提取存储 | ✅ | 自动提取并保存到独立目录 |
| 解析任务管理 | ✅ | 异步处理、状态跟踪 |
| NER 服务集成 | ✅ | DeepSeek API 集成 |
| 实体提取接口 | ✅ | 完整实体列表输出 |
| 关系分析接口 | ✅ | 规则模式关系抽取 |
| 实体存储到图节点表 | ✅ | PostgreSQL 存储验证 |
| 图节点 CRUD 接口 | ✅ | 完整 CRUD |
| 图关系 CRUD 接口 | ✅ | 完整 CRUD |
| 图查询接口 | ✅ | 按文档、按用户查询 |
| Neo4j 集成 | ✅ | 本地部署,双写同步 |
| 任务 | 状态 | 说明 |
|---|---|---|
| 数据源创建接口 | ⏳ | 下一步重点 |
| 数据源绑定节点 | ⏳ | 下一步重点 |
| 数据源查询接口 | ⏳ | 下一步重点 |
| 模板创建接口 | ⏳ | 下一步重点 |
| 占位符绑定数据源 | ⏳ | 下一步重点 |
| 模板渲染接口 | ⏳ | 下一步重点 |
| 端到端流程测试 | ⏳ | 需要完善 |
计划周期:2026-01-21 ~ 2026-01-27
目标:实现数据源管理和模板系统基础功能(设计文档 2.4 / 2.6)
根据设计文档 2.4.1:
数据源是图数据库中的节点集合,具有层次关系
实施任务:
数据源类型:
根据设计文档 2.6.1:
模板是对应输出的占位符结构,占位符绑定到数据源编号
实施任务:
根据现有 supplement_tables.sql,需要完善:
-- 数据源表
CREATE TABLE IF NOT EXISTS data_sources (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL, -- table/text/image
document_id VARCHAR(32),
node_ids JSONB, -- 绑定的节点 ID 数组
metadata JSONB,
user_id VARCHAR(32),
create_time TIMESTAMP,
update_time TIMESTAMP
);
-- 模板表
CREATE TABLE IF NOT EXISTS templates (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
content TEXT, -- 模板内容(含占位符)
placeholder_mapping JSONB, -- 占位符到数据源的映射
user_id VARCHAR(32),
create_time TIMESTAMP,
update_time TIMESTAMP
);
数据源 API:
POST /api/datasource - 创建数据源GET /api/datasource/{id} - 获取数据源GET /api/datasource/document/{documentId} - 按文档查询PUT /api/datasource/{id}/nodes - 更新绑定节点DELETE /api/datasource/{id} - 删除数据源模板 API:
POST /api/template - 创建模板GET /api/template/{id} - 获取模板PUT /api/template/{id}/mapping - 更新占位符映射POST /api/template/{id}/render - 渲染模板POST /api/template/{id}/copy - 复制模板| 预研项 | 进度 | 已完成 ✅ | 待实现 ❌ |
|---|---|---|---|
| 1️⃣ 规则"智能体"设计 | 45% | Graph Service 架构 规则、模板数据模型 RAG 问答服务 NER 实体提取 Neo4j 图数据库 |
规则 DSL 定义与解析 规则执行引擎 多层计算算法 |
| 2️⃣ 产品定位与功能逻辑 | 45% | 6大后端服务框架 前端交互原型 基础组件 结构化文档展示 |
所有前端页面 UI 智能体集群架构 规则校验功能 |
| 3️⃣ 规则智能体模拟 | 50% | TextStorage(文本存储) GraphNode、GraphRelation 向量相似度检索 NER + 关系构建 文档结构化存储 |
规则逻辑树算法 单规则校验引擎 知识图谱构建算法 |
| 4️⃣ AI模态体型/OCR | 70% | PaddleOCR Client PDF/Word/Excel 提取 DeepSeek API Ollama Embedding Word 结构化提取 |
AI多模态模型接入 NSDK集成 OCR后处理优化 |
| 5️⃣ 前端交互设计 | 20% | 前端交互原型 HTML 文档编辑预览 实体高亮展示 |
所有核心页面 UI 与后端 API 对接 |
backend/
├── common/ # 公共模块
│ └── mybatis/ # PostgreSqlJsonbTypeHandler
├── auth-service/ # 认证服务
├── document-service/ # 文档管理服务
│ └── entity/ # Document, DocumentElement, DocumentBlock
├── parse-service/ # 解析服务
│ └── service/ # WordStructuredExtractionService
├── ai-service/ # AI服务
├── graph-service/ # 图谱服务(RAG、NER、图数据库)
│ └── neo4j/ # Neo4j 集成服务
├── notification-service/ # 通知服务
├── gateway-service/ # 网关服务
├── lingyue-starter/ # 单体应用启动器
└── sql/ # 数据库脚本
├── rebuild_all.sh # 完整重建脚本
├── init.sql # 基础表
├── graph_tables.sql # 图谱表
├── supplement_tables.sql # 补充表
└── rag_tables_compatible.sql # RAG 表
python-services/
└── ner-service/ # NER Python 服务
├── app/
│ ├── models/ # 数据模型
│ ├── routers/ # API 路由
│ └── services/ # 业务服务
│ ├── ner_service.py # NER 调度
│ ├── deepseek_service.py # DeepSeek API
│ └── relation_service.py # 关系抽取
└── requirements.txt
frontend/
└── 灵越智报_完整交互版.html # 前端交互原型
database/
└── migrations/ # 数据库迁移脚本
└── V2026_01_21_02__add_document_elements.sql
| 组件 | 技术选型 | 状态 |
|---|---|---|
| 后端框架 | Spring Boot 3.1.5 | ✅ |
| 数据库 | PostgreSQL + pgvector | ✅ |
| 缓存 | Redis | ✅ |
| 消息队列 | RabbitMQ | ✅ |
| NER 模型 | DeepSeek API(内测) | ✅ |
| Embedding | Ollama nomic-embed-text | ✅ |
| OCR | PaddleOCR | ✅ |
| 图数据库 | PostgreSQL + Neo4j 4.4 | ✅ |
| 文档解析 | Apache POI(Word 结构化) | ✅ |
| 前端 | HTML 交互原型 | ✅ |
| 前端框架 | Flutter Web(待开发) | ⏳ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/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 | 获取图片资源 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/ner/extract |
POST | 文本实体抽取 | ✅ |
/api/ner/document/{id} |
POST | 文档实体抽取 | ✅ |
/api/ner/relations |
POST | 关系抽取 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/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 |
数据源表 | ✅(结构) |