基于 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 # 本文件
- Python 3.8 或更高版本
- Windows/macOS/Linux 操作系统
pip install pandas openpyxl pdfplumber openai typing_extensionspython gui.py启动后,在图形界面中:
- 在"设置"标签页配置 API 参数
- 在"运行"标签页选择 PDF 文件夹
- 点击"开始分析"按钮
- 等待分析完成,结果将保存到 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 |
| 参数 | 说明 | 默认值 |
|---|---|---|
| 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 |
在 GUI 的"Prompt 编辑"标签页中:
- 任务背景:描述分析任务的背景信息
- 字段管理:添加、编辑、删除提取字段
- 字段名称:用【】标注,如【期刊名称】
- 字段说明:详细描述该字段需要提取的内容
- 格式规则:输出格式控制(固定规则)
- 预览:查看生成的完整 Prompt
支持保存和切换多个 Prompt 模板:
- 默认模板:
prompt.txt - 自定义模板:保存在
templates/目录下 - 模板格式:支持文本格式和 JSON 格式
- 字段名称必须用中文【】标注
- 每个字段应有详细的说明
- 字段之间用
<->分隔 - 缺失信息填写"未明确提及"
生成的 Excel 文件包含以下列(根据 Prompt 定义的字段):
| 列名 | 说明 |
|---|---|
| 文件名 | PDF 文件名 |
| 期刊名称 | 文献发表的期刊 |
| 论文题目 | 文献标题 |
| 作者 | 作者列表 |
| 统计方法 | 使用的统计方法 |
| 主要结果 | 实验结果 |
| ... | 其他自定义字段 |
| 影响因子 | 期刊影响因子(自动匹配) |
输出文件自动命名为:文献分析结果_YYYYMMDD_HHMMSS.xlsx
-
PDF 要求:
- PDF 必须是可复制文本(非扫描图片)
- 加密或受保护的 PDF 可能无法读取
-
API 配置:
- 确保网络连接正常
- API 密钥有效且有足够额度
- 建议使用稳定的 API 服务商
-
Prompt 设计:
- 字段说明要清晰具体
- 避免过于复杂的提取要求
- 测试不同 Prompt 以获得最佳效果
-
性能优化:
- 根据网络状况调整并发数
- 大文件可设置最大页数限制
- 定期清理临时文件
-
数据安全:
- 不要将
settings.json提交到公开仓库 - 注意保护 API 密钥
- 敏感文献建议离线处理
- 不要将
Q: 提示"API 连接失败"
- 检查 API 地址和密钥是否正确
- 确认网络连接正常
- 尝试使用"测试连接"功能
Q: PDF 无法读取
- 确认 PDF 是可复制文本格式
- 检查文件是否损坏或加密
- 尝试使用其他 PDF 阅读器打开
Q: 输出结果不准确
- 优化 Prompt 字段说明
- 调整 Temperature 参数(降低可提高准确性)
- 检查 PDF 文本提取是否完整
Q: 程序运行缓慢
- 降低并发线程数
- 设置最大页数限制
- 检查网络速度
- ✨ 新增图形化界面(GUI)
- ✨ 新增 Prompt 编辑器
- ✨ 新增模板管理功能
- ✨ 支持字体大小调节
- ✨ 改进配置管理
- ✨ 添加日志记录功能
- ✨ 支持原始响应保存
- ✨ 优化并发处理
- ✨ 改进错误处理和重试机制
- 🎉 初始版本
- 📁 批量 PDF 处理
- 🤖 LLM 集成
- 📊 Excel 输出
- 📈 影响因子匹配
欢迎提交 Issue 和 Pull Request!
如有问题或建议,欢迎联系:
📧 pengside@stu.gzhmu.edu.cn
本项目仅供学术研究使用。
Designed by GZHMU, psd.