这是一个支持多种文件格式的数据处理项目,能够:
- 处理PDF、TXT、DOC/DOCX文档
- 处理PNG、JPG等图片格式
- 使用多模态模型(如Qwen2.5-VL-72B)从图片中提取文本
- 支持批量处理和异步操作
使用清华源快速安装:
# 进入项目目录
cd /mnt/c/Users/HW/Desktop/yuanhechen/DataProcessing
# 使用清华源安装依赖
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
# 或者使用安装脚本
./install_with_tsinghua.sh # Linux/Mac
# 或
install_with_tsinghua.bat # Windows编辑 config/settings.yaml 文件,配置您的多模态模型服务:
model:
# 多模态模型服务地址
base_url: "http://localhost:8000"
# API端点
vision_endpoint: "/v1/chat/completions"
# 模型名称
model_name: "Qwen2.5-VL-72B"
# 请求超时时间(秒)
timeout: 300
# 最大重试次数
max_retries: 3- 查看支持的文件格式
python3 src/main.py info- 查看当前配置
python3 src/main.py config-info- 处理文件
python3 src/main.py process --input data/input --output data/output将要处理的文件放入 data/input 目录:
# 创建一些测试文件
echo "这是测试文本" > data/input/test.txt
# 复制PDF、DOC、图片文件到 data/input/python3 src/main.py process --input data/input --output data/output处理完成后,结果保存在 data/output 目录:
processing_results.json: 详细的处理报告extracted_texts/: 提取的文本内容
- 文档: PDF, TXT, DOC, DOCX
- 图片: PNG, JPG, JPEG, BMP, TIFF
每个文件的处理结果包含:
- 文件路径和基本信息
- 处理是否成功
- 提取的文本内容
- 错误信息(如果有)
- 使用的处理器类型
您可以修改 config/settings.yaml 来调整:
- 批处理大小
- 并发处理数量
- 日志级别
- 输出格式
import asyncio
from src.processors import ProcessorManager
from src.models import ModelManager
# 处理单个文件
async def process_file():
processor_manager = ProcessorManager()
result = await processor_manager.process_file(Path("data/input/example.txt"))
print(result)
# 处理图片
async def process_image():
model_manager = ModelManager()
result = await model_manager.process_image(Path("data/input/image.jpg"))
print(result)
# 运行
asyncio.run(process_file())项目支持大量文件的批量处理,会自动:
- 按配置的批次大小分组处理
- 显示进度条
- 并发处理以提高效率
- 生成详细的处理报告
- 安装模型服务(示例)
# 使用vLLM部署
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-VL-72B-Instruct \
--port 8000 \
--served-model-name Qwen2.5-VL-72B- 验证服务
curl http://localhost:8000/v1/models-
模块未找到错误
- 确保已安装所有依赖:
pip install -r requirements.txt
- 确保已安装所有依赖:
-
模型服务连接失败
- 检查
config/settings.yaml中的服务地址 - 确保模型服务正在运行
- 检查
-
文件处理失败
- 检查文件格式是否支持
- 查看
logs/app.log获取详细错误信息
项目日志保存在 logs/app.log:
tail -f logs/app.logDataProcessing/
├── src/ # 源代码
│ ├── processors/ # 文件处理器
│ ├── models/ # 模型接口
│ ├── utils/ # 工具函数
│ └── main.py # 主程序
├── config/ # 配置文件
├── data/ # 数据目录
├── logs/ # 日志文件
├── tests/ # 测试文件
└── requirements.txt # 依赖列表
- 创建新的处理器类,继承
BaseProcessor - 实现
can_process()和process()方法 - 在
ProcessorManager中注册新处理器
- 在
src/models/中创建新的模型客户端 - 实现统一的接口方法
- 在配置文件中添加相应配置
- 调整
batch_size控制批处理大小 - 调整
max_workers控制并发数量 - 使用SSD存储提高I/O性能
- 根据内存大小调整
memory_limit