易于部署和可扩展的后端服务器,有效地将各种文档格式(pdf,docx,pptx,html,图像等)转换为Markdown。它同时支持CPU和GPU处理,非常适合大规模工作流,它提供文本/表格提取、OCR和带有sync/PECC端点的批处理。
该服务由Docling(IBM的高级文档解析器)提供支持,使用FastAPI、Celery和Redis构建,确保快速、高效的处理。该解决方案针对CPU和GPU模式进行了优化,并强烈建议在生产环境中使用GPU,可提供高性能和灵活性,是大规模处理复杂文档的理想之选。
Docling是什么?
IBM推出了一个免费的Python库,可以将任何文档转换为数据。可简化文档处理、解析各种格式(包括高级PDF理解),并提供与Gen AI生态系统的无缝集成。
文档转换架构 对于每种文档格式,文档转换器都知道要使用哪种特定格式的后端来解析文档,使用哪种管道来协调执行,以及任何相关选项。
Docling包括:
- -用于解析的PDF后端
- -布局分析模型
- -基于视觉的表格格式化器
- -文本OCR
特征:
- 多种格式支持:支持多种文档类型,包括:
- PDF文件
- Microsoft Word documents (DOCX)
- PowerPoint演示文稿(PPTX)
- HTML文件
- 图像(JPG,PNG,TIFF,BMP)
- AsciiDoc文件
- Markdown文件
- CSV文件
- 转换能力:
- 文本提取和格式化
- 表检测、提取和转换
- 图像提取与处理
- Multi-language OCR support (French, German, Spanish, English, Italian, Portuguese etc)
- 可配置的图像分辨率缩放
- API终点:
- 同步单文档转换
- 同步批处理文档转换
- 带有作业跟踪的异步单文档转换
- 带作业跟踪的异步批处理转换
- 处理模式:
- 仅CPU处理标准部署
- GPU加速处理以提高性能
- 使用Celery进行分布式任务处理
- 通过Flower仪表板进行任务监控
本项目先决条件
- Python 3.8或更高
- Python包管理器(Python package manager)
- Redis服务器(用于任务队列)
git clone https://github.com/drmingler/docling-api.git |
开发说明
- API文档可从http://localhost:8080/docs获得
- Redis被用作Celery任务的消息代理和结果后端
- 该服务支持同步和异步文档转换
- 对于开发,服务器运行时启用了自动重新加载
架构
该服务采用分布式架构,包含以下组件:
- 为REST API提供服务的FastAPI应用程序
- 用于分布式任务处理的Celery worker
- Redis作为消息代理和结果后端
- 用于任务监控和管理的花
- 文件转换的Docling
- GPU模式可显著加快大型文档的处理速度
- CPU mode is suitable for smaller deployments or when GPU is not available
- 可以横向扩展多个工作进程以提高吞吐量
组件: