Skip to content

BMQY-star/literature-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

文献阅读器 (Literature Reader)

面向科研工作流的交互式 PDF 阅读器,提供 MinerU 解析、段落级翻译和多轮问答。前端实时渲染 Markdown / LaTeX,后端可在本地完成 MinerU 与 Qwen 模型调用。

✨ 核心特性

  • PDF 上传与结构解析:调用 MinerU API 输出 layout、全文 markdown 与高亮坐标。
  • 可视化阅读:PDF 叠加文本块、全文视图、双语视图任意切换,支持全屏及快捷定位。
  • 增量翻译:默认使用 qwen-plus(可自定义 QWEN_TRANS_MODEL),实时显示译文进度,可导出全文 markdown。
  • 智能问答:默认使用 qwen-long(或 QWEN_QA_MODEL),将选中块 + 全文上下文交给模型,Markdown/HTML/LaTeX 即时渲染。
  • 上下文管理:片段多选、全文上下文开关、快捷提示语、流式回答随时中断再追问。
  • 配置灵活:所有 API Key、模型名称、MinerU 入口都通过 .env 或环境变量注入。

🏗 架构概览

client/      # React + Vite + Tailwind,PDF.js 渲染、聊天面板等
server/      # Flask API,封装 MinerU、翻译、问答、SSE
  ├─ routes.py             # 上传/解析/翻译/问答接口
  ├─ translator_llm.py     # Qwen/OpenAI 客户端 & 缓存逻辑
  ├─ mineru_api.py         # MinerU 调度与状态轮询
  └─ config.py             # 环境变量 & 默认模型

🚀 快速开始

  1. 安装依赖
    # 后端
    python -m venv .venv && .\.venv\Scripts\activate
    pip install -r requirements.txt
    
    # 前端
    cd client && npm install && cd ..
  2. 准备 .env(示例)
    QWEN_API_KEY=xxx
    QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
    QWEN_TRANS_MODEL=qwen-plus
    QWEN_QA_MODEL=qwen-long
    
    MINERU_TOKEN=xxx
    MINERU_BASE_URL=https://mineru.net/api/v4
    MINERU_MODEL_VERSION=vlm
  3. 启动服务
    # Flask
    python server/main.py   # 监听 http://localhost:5000
    
    # React
    cd client && npm run dev   # 监听 http://localhost:3000

📚 使用流程

  1. 上传 PDF:点击“上传 PDF”后自动调 MinerU,等待状态转为“解析完成”。
  2. 查看结构:PDF 左侧出现黄色/蓝色块,可点击查看原文并多选。
  3. 全文/双语/全屏:上方视图切换按钮,双语模式支持同步滚动。
  4. 翻译:在问答面板底部选择目标语言(中 / EN / 日本语 / 한국어),点击“生成翻译”就会驱动 qwen-plus 按目标语言写入译文。
  5. 问答:输入问题或选择快捷提示即可。默认选中块 + 全文一起提交给 qwen-long,回答以 Markdown 渲染,可中途点击停止按钮打断流式输出再继续追问。

⚙️ 主要配置

变量 说明
QWEN_API_KEY 通义千问 DashScope API Key(必填)
QWEN_TRANS_MODEL 翻译模型别名,默认 qwen-plus
QWEN_QA_MODEL 问答模型别名,默认 qwen-long
MINERU_TOKEN / MINERU_BASE_URL MinerU 上传/解析所需凭证
MINERU_MODEL_VERSION MinerU pipeline,常用 vlm
UPLOAD_FOLDER / MINERU_FOLDER 本地缓存解析/全文的目录

更多变量(OpenAI 兼容、Flask、缓存等)见 docs/API_CONFIG.md

📄 文档

🤝 贡献

欢迎通过 Issue/PR 分享 Bug、功能建议或文档改进。提交前请运行 npm run build 与基本后端自测,并保持 commit 清晰易读。

🧾 许可证

本项目基于 MIT License

About

智能文献阅读器 - PDF解析、翻译、双语阅读

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors