Skip to content

写标书,申请书的时候,苦于整理文献?写论文的时候获取特定的信息枯燥麻烦?本项目使用Python读取PDF,加上特定的Prompt发送给大模型,获取回发信息后,整理成表格。

Notifications You must be signed in to change notification settings

Side-Peng/Python-PDF-EXCEL

Repository files navigation

批量文献分析工具 v2.0

基于 LLM 的智能文献分析系统,支持图形化界面和自定义 Prompt 模板

本工具是一个功能强大的文献分析系统,基于大语言模型(LLM)自动从科研 PDF 文献中提取关键信息,并生成结构化的 Excel 文献矩阵表。支持多种 LLM API(如 DeepSeek、Moonshot、Ollama 等),提供完整的图形化界面,大幅提升文献综述效率。


✨ 功能特点

📁 文献处理

  • 批量读取指定文件夹中的 PDF 文献
  • 自动提取 PDF 文本内容(支持可复制文本的 PDF)
  • 支持设置最大页数限制
  • 并发处理多个 PDF 文件,提升处理速度

🤖 智能分析

  • 调用 OpenAI 兼容 API 进行文献分析
  • 支持多种 LLM 模型(DeepSeek、GPT、Claude 等)
  • 可自定义 Prompt 模板,灵活定义提取字段
  • 自动保存原始响应,便于调试和验证
  • 支持重试机制,提高分析成功率

📊 数据输出

  • 生成结构化的 Excel 表格
  • 支持自定义字段(期刊、标题、作者、统计方法、结果等)
  • 自动匹配期刊 2025 年影响因子
  • 输出文件自动命名,包含时间戳

🎨 图形化界面

  • 直观的 GUI 界面,无需命令行操作
  • 支持字体大小调节,适应不同显示需求
  • 实时进度显示和日志输出
  • Prompt 编辑器,可视化管理提取字段
  • 模板管理功能,支持保存和切换不同 Prompt

⚙️ 高度可配置

  • API 地址、密钥、模型名称
  • Temperature、Max Tokens、Top P 等 LLM 参数
  • 并发线程数、超时时间、重试次数
  • 日志记录、临时文件清理等高级选项

📦 项目结构

Python脚本:通过PDF生成EXCEL文献矩阵/
├── gui.py                    # 主 GUI 程序
├── literature_analyzr.py     # 核心分析逻辑
├── config.py                 # 配置管理模块
├── prompt_editor.py          # Prompt 编辑器模块
├── templates/                # Prompt 模板目录
│   └── Medical_Meta_Template.txt
├── journal_if_2025.csv       # 期刊影响因子数据
├── settings.json             # 配置文件(自动生成)
├── prompt_config.json        # Prompt 配置(JSON 格式)
└── README.md                 # 本文件

🚀 快速开始

1. 环境要求

  • Python 3.8 或更高版本
  • Windows/macOS/Linux 操作系统

2. 安装依赖

pip install pandas openpyxl pdfplumber openai typing_extensions

3. 运行程序

方式一:使用 GUI(推荐)

python gui.py

启动后,在图形界面中:

  1. 在"设置"标签页配置 API 参数
  2. 在"运行"标签页选择 PDF 文件夹
  3. 点击"开始分析"按钮
  4. 等待分析完成,结果将保存到 PDF 文件夹下

方式二:命令行运行

python literature_analyzr.py

需要先配置 settings.json 文件。


📝 配置说明

基本配置

在 GUI 的"设置"标签页或 settings.json 中配置以下参数:

参数 说明 默认值
API Base URL API 基础地址 https://api.deepseek.com/v1
API Key API 密钥 -
模型名称 使用的 LLM 模型 deepseek-reasoner
PDF 文件夹 PDF 文件所在目录 -
并发线程数 同时处理的 PDF 数量 3

API 参数配置

参数 说明 默认值
Temperature 控制输出随机性 0.3
Max Tokens 最大输出 token 数 8000
Top P 核采样参数 1.0
Frequency Penalty 频率惩罚 0.0
Presence Penalty 存在惩罚 0.0
最大页数 0 表示全部 0

