- [后端/PDF解析] 重构 MinerU PDF 解析流程:引入预签名两阶段直传机制,解决大文件 API 传输限制问题;支持轮询机制与本地 images 备用目录存储。 - [后端/同步与下载] 新增经典 ADS SCAN 扫描件 PDF 和 ADS_PDF 直接通道的下载逻辑;新增常用同步检索配置的持久化存储与去重管理 API。 - [后端/日志] 重构日志系统,支持控制台 pretty 输出与每日滚动文件日志(使用上海 +08:00 时区),引入 HTTP 路由请求链路追踪。 - [前端/引力图] 升级引用星系图 canvas 交互:支持平移拖拽与滚轮缩放,添加引力圈轨道装饰及未导入文献的半透明视觉区分。 - [前端/控制台] 统一重构为扁平高对比度浅色纯中文控制台样式;重新设计文献详情弹窗与状态进度条。 - [数据库] 新增 papers 表的 doctype 字段及 sync_queries 检索配置表。
82 lines
3.7 KiB
Markdown
82 lines
3.7 KiB
Markdown
# AstroResearch 天文科研辅助系统
|
||
|
||
AstroResearch 是一个基于 **Rust (Axum)** 后端与 **React (Vite + TypeScript)** 前端的天文文献一体化科研辅助系统。
|
||
|
||
---
|
||
|
||
## 1. 功能概述 (Overview)
|
||
|
||
AstroResearch 为天文领域的学者与研究人员提供一站式的文献管理与智能阅读解决方案,核心功能包括:
|
||
|
||
- 🌌 **统一学术检索**:一键跨源检索 NASA ADS 与 arXiv 数据库,支持去重元数据卡片式展示。
|
||
- 📥 **智能双通道下载**:模拟浏览器请求头与延迟,自动绕过出版商防爬墙,官方 HTML 优先并支持 ar5iv 备用兜底。
|
||
- 📝 **结构化文献解析**:解析 HTML 或调用 MinerU (PDF 降级解析) 输出标准 GFM Markdown,对 LaTeX 公式实施占位符保护。
|
||
- 🗣️ **大模型双语翻译**:基于本地天文学词汇库 (Trie 树最长匹配) 构建翻译 Glossary,指导大模型进行公式级精准中英翻译。
|
||
- 🪐 **引文网络星系图**:基于 HTML5 Canvas 的高性能力导向拓扑渲染,双击节点支持引文深度探索。
|
||
- ✍️ **划词高亮与笔记**:在双语阅读器中自由划词、多色高亮并记录学术心得,数据与文献双向绑定。
|
||
|
||
---
|
||
|
||
## 2. 快速启动 (Quickstart)
|
||
|
||
### 2.1 配置环境变量
|
||
将根目录下的 `.env.example` 复制并重命名为 `.env`:
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
用编辑器打开填入你的 `ADS_API_KEY`、`LLM_API_KEY`、`QINIU_` 等第三方服务的认证 Token。
|
||
|
||
### 2.2 运行服务 (Run)
|
||
|
||
#### 方案一:本地开发调试模式 (Development Mode)
|
||
开发模式下分别启动后端 API 服务和前端 HMR 热更新服务:
|
||
1. **启动后端 (Rust Axum)**:
|
||
```bash
|
||
cargo run
|
||
```
|
||
后端服务默认运行在 `http://localhost:8000`,并会自动初始化本地 SQLite 数据库及运行 migrations 迁移。
|
||
2. **启动前端 (React Vite)**:
|
||
```bash
|
||
cd dashboard
|
||
npm install
|
||
npm run dev
|
||
```
|
||
前端开发服务器默认运行在 `http://localhost:5173`。前端的所有 `/api` 接口请求已配置反向代理,会自动转发到后端的 `8000` 端口。
|
||
|
||
#### 方案二:生产打包与单程序部署模式 (Production Mode)
|
||
生产模式下需要先编译前端静态文件,随后由后端进程统一托管分发:
|
||
1. **打包编译前端**:
|
||
```bash
|
||
cd dashboard
|
||
npm install
|
||
npm run build
|
||
```
|
||
静态资源将打包并输出在项目根目录下的 `dashboard/dist/` 目录。
|
||
2. **运行后端服务**:
|
||
```bash
|
||
cd ..
|
||
cargo run --release
|
||
```
|
||
运行后直接访问 `http://localhost:8000` 即可使用,此时所有 React 网页和后台 API 均由 Rust 进程统一分发托管,无需额外启动 Vite。
|
||
|
||
---
|
||
|
||
## 3. 技术文档结构 (Documentation Directory)
|
||
|
||
详细的技术和部署设计文档已集中整理至 `docs/` 目录:
|
||
|
||
- 🏗️ **[架构设计](docs/architecture.md)**:包含系统宏观流程图与序列图。
|
||
- 🌐 **[API 接口规范](docs/api.md)**:后端 Axum 路由及 HTTP 接口格式。
|
||
- 🗄️ **[数据库设计](docs/database.md)**:SQLite 表结构、ER 图与索引优化。
|
||
- 🎨 **[视觉与交互设计](docs/design.md)**:高对比度浅色中文控制台、自研 Canvas 图谱引擎说明。
|
||
- 🛠️ **[排障指南](docs/troubleshooting.md)**:人机校验、解析失败等常见问题解法。
|
||
- 🚀 **[编译与部署指南](docs/deployment.md)**:单执行文件打包与发布流程。
|
||
- 🤝 **[参与贡献指南](docs/contributing.md)**:开发规范及单元测试。
|
||
|
||
---
|
||
|
||
## 4. 目录组件 README 交叉引用 (Component READMEs)
|
||
|
||
- 💻 **前端 React 控制台**:查看 [dashboard/README.md](dashboard/README.md)
|
||
- ⚙️ **后端 Rust 源码**:参见 [src/README.md](src/README.md)
|