feat: 重构 PDF/文献检索同步机制、升级引力图交互与控制台 UI 样式
- [后端/PDF解析] 重构 MinerU PDF 解析流程:引入预签名两阶段直传机制,解决大文件 API 传输限制问题;支持轮询机制与本地 images 备用目录存储。 - [后端/同步与下载] 新增经典 ADS SCAN 扫描件 PDF 和 ADS_PDF 直接通道的下载逻辑;新增常用同步检索配置的持久化存储与去重管理 API。 - [后端/日志] 重构日志系统,支持控制台 pretty 输出与每日滚动文件日志(使用上海 +08:00 时区),引入 HTTP 路由请求链路追踪。 - [前端/引力图] 升级引用星系图 canvas 交互:支持平移拖拽与滚轮缩放,添加引力圈轨道装饰及未导入文献的半透明视觉区分。 - [前端/控制台] 统一重构为扁平高对比度浅色纯中文控制台样式;重新设计文献详情弹窗与状态进度条。 - [数据库] 新增 papers 表的 doctype 字段及 sync_queries 检索配置表。
This commit is contained in:
+15
-6
@@ -22,6 +22,7 @@ graph TD
|
||||
Downloader[下载器 services/download.rs]
|
||||
Translator[翻译器 services/translation.rs]
|
||||
Qiniu[七牛云客户端 clients/qiniu.rs]
|
||||
Logging[日志记录器 services/logging.rs]
|
||||
DB[("SQLite / astro_research.db")]
|
||||
end
|
||||
|
||||
@@ -143,12 +144,18 @@ sequenceDiagram
|
||||
P->>P: 6e. 转换 GFM Markdown 并恢复 LaTeX 公式
|
||||
P->>P: 6f. 后处理:清除冗余的 margin 空白与前导缩进
|
||||
else 仅有 PDF 文件 (PDF 降级解析)
|
||||
P->>M: 7a. Multipart 格式上传 PDF 至 MinerU 服务
|
||||
M-->>P: 7b. 返回大模型解析出的 Markdown 文本及插图包
|
||||
loop 遍历每一个提取的插图
|
||||
P->>Q: 7c. 上传插图文件并获取七牛云 CDN 域名外链
|
||||
P->>M: 7a. 获取批量预签名上传 URL (POST /file-urls/batch/)
|
||||
M-->>P: 7b. 返回预签名上传 URL 与 Batch ID
|
||||
P->>M: 7c. 上传 PDF 二进制字节流 (PUT 至预签名 URL)
|
||||
loop 轮询任务状态 (每 10s 一次,最多 45 次)
|
||||
P->>M: 7d. 查询提取进度与结果 (GET /extract-results/batch/{id})
|
||||
M-->>P: 7e. 返回处理状态 ("done"/"error"等)
|
||||
end
|
||||
P->>P: 7d. 在 Markdown 中重写插图链接为七牛云 CDN 绝对路径
|
||||
P->>P: 7f. 下载解析结果的 ZIP 压缩包并解压提取
|
||||
loop 遍历每一个提取的插图
|
||||
P->>Q: 7g. 上传插图文件并获取七牛云 CDN 域名外链
|
||||
end
|
||||
P->>P: 7h. 在 Markdown 中重写插图链接为七牛云 CDN 绝对路径
|
||||
end
|
||||
|
||||
P-->>H: 8. 返回清洗转换出的标准英文 Markdown 文本
|
||||
@@ -159,7 +166,7 @@ sequenceDiagram
|
||||
|
||||
#### 详细解析说明:
|
||||
1. **HTML 转换为 Markdown 保护公式**:由于 MathJax/LaTeX 在 Markdown 转换中极易被当成普通字符进行转义(例如 `_` 倾斜或 `\` 换行失效),解析器在 HTML 解析前,通过正则将 `$` / `$$` 或 `\(` / `\[` 中的内容全部替换为特定的 UUID 占位符,转换为标准 Markdown 之后,再反向替换恢复公式,确保 LaTeX 渲染无损。
|
||||
2. **PDF 复杂排版降级**:遇到无法直接提取 HTML 的老文献时,调用 MinerU 进行布局分析与公式提取,配合七牛云对象存储实现插图的自动提取、自动图床托管与正文自动替换回写。
|
||||
2. **PDF 复杂排版降级与大文件直传**:遇到无法直接提取 HTML 的老文献时,调用 MinerU 进行布局分析与公式提取。为避免在上传大型 PDF 时触发 API 网关的 `413 Payload Too Large` 错误,系统弃用了传统的 Multipart 表单直接 POST 请求,转而采用**两阶段直传机制**:先请求预签名上传 URL,随后使用 HTTP `PUT` 直接流式传输二进制数据至存储服务,最后通过后台任务轮询 `extract-results` 获取转换完毕的 ZIP 并自动托管插图至七牛云。
|
||||
|
||||
---
|
||||
|
||||
@@ -233,6 +240,8 @@ sequenceDiagram
|
||||
- 统一相对图表链接,并集成 MinerU PDF 解析。
|
||||
- **[src/services/translation.rs](../src/services/translation.rs)**:
|
||||
- 利用本地千万字级别的天文学双语词典对原文进行分词匹配,注入系统提示词让 LLM 实现学术级精细翻译。
|
||||
- **[src/services/logging.rs](../src/services/logging.rs)**:
|
||||
- 全局日志记录系统,基于 `tracing-subscriber` 实现了控制台美化日志输出与基于时间的每日滚动日志文件写出,使用上海时区 (+08:00) 格式化时间。
|
||||
- **[dashboard/src/components/CitationGalaxyCanvas.tsx](../dashboard/src/components/CitationGalaxyCanvas.tsx)**:
|
||||
- 基于原生 HTML5 Canvas 开发的轻量级、高性能力导向图星系物理引擎,用于文献引文网络拓扑结构的可视化渲染。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user