🎯 项目简介
一个基于 LLM(大语言模型)的 arXiv 论文每日推荐与智能摘要系统,自动从 arXiv 获取最新论文,通过 AI 深度分析、多维评分,为您筛选出最相关的高质量研究。
核心亮点:
- AI 驱动的个性化推荐:基于您的研究兴趣和关键词,LLM 精准筛选每日最新论文
- 大模型深度分析:支持 通义千问 (Qwen) / DeepSeek 等多种 LLM,自动生成论文摘要与核心观点提取
- 多维度智能评分:从相关性、创新性、实用性等角度综合评估每篇论文
- 全平台交付:现代化 Vue3 Web 界面 + Markdown/HTML 报告 + 每日邮件推送
- 💻 界面预览 - 查看系统界面截图
- 🏗️ 系统架构 - 了解项目技术架构
- ✨ 核心功能 - 了解项目解决的核心问题
- ⚡ 快速开始 - 一键启动,快速体验
- ⚙️ 使用方法 - 详细操作指南
- 🔧 故障排查 - 常见问题与解决方案
- 🤝 贡献与支持 - 如何参与项目
| 主界面 - 论文推荐和摘要生成 | 分类匹配界面 - 配置研究兴趣 |
|---|---|
![]() |
![]() |
| 环境配置界面 - 系统设置 | 附录界面 - 分类浏览器 |
|---|---|
![]() |
![]() |
报告生成效果:
| Markdown 报告 | HTML 在线报告 |
|---|---|
| 模块 | 技术选型 | 说明 |
|---|---|---|
| 后端 | FastAPI + Python 3.10+ | 高性能异步 API 服务 |
| 前端 | Vue 3 + TypeScript + Vite | 现代化响应式 Web 界面 |
| AI 模型 | LLM (文心大模型/千问/deep seek) | 强大的长文本理解与总结能力 |
| 数据存储 | JSON 文件 + 本地文件系统 | 轻量级本地存储,无需配置数据库 |
| 部署 | Docker / Local | 支持本地开发和生产部署 |
graph LR
User[用户] --> Web[Vue3 前端]
Web <--> API[FastAPI 后端]
API <--> Core[核心服务层]
subgraph CoreServices [核心服务]
Fetcher[ArXiv 获取器]
Matcher[智能匹配引擎]
LLM[LLM 分析服务]
Reporter[报告生成器]
end
Core --> Fetcher
Core --> Matcher
Core --> LLM
Core --> Reporter
Fetcher -- 获取论文 --> ArXiv[ArXiv API]
LLM -- 智能分析 --> DashScope[LLM API]
Matcher -- 语义匹配 --> DashScope
Reporter -- 生成报告 --> FileSys[本地文件系统]
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Vue3 前端 │ │ FastAPI 后端 │ │ 核心服务层 │
│ │ │ │ │ │
│ • 用户界面 │◄──►│ • RESTful API │◄──►│ • 论文获取 │
│ • 状态管理 │ │ • 数据验证 │ │ • 智能匹配 │
│ • 路由管理 │ │ • 业务逻辑 │ │ • AI 分析 │
│ • 组件化开发 │ │ • 异步处理 │ │ • 报告生成 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
-
fastapi_services/: FastAPI 后端服务fastapi_app.py: 主应用入口和 API 路由models.py: 数据模型定义service_container.py: 依赖注入容器- 各种业务服务模块
-
web/: Vue3 前端应用- 基于 Vite 构建工具
- TypeScript 支持
- 组件化开发
-
core/: 核心业务逻辑arxiv_fetcher.py: ArXiv 论文获取器recommendation_engine.py: 推荐引擎(论文筛选、评分、分析)category_matcher.py: 分类匹配器(研究兴趣与 ArXiv 分类匹配)llm_provider.py: LLM 模型提供者(支持文心大模型/千问/deep seek、OpenAI 兼容接口)pdf_text_extractor.py: PDF 文本提取器prompt_manager.py: 提示词管理器(统一管理 AI 提示词模板)output_manager.py: 输出管理器(报告生成、邮件发送)email_sender.py: 邮件发送器(支持 SMTP/SSL/TLS)template_renderer.py: 模板渲染器(Jinja2 模板引擎)
-
config/: 配置文件目录prompts.default.json: 默认提示词模板prompts.json: 用户自定义提示词(覆盖默认值)arxiv_categories.json: ArXiv 分类定义templates/: Jinja2 报告模板
- 个性化匹配:基于您的研究兴趣和关键词进行精准论文筛选
- AI 深度分析:LLM(文心大模型/千问/deep seek)驱动的论文摘要和核心观点提取
- 多维度评估:从相关性、创新性、实用性等角度综合评分
- 响应式设计:基于 Vue3 的现代化用户界面
- 实时交互:FastAPI 提供的高性能 API 支持
- 组件化开发:可复用的 UI 组件和清晰的代码结构
- 实时推荐:Web 界面实时查看推荐结果
- 历史存档:自动保存每日推荐记录到
arxiv_history目录 - 格式丰富:支持 Markdown、HTML 等多种输出格式
- 模板化设计:所有 AI 提示词采用模板化设计,支持变量替换
- 灵活定制:可在 Web 界面或配置文件中自定义提示词,覆盖默认值
- 版本管理:默认提示词与用户自定义提示词分离管理,支持一键重置
- 主模型(Heavy Model):用于详细分析和深度理解,如
qwen-plus - 轻量模型(Light Model):用于快速筛选和初步评估,如
qwen-turbo - 智能调度:系统根据任务复杂度自动选择合适的模型,平衡速度与质量
- 任务进度:支持长时间运行任务的实时进度追踪
- WebSocket 支持:前端可实时获取后端任务执行状态
- 详细日志:完整的运行日志记录,便于问题排查
- Python: 3.10 或更高版本
- Node.js: 20.19.0 或更高版本
- 包管理器: 推荐使用 uv (Python) 和 npm (Node.js)
# 1. 克隆项目到本地
git clone https://github.com/WhitePlusMS/arXiv-Daily-Summary.git
# 2. 进入项目目录
cd arXiv-Daily-Summary
# 3. 推荐使用 uv 安装依赖 (如果尚未安装)
pip install uv
# 4. 使用 uv 创建虚拟环境
uv venv
# 5. 激活虚拟环境 (Windows)
.venv\Scripts\activate
# 6. 使用 uv 安装项目依赖(在uv环境启动状态下)
pip install -r requirements.txt
# 7. 复制环境变量配置文件
copy .env.example .env
# 8. 编辑 .env 文件,填入您的 API 密钥 (重要!)
# 请手动打开 .env 文件并填入 DASHSCOPE_API_KEY
# 您可以从 LLM 服务商获取 API 密钥(如通义千问):https://console.aliyun.com/dashscope
# 9. 启动 FastAPI + Vue3 应用程序!
python start_fastapi.py
# 10. 访问应用
# 前端界面: http://localhost:5173
# 后端 API: http://localhost:8000
# API 文档: http://localhost:8000/docs
# enjoy it!使用 Docker Compose 可以快速部署整个系统,无需手动配置环境:
# 1. 克隆项目到本地
git clone https://github.com/WhitePlusMS/arXiv-Daily-Summary.git
cd arXiv-Daily-Summary
# 2. 进入 docker 目录
cd docker
# 3. 启动服务(首次启动会从 Docker Hub 拉取镜像)
docker compose up -d
# 4. 查看服务状态
docker compose ps
# 5. 访问应用
# 前端界面: http://localhost:5173
# 后端 API: http://localhost:8000
# API 文档: http://localhost:8000/docs配置 API 密钥:
- 首次启动后,系统会自动从
.env.example创建.env文件 - 访问前端界面:http://localhost:5173
- 在左侧导航栏点击"环境配置"
- 在"🤖 模型与API配置"分组中,填入您的
DASHSCOPE_API_KEY - 点击"💾 保存配置"按钮
停止服务:
# 停止服务
docker compose down
# 停止服务并删除数据卷(谨慎使用)
docker compose down -v数据持久化:
所有数据(包括 .env 配置、历史记录、用户数据、日志)都保存在 Docker Volume 中,即使删除容器也不会丢失数据。
注意事项:
- 首次启动会从 Docker Hub 拉取镜像,可能需要几分钟时间(取决于网络速度)
- 默认端口:前端 5173,后端 8000
- 确保配置的端口未被占用
- 修改端口后,访问地址会相应变化(例如:http://localhost:8080)
“用户创建”的核心是为每个用户建立一个精准的 ArXiv 分类画像,通过 分类匹配器 界面完成,它允许用户通过自然语言描述自己的研究兴趣,系统会自动将其与 ArXiv 的官方分类进行匹配,并将最相关的分类保存到该用户的配置中。
操作流程:
-
访问分类匹配器:在左侧导航栏点击“分类匹配器”。
-
输入信息:
-
用户名:输入您的用户名,用于唯一标识和保存您的匹配结果。
-
研究内容描述:在文本框中详细描述您的研究方向、兴趣领域、关键词等。例如:
我主要关注使用大型语言模型(LLM)进行检索增强生成(RAG)的技术,特别是如何优化其在多模态数据上的表现。
-
-
开始匹配:点击“开始匹配”按钮。
-
自动匹配与保存:
- 系统后台会调用大语言模型,将您输入的自然语言描述与
config/arxiv_categories.json中定义的官方 ArXiv 分类进行语义相似度计算。 - 系统会返回一个按匹配评分从高到低排序的分类列表。
- 这些评分最高的分类结果将自动保存到
data/users/user_categories.json文件中,与您的用户名关联,完成用户画像的创建。
- 系统后台会调用大语言模型,将您输入的自然语言描述与
数据管理:
页面下方提供了对已创建用户数据的全面管理功能:
- 查看与搜索:可以浏览所有用户的匹配记录,并按用户名或研究内容进行搜索。
- 编辑:可以修改用户的研究内容描述,并重新进行匹配。
- 删除:可以删除单个或批量的用户记录。
- 导出:支持将用户数据导出为 JSON 文件。
在创建完用户画像后,主界面 ArXiv 每日论文推荐系统 提供了核心的论文推荐功能。它会根据选定用户的画像,自动从 ArXiv 拉取、筛选并分析最新的相关论文。
操作流程:
- 选择用户配置:在顶部的下拉菜单中,选择一个您在"分类匹配器"中创建的用户。
- 系统会自动加载该用户的配置,包括其匹配的 分类标签 和 研究兴趣。
- 调整推荐参数(可选):
- 最大论文数:每个分类获取的最大论文数量
- 详细分析数:需要进行详细分析的论文数量
- 简要分析数:需要进行简要分析的论文数量
- 相关性阈值:论文相关性评分的最低阈值(0-100)
- 开始推荐:点击"开始推荐论文"按钮。
- 监控与查看结果:
- 系统启动后,下方会显示 实时运行日志,您可以清晰地看到每一步的执行状态,例如"获取论文"、"分析论文"、"生成报告"等。
- 运行成功后,推荐结果会以标签页的形式展示,包括 摘要内容、详细分析 和 简要分析。
- 同时,系统会生成完整的
HTML和Markdown格式报告,您可以直接在网页上预览或下载到本地。 - 报告会自动保存到
arxiv_history目录,文件名格式为YYYY-MM-DD_用户名_ARXIV_summary.{html|md}
环境配置界面提供了系统参数的集中管理功能,包括:
模型与 API 配置:
- 主模型和轻量模型选择
- API 密钥和基础 URL 配置
- 模型参数调优(温度、top_p、最大 token 数等)
ArXiv 配置:
- ArXiv API 基础 URL 和重试策略
- 论文获取数量限制
- 相关性筛选阈值
邮件配置:
- 启用/禁用邮件发送功能
- SMTP 服务器配置(支持 SSL/TLS)
- 发件人和收件人设置
时区与日志配置:
- 时区设置(影响报告中的时间显示)
- 日志输出级别和文件管理
操作说明:
- 在左侧导航栏点击"环境配置"
- 选择要修改的配置分组
- 修改配置值后点击"保存更改"
- 支持分组重置和全局重置功能
系统支持自定义 AI 提示词模板,您可以根据需要调整论文分析的风格和深度。
提示词类型:
- 分类匹配提示词:用于将用户研究兴趣匹配到 ArXiv 分类
- 相关性评估提示词:用于评估论文与用户兴趣的相关性
- 详细分析提示词:用于生成论文的详细分析报告
- 简要分析提示词:用于生成论文的简要分析报告
操作说明:
- 在"环境配置"界面找到"提示词管理"部分
- 选择要修改的提示词模板
- 编辑提示词内容(支持变量占位符,如
{description}、{paper_title}等) - 点击"保存"应用更改
- 支持"重置为默认"功能,一键恢复默认提示词
提示词变量说明:
{description}: 用户研究兴趣描述{paper_title}: 论文标题{paper_abstract}: 论文摘要{paper_authors}: 论文作者列表{paper_categories}: 论文分类标签- 更多变量请参考提示词模板中的注释
1. 启动失败:虚拟环境未激活
错误:VIRTUAL_ENV环境变量未设置!
解决:请先激活虚拟环境
Windows: .venv\Scripts\activate
Linux/Mac: source .venv/bin/activate
2. API 调用失败:401 或 403 错误
错误:API 认证失败
解决:
1. 检查 .env 文件中的 DASHSCOPE_API_KEY 是否正确
2. 确认 API 密钥是否有效且未过期
3. 检查 API 密钥对应的账户是否有足够的余额
3. 前端无法连接后端
错误:CORS 错误或连接失败
解决:
1. 确认后端服务已启动(http://localhost:8000)
2. 检查前端端口是否与后端 CORS 配置匹配
3. 查看浏览器控制台的错误信息
4. 论文获取失败:网络超时
错误:ArXiv API 请求超时
解决:
1. 检查网络连接
2. 在环境配置中增加 ARXIV_RETRIES(重试次数)
3. 增加 ARXIV_DELAY(请求间隔,避免频率过高)
5. 提示词模板错误
错误:模板变量缺失或格式错误
解决:
1. 检查提示词中的变量名是否正确
2. 确认变量占位符格式为 {variable_name}
3. 查看日志中的详细错误信息
4. 尝试重置为默认提示词
系统日志保存在 logs/ 目录下:
# 查看最新日志
tail -f logs/fastapi.log
# 查看错误日志
grep ERROR logs/fastapi.log贡献代码
# 1. Fork 本项目
在 GitHub 页面点击 "Fork" 按钮复制项目到您的账号
# 2. 克隆到本地
git clone https://github.com/YOUR_USERNAME/arXiv-Daily-Summary.git
cd arXiv-Daily-Summary
# 3. 创建功能分支
git checkout -b feature/your-feature
# 4. 开发并提交更改
git add .
git commit -m "feat: 添加新功能描述"
# 5. 推送到远程
git push origin feature/your-feature
# 6. 创建 Pull Request
在 GitHub 页面创建 PR,详细描述您的改动问题反馈
- 发现 Bug?请提交 Issue
- 有新想法?欢迎讨论和建议
- 觉得有用?请给项目点个 Star
本项目采用 Apache 2.0 许可证
- 感谢 arxiv Python包 的作者,它提供了非常便捷的论文下载功能。
- 本项目的灵感来源于以下优秀的开源项目,感谢它们的作者:
让 AI 帮您从信息海洋中发现真正有价值的研究




