基于PaddleOCR + langchain + qwen2.5:7b的完整发票自动化处理解决方案
这是一个功能完整的发票处理系统,能够自动识别和提取发票中的关键信息。系统支持多种文件格式(PDF和图片),结合OCR技术和大语言模型,实现从原始文件到结构化数据的完整处理流程。
- 🔍 多格式支持: 同时支持PDF文档和图片文件(JPG/PNG等)
- 🧠 智能识别: 集成qwen2.5:7b大语言模型进行智能数据提取
- 📊 批量处理: 支持多文件批量处理,提高工作效率
- 📋 多格式输出: 生成HTML、Word、Excel、JSON等多种格式的报告
- 📈 统计分析: 自动生成发票数据统计和分析报告
- 🛡️ 容错设计: 多重备用方案,确保系统稳定运行
智能发票处理系统/
├── main.py # 主程序入口
├── invoice_extractor.py # OCR文字提取器
├── langchain_processor.py # LLM数据处理器
├── invoice_statistics.py # 统计分析器
├── report_generator.py # 报告生成器
├── requirements.txt # 依赖配置
├── INSTALL.md # 详细安装指南
├── CSDN_Article.md # 技术文章
└── README.md # 项目说明
- Python 3.8+
- Linux/Windows/macOS
- 至少4GB RAM
git clone https://github.com/mlb0925/smart-invoice-extractor
cd smart-invoice-extractorpip install -r requirements.txt# Linux CPU版本
python -m pip install paddlepaddle==3.3.1 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
# Windows CPU版本
pip install "paddlepaddle[ocr]==3.4.0"# Linux
curl -fsSL https://ollama.ai/install.sh | sh
# Windows/macOS: 从官网下载安装包ollama serve # 启动Ollama服务
ollama pull qwen2.5:7b # 下载模型sudo apt-get update
sudo apt-get install -y poppler-utilssudo yum install -y poppler-utilspython main.py --image invoice.jpg
python main.py --image invoice.pdfpython main.py --batch uploads/python main.py --data output/ --output reports/python main.py --interactivefrom invoice_extractor import InvoiceExtractor
from langchain_processor import InvoiceDataProcessor
# 1. OCR文字提取
extractor = InvoiceExtractor()
result = extractor.extract_from_image('invoice.pdf')
# 2. LLM数据结构化
processor = InvoiceDataProcessor()
data = processor.process_invoice_text(result['text'])
print(data)
# 输出示例:
# {
# 'invoice_number': '42074197',
# 'invoice_date': '2021-04-12',
# 'total_amount': 99.01,
# 'seller_name': '济南兴旺达商贸有限公司',
# 'buyer_name': '刘景军'
# }[
{
"invoice_number": "42074197",
"invoice_date": "2021-04-12",
"total_amount": 99.01,
"seller_name": "济南兴旺达商贸有限公司",
"buyer_name": "刘景军",
"tax_amount": 0.9
}
]- 📄 HTML报告: 美观的网页格式,包含统计图表
- 📝 Word报告: 适合打印和存档的文档格式
- 📊 Excel报告: 支持数据筛选和进一步分析
- 💾 JSON数据: 结构化数据,方便程序处理
- 引擎: PaddleOCR 3.4.0
- 框架: PaddlePaddle 3.3.1
- 语言: 中文识别优化
- 准确率: 95%+
- 模型: qwen2.5:7b
- 框架: LangChain
- 功能: 智能数据提取和结构化
- 备用方案: 正则表达式处理
- 文字PDF: pdfplumber直接提取
- 扫描PDF: 转换为图片后OCR识别
- 兼容性: 自动检测PDF类型
- 处理速度: PDF 3-5秒,图片 30-60秒
- 准确率: 文字提取95%,数据结构化90%
- 内存占用: 稳定在500MB以内
- 并发处理: 支持批量处理多个文件
# 尝试更换镜像源
pip install paddlepaddle==3.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple# 检查服务状态
ollama list
ollama serve
# 检查端口占用
netstat -tlnp | grep 11434# 安装系统依赖
sudo apt-get install -y poppler-utils# 分批处理大文件
python main.py --image large_file.pdf欢迎提交Issue和Pull Request!
# 1. Fork项目
# 2. 克隆到本地
git clone https://github.com/mlb0925/smart-invoice-extractor
# 3. 安装开发依赖
pip install -r requirements.txt
# 4. 运行测试
pytest
# 5. 代码格式化
black .- feat: 新功能
- fix: 修复bug
- docs: 文档更新
- style: 代码格式调整
- refactor: 代码重构
- test: 测试相关
- chore: 构建过程或工具配置修改
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 📧 Email: earyu878oty@163.com
- 🐛 Issues: GitHub Issues