
用 Python Ollama 搭建一个每天自动读论文的本地科研助手一、为什么做这个项目做科研时每天都会遇到一个很现实的问题论文太多真正值得精读的论文却需要花大量时间筛选。我的研究方向主要集中在无人机与智能网络相关领域例如无人机集群通信无人机轨迹预测无人机智能组网多智能体强化学习GNN 图神经网络Wi-Fi Direct / UAV Ad Hoc 网络多路径传输数据加密与网络传输安全这些方向更新很快如果每天手动去 arXiv、Semantic Scholar、Crossref 检索再下载 PDF、阅读摘要、整理笔记时间成本非常高。因此我做了一个自动化项目paper_auto_collector。它可以每天自动检索论文、下载开放 PDF、解析正文、调用本地大模型 Ollama 生成中文总结并导出 Markdown、Excel、JSON 报告。重点是整个项目不依赖 OpenAI API Key可以完全使用本地大模型运行。项目地址https://github.com/fookqilee/paper_auto_collector.git二、项目能做什么这个项目目前已经实现了一个完整的自动化论文整理流程从配置文件读取研究关键词。自动检索 arXiv、Semantic Scholar、Crossref。对多源结果进行去重。根据关键词和论文内容计算相关性分数。自动判断论文所属研究方向。下载公开可访问的 PDF。解析 PDF 正文。调用本地 Ollama 模型qwen2.5:7b生成中文总结。如果 Ollama 不可用自动回退到抽取式总结。每天生成 Markdown、Excel、JSON 报告。使用 SQLite 记录历史论文避免重复下载和重复总结。支持 Windows 任务计划程序每天自动运行。运行结束后弹窗提示当天整理结果。三、项目架构项目采用模块化结构每个模块只负责一类任务paper_auto_collector/ ├── config/ │ ├── config.yaml │ └── test_config.yaml ├── scripts/ │ ├── notify_summary.py │ └── test_ollama.py ├── src/ │ ├── analyzer/ │ │ ├── classifier.py │ │ ├── recommender.py │ │ └── relevance.py │ ├── downloader/ │ │ └── pdf_downloader.py │ ├── exporter/ │ │ ├── excel_exporter.py │ │ ├── json_exporter.py │ │ └── markdown_exporter.py │ ├── fetchers/ │ │ ├── arxiv_fetcher.py │ │ ├── crossref_fetcher.py │ │ └── semantic_fetcher.py │ ├── parser/ │ │ └── pdf_parser.py │ ├── storage/ │ │ └── db.py │ ├── summarizer/ │ │ ├── extractive_summarizer.py │ │ ├── ollama_summarizer.py │ │ └── summary_manager.py │ └── main.py ├── requirements.txt ├── run_daily.bat └── README.md整体流程如下读取配置 - 多源检索论文 - DOI / arXiv ID / 标题哈希去重 - 相关性评分 - 研究方向分类 - 下载开放 PDF - 解析 PDF 正文 - Ollama 中文总结 - Markdown / Excel / JSON 导出 - SQLite 保存历史记录 - Windows 弹窗提示四、为什么选择 Ollama很多论文总结项目都依赖云端大模型 API但这会带来几个问题需要 API Key。长文档总结成本较高。论文内容可能涉及未公开研究不适合上传到云端。网络不稳定时自动化流程容易失败。所以我选择了 Ollama把大模型放在本地运行。项目默认使用summary:mode:ollamalanguage:zhollama_base_url:http://localhost:11434ollama_model:qwen2.5:7bmax_input_chars:30000temperature:0.2fallback_to_extractive:true如果 Ollama 没启动或者模型没下载程序不会崩溃而是自动回退到extractive抽取式总结模式。五、Ollama 总结输出格式每篇论文会尽量生成结构化 JSON字段包括{research_problem:研究问题,method:使用方法,dataset_or_environment:数据集或实验环境,experiment_result:实验结果,innovation:创新点,limitation:局限性,relation_to_my_research:与我的研究方向的关系,recommended_reading:是否值得精读,suitable_for_thesis_section:可用于论文中的章节,keywords:[关键词1,关键词2],category:文章策略,summary_mode:ollama}如果模型输出不是标准 JSON程序会做容错处理保留原始输出不会中断主流程。六、研究方向分类项目会把论文自动分类到以下方向你自定义的方向其他七、每日推荐模块每天生成的 Markdown 报告顶部会自动给出“今日最值得精读的 3 篇论文”并说明推荐理由适合借鉴的部分可用于论文中的章节对当前仿真数据集的启发这部分对论文写作很有帮助因为它不是简单堆论文列表而是把论文和自己的研究任务联系起来。八、安装与运行1. 创建环境conda create -y -n paper_auto_collector_py310 python3.10 conda run -n paper_auto_collector_py310 python -m pip install -r requirements.txt2. 安装 Ollama访问 Ollama 官网下载安装https://ollama.com/拉取模型ollama pull qwen2.5:7b测试模型ollama run qwen2.5:7b测试项目调用conda run -n paper_auto_collector_py310 python scripts\test_ollama.py3. 运行项目conda run -n paper_auto_collector_py310 python src\main.py --config config\config.yaml或者直接运行run_daily.bat九、输出结果项目会生成以下文件data/papers/ 下载的 PDF data/reports/paper_report_日期.md Markdown 每日报告 data/summaries/paper_summaries_日期.xlsx data/summaries/paper_summaries_日期.json data/paper_history.sqlite3 历史记录数据库 logs/daily.log 运行日志Markdown 报告适合直接阅读Excel 适合筛选和排序JSON 适合后续做知识库或二次处理。十、Windows 每天自动运行可以使用任务计划程序让项目每天自动执行。例如每天 9 点运行schtasks /Create /SC DAILY /TN paper_auto_collector_daily /TR C:\Users\你的用户名\Documents\readPaper_auto\paper_auto_collector\run_daily.bat /ST 09:00我还增加了一个弹窗脚本scripts/notify_summary.py运行结束后会弹出当天的简要整理情况例如处理了多少篇论文使用了 Ollama 还是 extractive主要研究方向分布推荐优先阅读的论文十一、合法下载说明这个项目只下载公开可访问的 PDF例如arXivOpenReviewPubMed CentralSemantic Scholar 返回的openAccessPdfCrossref 主要用于补充元数据不强制下载 PDF。项目不会绕过付费墙也不会尝试下载未授权论文。十二、项目总结paper_auto_collector的目标不是替代科研阅读而是把重复性的论文搜集、下载、初筛、格式化整理自动化。它比较适合以下场景每天跟踪一个研究方向的新论文。做毕业论文或项目申请前的文献积累。用本地大模型生成第一版阅读笔记。建立个人长期论文数据库。后续可以继续扩展 RSS 期刊订阅、Web 可视化页面、向量数据库检索、BibTeX 导出等功能。对我来说它更像是一个每天早上自动工作的“科研信息秘书”先帮我把论文粗筛一遍真正需要精读的部分再交给自己。