进度报告.md 13 KB

📊 灵越智报 2.0 - 当前进度总结

整体进度:70% | 报告日期:2026-01-21


✅ 已完成(70%)

基础设施

  • Spring Boot 3.1.5 单体应用架构(lingyue-starter)
  • 数据库(PostgreSQL + pgvector)、缓存(Redis)、消息队列(RabbitMQ)配置完成
  • 6大服务模块框架搭建完成
  • 数据库重建脚本 → ✅ 完整的 rebuild_all.sh 脚本

核心模块现状

  • 📁 文档管理、解析、认证 → 框架完成
  • 🤖 AI服务、图谱服务 → 数据层完成,RAG 功能已实现
  • 🔍 RAG 向量化存储 → ✅ 已完成
  • 🏷️ 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 测试完成

  • DeepSeek API 集成
    • 接入阿里云百炼平台 DeepSeek V3.2 实验版
    • 支持长文本分块处理(每块 2000 字符)
    • 完整的错误处理和重试机制
  • 异步任务轮询模式
    • Python 端:/ner/extract/async 提交异步任务
    • Python 端:/ner/task/{task_id} 查询任务状态和进度
    • Java 端:轮询模式(每 3 秒)查询进度,实时日志反馈
    • 最大等待时间 10 分钟,失败自动回退到同步 API
  • 图数据库存储验证
    • 实体成功存储到 graph_nodes 表(测试文档:188 个实体)
    • 关系成功存储到 graph_relations 表(测试文档:82 个关系)
    • 支持按文档 ID 导出 CSV/JSON 数据
  • Pydantic 序列化修复
    • 修复 Python 模型 alias 序列化问题(snake_case → camelCase)
    • 确保 Java 端正确解析关系数据中的 fromEntityIdtoEntityId

新增功能(2026-01-19)

  • NER 服务完整实现
    • Python FastAPI NER 服务(规则模式,支持扩展 spaCy/Transformers/API)
    • Java NER 客户端(PythonNerClient)
    • NER DTO 类(NerRequest, NerResponse, EntityInfo, RelationInfo 等)
    • NER API 接口(/api/ner/extract, /api/ner/document/{id})
  • 关系抽取服务
    • 基于规则的关系抽取(位置邻近性、语义模式匹配)
    • 关系抽取 API(/api/ner/relations)
  • 图数据库服务扩展
    • GraphNodeService(节点/关系 CRUD、批量操作)
    • 图数据库 API(/api/graph/nodes, /api/graph/relations)
    • 文档节点统计接口
  • 解析流程集成
    • 文档解析完成事件(DocumentParsedEvent)
    • NER 自动触发监听器
    • 解析 → RAG → NER → 图数据库完整链路
    • NER 服务配置项(ner.python-service.url 等)

已完成功能(2026-01-17)

  • 单体应用架构重构 - 统一到 lingyue-starter 模块
  • 配置文件统一 - 全部使用 .properties 格式
  • 接口测试完成 - 核心接口验证通过

已完成功能(2026-01-16)

  • ✅ pgvector 向量数据库集成
  • ✅ 文本分块服务(智能句子边界切分)
  • ✅ Ollama Embedding 向量化服务
  • ✅ RAG 核心服务(索引、检索、问答)

🎯 第一阶段完成情况

根据设计文档 6.2 第一阶段:核心数据流程(2月10日前)

Week 1-2 任务完成率:95%

任务 状态 说明
文件上传接口 支持 PDF、Word、图片
文件类型识别 MIME 类型检测
OCR 集成(飞浆OCR) Python 服务调用
文本提取(Word文档) Apache POI
Word 结构化提取 段落、图片、表格、样式
TXT 文件存储 SSD 硬盘存储
图片资源提取存储 自动提取并保存到独立目录
解析任务管理 异步处理、状态跟踪
NER 服务集成 DeepSeek API 集成
实体提取接口 完整实体列表输出
关系分析接口 规则模式关系抽取
实体存储到图节点表 PostgreSQL 存储验证
图节点 CRUD 接口 完整 CRUD
图关系 CRUD 接口 完整 CRUD
图查询接口 按文档、按用户查询
Neo4j 集成 本地部署,双写同步

Week 3-4 任务待完成:

任务 状态 说明
数据源创建接口 下一步重点
数据源绑定节点 下一步重点
数据源查询接口 下一步重点
模板创建接口 下一步重点
占位符绑定数据源 下一步重点
模板渲染接口 下一步重点
端到端流程测试 需要完善

📋 下一步计划:数据源与模板基础(Week 3)

计划周期:2026-01-21 ~ 2026-01-27

目标:实现数据源管理和模板系统基础功能(设计文档 2.4 / 2.6)

1. 数据源管理(优先级最高)

根据设计文档 2.4.1:

数据源是图数据库中的节点集合,具有层次关系

实施任务:

  • 数据源创建接口(DataSource 实体,节点绑定)
  • 数据源绑定节点(节点 ID 数组存储,关联关系维护)
  • 数据源查询接口(按类型、按文档查询)
  • 数据源编辑接口(添加/移除节点)

数据源类型

  • 表格数据源:表格单元格作为独立节点
  • 文本数据源:文本片段作为节点
  • 图片数据源:图片作为节点

2. 模板系统基础

根据设计文档 2.6.1:

模板是对应输出的占位符结构,占位符绑定到数据源编号

实施任务:

  • 模板创建接口(Template 实体,占位符解析)
  • 占位符绑定数据源(placeholder_mapping JSONB 存储)
  • 模板渲染接口(占位符替换,数据源值获取)
  • 模板复制功能(基于已有模板复制)

3. 数据库表设计

根据现有 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
);

4. 接口设计

数据源 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(待开发)

📅 里程碑

  • M1(2月10日):第一阶段完成,核心流程跑通
    • ✅ 文件上传解析
    • ✅ RAG 向量检索
    • ✅ 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 数据源表 ✅(结构)