Skip to content

Yangfan-123-cell/PDF_Reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 智能论文解读系统

一个基于AI的专业学术论文分析工具,支持PDF文档的智能解析、多模态内容提取和深度学术问答。

Python Streamlit License

✨ 核心功能

📄 文档解析

  • 智能PDF解析: 支持IEEE/ACM/Springer等学术格式
  • 结构化提取: 自动识别章节、标题层次和文档结构
  • 多模态内容: 提取图片、表格、数学公式和文本内容
  • 语义分析: AI驱动的文档语义理解和分类

🤖 智能问答

  • 自适应问答: 根据问题类型自动选择最佳回答策略
  • 专业分析: 支持方法论、实验结果、技术细节等深度分析
  • 多模态理解: 图片、表格、公式的专业解读
  • 上下文感知: 基于文档内容的精准回答

📊 专业总结

  • 结构化总结: 按学术论文标准生成专业总结
  • 关键信息提取: 自动识别研究背景、方法、结果和贡献
  • Markdown格式: 美观的格式化输出
  • 质量保证: 基于原文内容的准确总结

🚀 快速开始

系统要求

  • Python 3.8+
  • 8GB+ RAM (推荐16GB)
  • 网络连接 (用于AI API调用)

安装步骤

  1. 克隆项目
git clone https://github.com/Yangfan-123-cell/PDF_Reader.git
cd PDF_Reader
  1. 安装依赖
pip install -r requirements.txt
  1. 运行系统
streamlit run app.py
  1. 打开浏览器 访问 http://localhost:8501 开始使用

依赖包清单

streamlit>=1.28.0
PyMuPDF>=1.23.0
Pillow>=9.0.0
requests>=2.28.0
numpy>=1.21.0
pandas>=1.5.0
python-dotenv>=0.19.0

📖 使用指南

1. 配置AI服务

系统支持多个AI服务提供商:

DeepSeek 配置

provider = "deepseek"
api_key = "sk-your-deepseek-api-key"

通义千问 配置

provider = "qianwen"
api_key = "sk-your-qianwen-api-key"

2. 上传和解析论文

  1. 在侧边栏配置API密钥
  2. 点击"测试连接"确保API正常
  3. 上传PDF论文文件
  4. 点击"开始智能分析"

3. 智能问答使用

基础信息查询

- 这篇论文的标题和作者是什么?
- 论文的主要内容和贡献是什么?

技术方法分析

- 论文采用了什么方法或算法?
- 技术实现的具体细节是什么?

实验结果分析

- 实验结果和性能如何?
- 与其他方法的对比效果怎样?

图表分析

- 第1张图展示了什么内容?
- 表格中的数据说明了什么?

公式解析

- 论文中的数学公式有什么含义?
- 公式是如何推导的?

🏗️ 系统架构

智能论文解读系统
├── app.py                 # Streamlit主应用
├── pdf_processor.py        # PDF处理核心
├── llm_client.py          # AI客户端
├── requirements.txt       # 依赖列表
└── README.md             # 说明文档

核心模块

📄 PDFProcessor

  • 文档结构分析: AI驱动的版面理解
  • 内容提取: 文本、图片、表格、公式
  • 语义识别: 章节分类和层次结构
  • IEEE格式支持: 专门优化学术论文格式

🤖 EnhancedLLMClient

  • 智能路由: 根据问题类型选择策略
  • 多模态分析: 支持文本、图表、公式分析
  • 自适应上下文: 动态选择相关内容
  • 专业回答: 学术级别的回答质量

🎨 Streamlit UI

  • 响应式设计: 适配不同屏幕尺寸
  • 实时交互: 流畅的用户体验
  • 状态管理: 智能会话状态保持
  • 可视化展示: 美观的结果呈现

🔧 高级配置

自定义配置

修改问题分析模板

# 在 llm_client.py 中
question_patterns = {
    'custom_type': {
        'keywords': ['自定义', 'custom'],
        'weight': 1.0
    }
}

调整PDF解析参数

# 在 pdf_processor.py 中
class PDFProcessor:
    def __init__(self, pdf_path: str):
        # 自定义解析参数
        self.max_figures = 10
        self.max_tables = 5
        self.max_formulas = 20

📊 性能优化

系统性能指标

  • 解析速度: 1-3秒/页面
  • 问答响应: 3-8秒/问题
  • 内存使用: 500MB-2GB (取决于文档大小)
  • 支持格式: PDF (多栏布局、复杂排版)

优化建议

  1. 硬件优化

    • 推荐16GB RAM
    • SSD存储提升IO性能
    • 稳定网络连接
  2. 使用优化

    • 分批处理大型文档
    • 使用精确问题描述
    • 避免重复上传相同文档
  3. API优化

    • 选择合适的AI服务商
    • 监控API调用频率
    • 实施错误重试机制

🐛 故障排除

常见问题

PDF解析失败

# 检查文件格式
file your_paper.pdf

# 重新安装PyMuPDF
pip uninstall PyMuPDF
pip install PyMuPDF>=1.23.0

API连接失败

# 检查网络连接
import requests
response = requests.get('https://api.deepseek.com')
print(response.status_code)

内存不足

# 监控内存使用
htop
#
top

错误日志

# 启用调试模式
streamlit run app.py --logger.level=debug

🤝 贡献指南

开发环境设置

# 1. Fork 项目
git clone https://github.com/Yangfan-123-cell/PDF_Reader.git

# 2. 创建开发分支
git checkout -b feature/your-feature

# 3. 安装开发依赖
pip install -r requirements-dev.txt

# 4. 运行测试
python -m pytest tests/

# 5. 提交更改
git commit -m "Add your feature"
git push origin feature/your-feature

代码规范

  • 遵循 PEP 8 Python 代码规范
  • 使用类型注解
  • 编写文档字符串
  • 添加单元测试

提交Pull Request

  1. 确保代码通过所有测试
  2. 更新相关文档
  3. 描述变更内容和影响
  4. 等待代码审查

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

🙏 致谢

感谢以下开源项目的支持:

⭐ 如果这个项目对您有帮助,请给我们一个Star!

About

Task 4 For SE at ZheJiang University

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages