AstroResearch/src
Asfmq 22e7e1dcee feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展
核心新增:
  - RAG 问答系统:Markdown 安全切片器 (LaTeX 保护) + 向量化 + sqlite-vec 检索 + LLM 生成
  - 天体目标识别:IAU 标准正则提取 15+ 星表标识符,CDS SIMBAD/Sesame 查询与本地缓存
  - 多模态 LLM:chat_completion_with_image 支持图表视觉分析
  - CLI Skills Agent (cli.rs):对外暴露 rag/target/ingest 等 5 个子命令
  - 解析器模块化重构:单体 778 行 → 按期刊拆分 (A&A/ar5iv/IOP/Generic/PDF) +
    common.rs 静态正则工具库

  管线与 Schema:
  - AssetSync→AssetBatch 重命名,批量管线新增 embed/target 两个处理阶段
  - 新增 paper_chunks_content (RAG 切片) 和 paper_targets (天体缓存) 两张表
  - StandardPaper 新增 has_vector 字段,所有查询同步更新

  前端:
  - 新增 AI 助手侧边栏 (RAG 问答 + 来源跳转高亮)
  - 最近浏览文献列表 (localStorage 持久化)、跨面板无缝导航
  - SyncPanel 批量阶段扩展为下拉选项,支持向量化/天体识别

  测试与清理:
  - 集成测试合并至 ads.rs 和 llm.rs,新增 chunker + target 单元测试 15 个
  - 删除旧单体 parser.rs、独立测试文件及过期 scratch 脚本
2026-06-15 13:25:18 +08:00
..
api feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展 2026-06-15 13:25:18 +08:00
bin feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展 2026-06-15 13:25:18 +08:00
clients feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展 2026-06-15 13:25:18 +08:00
services feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展 2026-06-15 13:25:18 +08:00
lib.rs feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展 2026-06-15 13:25:18 +08:00
main.rs feat: RAG 文献问答、天体目标识别、解析器模块化与批量管线扩展 2026-06-15 13:25:18 +08:00
README.md feat: 重构 PDF/文献检索同步机制、升级引力图交互与控制台 UI 样式 2026-06-10 17:29:07 +08:00

AstroResearch Backend / 后端服务模块

本模块是 AstroResearch 的后端部分,基于 Rust + Axum + SQLx (SQLite) 构建。经过分层模块化重构,代码按职责划分到了不同的子包中。


1. 代码结构说明 (Source Code Structure)

  • main.rs程序执行入口。负责环境变量初始化、数据库连接建立、SQL 迁移运行、共享应用状态 AppState 配置,以及 Axum Router 路由绑定和静态资源代理托管。
  • lib.rs:模块声明中心,并将 Config 环境变量映射配置整合在库根节点下,避免反向引用。
  • api/API 路由的业务处理器。
    • handlers.rs:定义 Axum API 处理函数Handler包括统一跨源检索、单篇文献下载/解析/翻译的触发逻辑、引文网络数据查询及用户笔记的增删改查。
  • clients/:对接第三方 API 的客户端封装。
    • ads.rsNASA ADS (Astrophysics Data System) API 的 HTTP 客户端适配。
    • arxiv.rsarXiv Atom XML 接口拉取及正则表达式解析适配。
    • qiniu.rs:七牛云对象存储 (Kodo) 客户端封装,用于文献插图的 CDN 托管。
  • services/:核心业务服务与底层数据管道。
    • batch_sync.rs:后台大批量元数据异步同步器 (MetaSync) 与文献物理资源批量处理(下载/解析)引擎 (AssetSync)。
    • download.rs:智能下载器,处理多级回退、防爬休眠,优先下载 arXiv 官方 HTML并有 ar5iv/CrossRef 兜底。
    • parser.rs:文献排版转换与清洗器,支持 MathJax LaTeX 占位符防护及 MinerU 图文 PDF 降级解析。
    • translation.rs:大模型对比翻译流水线。支持基于天文学对照词表的分词过滤,通过 Trie 树最长匹配机制生成 Glossary 专有名词注入 Prompt。
    • query_parser.rs:解析并标准化学术检索式,为 ADS 和 arXiv 分别生成合规的专有检索语法。
    • logging.rs:系统日志服务,支持控制台彩色日志输出、每日滚动写入磁盘日志文件,采用自定义上海时区 (+08:00) 格式化时间。

2. 单元测试 (Testing)

后端各核心处理器与业务逻辑均编写了单元测试。你可以通过以下命令在本地执行所有的单元测试:

cargo test

3. 本地运行 (Usage)

确保当前目录的父目录(项目根目录)下已正确配置 .envdictionary.txt 文件,然后在项目根目录下运行:

cargo run

服务将默认在 http://localhost:8000 启动,并自动加载本地 SQLite 数据库文件。