高级选项

参数 说明 默认值
重试次数 失败时的重试次数 2
启用日志文件 是否记录日志 True
自动清理临时文件 是否自动清理 False
保存原始响应 保存 LLM 原始输出 True

🎯 Prompt 自定义

Prompt 编辑器

在 GUI 的"Prompt 编辑"标签页中:

  1. 任务背景:描述分析任务的背景信息
  2. 字段管理:添加、编辑、删除提取字段
    • 字段名称:用【】标注,如【期刊名称】
    • 字段说明:详细描述该字段需要提取的内容
  3. 格式规则:输出格式控制(固定规则)
  4. 预览:查看生成的完整 Prompt

Prompt 模板

支持保存和切换多个 Prompt 模板:

  • 默认模板:prompt.txt
  • 自定义模板:保存在 templates/ 目录下
  • 模板格式:支持文本格式和 JSON 格式

字段格式要求

  • 字段名称必须用中文【】标注
  • 每个字段应有详细的说明
  • 字段之间用 <-> 分隔
  • 缺失信息填写"未明确提及"

📊 输出格式

Excel 表格结构

生成的 Excel 文件包含以下列(根据 Prompt 定义的字段):

列名 说明
文件名 PDF 文件名
期刊名称 文献发表的期刊
论文题目 文献标题
作者 作者列表
统计方法 使用的统计方法
主要结果 实验结果
... 其他自定义字段
影响因子 期刊影响因子(自动匹配)

文件命名

输出文件自动命名为:文献分析结果_YYYYMMDD_HHMMSS.xlsx


⚠️ 注意事项

  1. PDF 要求

    • PDF 必须是可复制文本(非扫描图片)
    • 加密或受保护的 PDF 可能无法读取
  2. API 配置

    • 确保网络连接正常
    • API 密钥有效且有足够额度
    • 建议使用稳定的 API 服务商
  3. Prompt 设计

    • 字段说明要清晰具体
    • 避免过于复杂的提取要求
    • 测试不同 Prompt 以获得最佳效果
  4. 性能优化

    • 根据网络状况调整并发数
    • 大文件可设置最大页数限制
    • 定期清理临时文件
  5. 数据安全

    • 不要将 settings.json 提交到公开仓库
    • 注意保护 API 密钥
    • 敏感文献建议离线处理

🔧 故障排除

常见问题

Q: 提示"API 连接失败"

  • 检查 API 地址和密钥是否正确
  • 确认网络连接正常
  • 尝试使用"测试连接"功能

Q: PDF 无法读取

  • 确认 PDF 是可复制文本格式
  • 检查文件是否损坏或加密
  • 尝试使用其他 PDF 阅读器打开

Q: 输出结果不准确

  • 优化 Prompt 字段说明
  • 调整 Temperature 参数(降低可提高准确性)
  • 检查 PDF 文本提取是否完整

Q: 程序运行缓慢

  • 降低并发线程数
  • 设置最大页数限制
  • 检查网络速度

📈 更新日志

v2.0 (当前版本)

  • ✨ 新增图形化界面(GUI)
  • ✨ 新增 Prompt 编辑器
  • ✨ 新增模板管理功能
  • ✨ 支持字体大小调节
  • ✨ 改进配置管理
  • ✨ 添加日志记录功能
  • ✨ 支持原始响应保存
  • ✨ 优化并发处理
  • ✨ 改进错误处理和重试机制

v1.0

  • 🎉 初始版本
  • 📁 批量 PDF 处理
  • 🤖 LLM 集成
  • 📊 Excel 输出
  • 📈 影响因子匹配

🤝 贡献

欢迎提交 Issue 和 Pull Request!


📬 联系作者

如有问题或建议,欢迎联系:
📧 pengside@stu.gzhmu.edu.cn


📄 许可证

本项目仅供学术研究使用。


Designed by GZHMU, psd.

About

写标书,申请书的时候,苦于整理文献?写论文的时候获取特定的信息枯燥麻烦?本项目使用Python读取PDF,加上特定的Prompt发送给大模型,获取回发信息后,整理成表格。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages