整体进度:80% | 报告日期:2026-01-22
rebuild_all.sh 脚本✅ 第一阶段:基础设施搭建
extract-service 框架搭建完成ExtractServiceApplication.javaapplication.properties(端口 8086)/api/v1/extract/healthextract_projects, extract_source_documents, extract_rules, extract_results, extract_rule_templates✅ 第二阶段:核心实体与 Repository 层
Project, SourceDocument, ExtractRule, ExtractResult, RuleTemplateLocationConfig, TransformConfig, DocumentSourceConfig, SelfReferenceSourceConfig, FixedSourceConfig, ManualSourceConfigDirectExtractConfig, AIExtractConfig, AISummarizeConfig, OcrExtractConfig✅ 认证服务接口完善
PUT /auth/profile - 用户信息修改(用户名、邮箱、头像)PUT /auth/password - 密码修改(验证旧密码、新密码确认)
✅ 文档管理接口完善
PUT /api/v1/documents/{id} - 文档更新(名称、状态、元数据)DELETE /api/v1/documents/{id} - 级联删除增强POST /api/v1/documents/batch-delete - 批量删除(返回成功/失败列表)✅ 一键上传全自动处理流程
POST /api/v1/parse/upload(唯一入口)✅ 数据源管理系统
GraphNode 和 DocumentElement 两种类型✅ 任务中心进度跟踪
✅ 端到端测试脚本完善
test_upload_api.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 集成 | ✅ | 本地部署,双写同步 |
| 任务 | 状态 | 说明 |
|---|---|---|
| 数据源创建接口 | ✅ | POST /api/v1/datasource |
| 数据源绑定节点 | ✅ | PUT /api/v1/datasource/{id}/refs |
| 数据源查询接口 | ✅ | 按ID/文档/用户/类型查询 |
| 数据源取值接口 | ✅ | GET /api/v1/datasource/{id}/value |
| 批量取值接口 | ✅ | POST /api/v1/datasource/batch-value |
| 任务中心进度跟踪 | ✅ | 6阶段进度 + 结果摘要 |
| 端到端流程测试 | ✅ | 完整测试脚本 |
| 模板创建接口 | ⏳ | 下一步重点 |
| 占位符绑定数据源 | ⏳ | 下一步重点 |
| 模板渲染接口 | ⏳ | 下一步重点 |
计划周期:2026-01-23 ~ 2026-01-27
目标:实现模板系统基础功能(设计文档 2.6)
根据设计文档 2.6.1:
模板是对应输出的占位符结构,占位符绑定到数据源编号
实施任务:
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/v1/datasource |
POST | 创建数据源 | ✅ |
/api/v1/datasource/{id} |
GET | 获取数据源 | ✅ |
/api/v1/datasource/document/{documentId} |
GET | 按文档查询 | ✅ |
/api/v1/datasource/user/{userId} |
GET | 按用户查询 | ✅ |
/api/v1/datasource/{id} |
PUT | 更新数据源 | ✅ |
/api/v1/datasource/{id}/refs |
PUT | 更新绑定节点 | ✅ |
/api/v1/datasource/{id} |
DELETE | 删除数据源 | ✅ |
/api/v1/datasource/{id}/value |
GET | 获取数据源值 | ✅ |
/api/v1/datasource/batch-value |
POST | 批量获取值 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/v1/template |
POST | 创建模板 | ⏳ |
/api/v1/template/{id} |
GET | 获取模板 | ⏳ |
/api/v1/template/{id}/mapping |
PUT | 更新占位符映射 | ⏳ |
/api/v1/template/{id}/render |
POST | 渲染模板 | ⏳ |
/api/v1/template/{id}/copy |
POST | 复制模板 | ⏳ |
| 预研项 | 进度 | 已完成 ✅ | 待实现 ❌ |
|---|---|---|---|
| 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(待开发) | ⏳ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/auth/register |
POST | 用户注册 | ✅ |
/auth/login |
POST | 用户登录 | ✅ |
/auth/logout |
POST | 用户登出 | ✅ |
/auth/refresh |
POST | 刷新Token | ✅ |
/auth/me |
GET | 获取当前用户 | ✅ |
/auth/profile |
PUT | 更新用户资料 | ✅ |
/auth/password |
PUT | 修改密码 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/v1/documents |
GET | 文档列表(分页) | ✅ |
/api/v1/documents/{id} |
GET | 文档详情 | ✅ |
/api/v1/documents/{id} |
PUT | 更新文档 | ✅ |
/api/v1/documents/{id} |
DELETE | 级联删除 | ✅ |
/api/v1/documents/batch-delete |
POST | 批量删除 | ✅ |
/api/v1/documents/{id}/text |
GET | 获取文档文本 | ✅ |
/api/v1/documents/{id}/parse-status |
GET | 解析状态 | ✅ |
/api/v1/documents/{id}/elements |
GET | 结构化元素 | ✅ |
/api/v1/documents/{id}/images |
GET | 图片列表 | ✅ |
/api/v1/documents/{id}/tables |
GET | 表格列表 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/v1/parse/upload |
POST | 一键上传,自动触发全流程 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/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/v1/tasks/list |
GET | 获取任务列表 | ✅ |
/api/v1/tasks/{taskId}/detail |
GET | 获取任务详情 | ✅ |
/api/v1/tasks/by-document/{documentId} |
GET | 按文档ID查询任务 | ✅ |
/api/v1/tasks/statistics |
GET | 获取任务统计 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/ner/extract |
POST | 文本实体抽取 | ✅ |
/api/ner/document/{id} |
POST | 手动触发文档实体抽取 | ✅ |
/api/ner/relations |
POST | 关系抽取 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/graph/nodes |
POST | 创建节点 | ✅ |
/api/graph/nodes/{nodeId} |
GET/PUT/DELETE | 节点 CRUD | ✅ |
/api/graph/documents/{documentId}/nodes |
GET | 按文档查询节点 | ✅ |
/api/graph/relations |
POST | 创建关系 | ✅ |
| 接口 | 方法 | 说明 | 状态 |
|---|---|---|---|
/api/v1/datasource |
POST | 创建数据源 | ✅ |
/api/v1/datasource/{id} |
GET | 获取数据源 | ✅ |
/api/v1/datasource/document/{documentId} |
GET | 按文档查询 | ✅ |
/api/v1/datasource/{id}/refs |
PUT | 更新绑定节点 | ✅ |
/api/v1/datasource/{id}/value |
GET | 获取数据源值 | ✅ |
/api/v1/datasource/batch-value |
POST | 批量获取值 | ✅ |
| 表名 | 说明 | 状态 |
|---|---|---|
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 |
数据源表 | ✅(结构) |
extract_projects |
提取项目表 | ✅ |
extract_source_documents |
来源文档表 | ✅ |
extract_rules |
提取规则表 | ✅ |
extract_results |
提取结果表 | ✅ |
extract_rule_templates |
规则模板表 | ✅ |