在如今的数字化时代,从科研到商业,从个人到企业,大量的 PDF、DOCX、HTML 等格式的文档需要被高效解析和处理,以支持下游的工作流程,如人工智能应用、知识库构建等等。Docling 项目,能够大大简化文档解析流程,为我们提供了强大的文档处理解决方案。
简介
Docling 是一个文档解析工具,其代码仓库位于
https://github.com/DS4SD/docling 。Docling 简化了文档处理流程,能够解析多种格式的文档,包括针对 PDF 文档进行深度解析,并实现了与生成式人工智能生态系统的无缝集成。
Docling 提供了丰富的特色功能:
- 可解析多种文档格式,包括 PDF、DOCX、XLSX、HTML、图像等
- 具备深度解析 PDF 能力,涵盖页面布局、阅读顺序、表格结构、代码、公式、图像分类等
- 采用统一且表达能力强的 DoclingDocument 格式来表示文档
- 提供多种导出格式和选项,包括 Markdown、HTML 以及无损的 JSON
- 针对敏感数据和物理隔离环境,具备本地执行能力
- 即插即用式集成,支持 LangChain、LlamaIndex、Crew AI 和 Haystack 等,以支持智能 AI 应用
- 对扫描的 PDF 和图像提供强大的 OCR 支持
- 拥有简单便捷的命令行界面 CLI
使用
Docling 是一个 Python 库,使用前首先通过 pip 进行本地安装:
pip install docling
如果想要进行开发版本的安装,进行特性扩展等,可以首先拉起代码仓库,然后在仓库目录下运行以下命令:
poetry install --all-extras
安装完成后,就可以使用 Docling 进行文档解析了。可以在 Python 代码中直接引用 docling 库进行使用,例如,使用 DocumentConverter 进行单个 PDF 文档的转换:
from docling.document_converter import DocumentConverter
source = "https://arxiv.org/pdf/2408.09869" # PDF path or URL
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown()) # output: "### Docling Technical Report[...]"
在以上代码中,使用了 docling 的 DocumentConverter,把 url 对应的 PDF 文件,直接转换为了 MarkDown 格式,并打印输出。
Docling 也提供了强大的命令行工具,可以直接在命令行使用,例如:
docling https://arxiv.org/pdf/2206.01062
Docling 依赖多个模型进行不同格式文档的转换,默认在初次使用时才进行模型的下载,也支持预下载模型,以应对离线环境的使用,运行以下命令:
docling-tools models download
或执行以下 Python 代码:
docling.utils.model_downloader.download_models()
然后就可以通过指定 artifacts_path 使用预下载的模型了:
from docling.datamodel.base_models import InputFormat
from docling.datamodel.pipeline_options import EasyOcrOptions, PdfPipelineOptions
from docling.document_converter import DocumentConverter, PdfFormatOption
artifacts_path = "/local/path/to/models"
pipeline_options = PdfPipelineOptions(artifacts_path=artifacts_path)
doc_converter = DocumentConverter(
format_options={
InputFormat.PDF: PdfFormatOption(pipeline_options=pipeline_options)
}
)
总结
Docling 是一个非常实用的文档解析工具,它为我们提供了一种简单而高效的方式来处理多种格式的文档。通过将文档转换为统一的表示形式,Docling 可以为下游的工作流程,如生成式人工智能应用等,提供强大的支持。
Docling 可以广泛应用于科研、商业、教育等领域。研究人员可以使用 Docling 来解析大量的学术文献,提取其中的关键信息,从而加速科研进展。而企业可以使用 Docling 来处理合同、报告等文档,提高工作效率。在教育领域,教师可以使用 Docling 来解析教学材料,为学生提供更好的学习资源。