Skip to content

文档解析与图片分析,解析文档文件(.pdf, .docx, .pptx, .xmind, .txt, .xlsx)并提取文档中的图片,然后使用多模态LLM分析图片内容,输出为同名的Markdown文档。

Notifications You must be signed in to change notification settings

wjiajian/FileParsering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

文件解析工具

一个强大的文档解析工具,支持将 PDF、Word、PowerPoint、XMind、Excel 等多种格式的文档转换为 Markdown,并使用 AI 自动分析文档中的图片内容。

✨ 功能特性

  • 📄 多格式支持:支持 PDF、DOCX、PPTX、XMind、XLSX、TXT 等多种文档格式
  • 🖼️ 图片分析:自动提取文档中的图片,并使用 AI(通义千问 Qwen-VL)进行详细分析
  • 🔄 智能转换:保持文档结构的同时,将内容转换为易于阅读和编辑的 Markdown 格式
  • 🎯 精确定位:通过 XML 解析等技术,实现图片在文档中位置的精确追踪
  • 🌐 双模式使用:支持命令行和 Web 界面两种使用方式
  • 📊 实时进度:Web 界面支持实时查看处理进度和日志
  • 🧹 自动清理:自动管理临时文件,避免磁盘空间浪费

📦 安装

1️⃣ 克隆项目

# 项目已在此目录,可直接使用
cd /path/to/project

2️⃣ 安装Python依赖

pip install -r requirements.txt

核心依赖

  • openpyxl - Excel文件处理
  • python-docx - Word文档处理
  • python-pptx - PowerPoint演示文稿处理
  • pdfplumber - PDF文本提取
  • pdf2image - PDF图片提取
  • openai - 多模态LLM调用
  • Pillow - 图片处理
  • poppler-utils - PDF图片提取工具(必需)

3️⃣ 安装Poppler(PDF图片支持)

Windows:

  1. 下载 Poppler for Windows
  2. 解压到 C:\poppler\ 目录
  3. 添加 C:\poppler\bin 到PATH环境变量

个人倾向于在控制台使用命令安装

# 1. 设置允许执行脚本
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

# 2. 下载并安装 Scoop
irm get.scoop.sh | iex

# 3. 添加扩展库 (extras bucket 包含我们要的工具)
scoop bucket add extras

# 4. 安装 Poppler
scoop install poppler

macOS:

brew install poppler

Linux:

sudo apt-get install poppler-utils

4️⃣ 配置API密钥

方法1:环境变量(推荐)

设置环境变量 QWEN_VL

# Windows (PowerShell)
$env:QWEN_VL = "您的通义千问API密钥"

# macOS/Linux
export QWEN_VL="您的通义千问API密钥"

方法2:直接修改代码(不推荐)

write_file_excel.py 顶部修改:

QWEN_VL_CONFIG = {
    "api_key": "您的通义千问API密钥",  # ⚠️ 不推荐,建议使用环境变量
    "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "model": "qwen-vl-plus",  # 或 qwen-vl-max
}

🚀 快速开始

方式一:Web 界面(推荐)

  1. 启动服务器:
cd web_ui
python server.py
  1. 在浏览器中访问:http://localhost:8000

  2. 上传文档文件,输入 API Key(可选)

  3. 等待处理完成,点击下载结果

方式二:命令行

# 解析单个文件
python file_parsing.py <文件路径> [输出目录]

# 示例
python file_parsing.py document.pdf
python file_parsing.py document.docx ./output

🔑 API 配置

参考安装部分的 API Key 设置, 或者在使用 Web 界面上传文件时直接输入 API Key。

📋 支持的文件格式

格式 扩展名 文本提取 图片提取 图片分析 备注
PDF .pdf 需要 Poppler 进行图片提取
Word .docx 通过 XML 解析精确追踪图片位置
PowerPoint .pptx 按幻灯片逐个提取
XMind .xmind 基于节点结构提取
Excel .xlsx 以制表符分隔的格式提取
文本 .txt UTF-8 编码

📝 使用示例

示例 1:解析 PDF 文档

python file_parsing.py presentation.pdf

