| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666 |
- <!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>
|