输出:presentation.md(包含提取的图片和 AI 分析结果)

示例 2:指定输出目录

python file_parsing.py report.docx ./documents

输出:./documents/report.md

示例 3:Web 界面批量处理

  1. 启动:cd web_ui && python server.py
  2. 打开浏览器访问 http://localhost:8000
  3. 上传多个文件
  4. 查看每个文件的处理进度
  5. 单独下载每个结果文件

🔧 处理流程

本工具的处理流程如下:

  1. 图片提取:从原始文档中提取所有嵌入的图片到临时目录
  2. 格式转换:将文档内容转换为 Markdown 格式,并在图片原位置插入占位符
  3. AI 分析:使用 Qwen-VL 模型对每张图片进行详细分析
  4. 占位符替换:将图片占位符替换为 AI 生成的图片描述
  5. 保存结果:输出最终的 Markdown 文件

📊 输出格式

处理后的 Markdown 文件包含:

  • 原始文本内容:保持原有的结构和格式
  • 图片描述:AI 生成的详细图片内容描述,格式如下:
================================
**图片描述:**
这是 AI 对图片内容的详细描述...
================================

🛠️ 项目结构

FileParsering/
├── file_parsing.py          # 主解析程序
├── web_ui/                  # Web 界面
│   ├── server.py           # HTTP 服务器
│   ├── index.html          # 前端页面
│   ├── script.js           # 前端脚本
│   ├── style.css           # 样式文件
│   ├── uploads/            # 上传文件目录
│   └── outputs/            # 输出文件目录
├── CLAUDE.md               # Claude 代码指导
└── README.md               # 项目说明(本文件)

⚙️ 核心模块说明

file_parsing.py

  • 文档读取模块:不同格式的文档内容提取
  • 图片提取模块:从文档中提取嵌入的图片
  • 格式转换模块:转换为带占位符的 Markdown
  • AI 分析模块:使用 Qwen-VL 分析图片
  • 占位符替换模块:将占位符替换为描述
  • 主处理逻辑:协调整个处理流程

web_ui/server.py

  • 文件上传:处理 multipart 文件上传
  • 后台处理:在独立线程中运行解析任务
  • 实时通信:提供状态查询和文件下载 API
  • 任务管理:管理处理任务的状态和日志

⚠️ 注意事项

  1. API Key:确保正确配置 Qwen-VL API Key,否则图片分析功能将无法使用
  2. 临时文件:所有提取的图片会存储在临时目录中,程序结束后会自动清理
  3. 大文件处理:处理大型文档(特别是 PDF)可能需要较长时间
  4. 编码问题:确保系统支持 UTF-8 编码,避免中文文件名或内容出现乱码
  5. 权限问题:确保对输出目录有写权限

🔍 故障排除

问题 1:PDF 图片提取失败

原因:未安装 Poppler 或未配置 PATH 环境变量 解决

# Windows:从 http://blog.alivate.com.au/poppler-windows/ 下载
# macOS:
brew install poppler
# Linux:
sudo apt-get install poppler-utils

问题 2:图片分析失败

原因:API Key 配置错误或网络问题 解决

  1. 检查 API Key 是否正确:echo $QWEN_V
  2. 测试网络连接:curl -H "Authorization: Bearer YOUR_KEY" https://dashscope.aliyuncs.com/compatible-mode/v1/models

问题 3:文件编码错误

原因:系统编码不支持或文件本身编码问题 解决:确保文件使用 UTF-8 编码保存

问题 4:Web 界面无法访问

原因:端口被占用或防火墙阻止 解决

  1. 检查端口:netstat -an | grep 8000
  2. 更换端口:修改 web_ui/server.py 中的 PORT 变量

📄 许可证

本项目采用 MIT 许可证。

🤝 贡献

欢迎提交 Issue 和 Pull Request!


感谢使用文件解析工具! 🎉

About

文档解析与图片分析,解析文档文件(.pdf, .docx, .pptx, .xmind, .txt, .xlsx)并提取文档中的图片,然后使用多模态LLM分析图片内容,输出为同名的Markdown文档。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published