kotaemon 如何安装 Docling 并启用表格与图表提取?
2026/9/13 13:38:45 网站建设 项目流程

kotaemon 如何安装 Docling 并启用表格与图表提取?

【免费下载链接】kotaemonAn open-source RAG-based tool for chatting with your documents.项目地址: https://gitcode.com/GitHub_Trending/kot/kotaemon

当你的文档里有大量表格和插图,而 kotaemon 默认的 PDF 解析方式无法把它们结构化成可问答的内容时,可以启用 kotaemon 内置的 Docling 读取器(reader)。它基于开源的 Docling 在本地做结构感知解析,支持文本、表格和图表(figure)三类内容。完成后,你在上传文档索引时,kotaemon 会用 Docling 解析文件,并把提取出的文本、Markdown 表格和图表分别转成Document对象进入索引。下面给出安装和启用的完整操作路径。

准备条件

Docling 是 kotaemon 核心库的一个可选依赖(extra),不是默认安装的,需要在你自己的 Python 环境里单独安装,适用于源码方式运行的部署。先按 README.md 中的 “Without Docker” 部分搭好环境:

  1. 克隆仓库并进入kotaemon目录;
  2. 用 uv(推荐)或 conda 完成基础环境,要求 Python >= 3.10:
uv sync --python 3.10 source .venv/bin/activate
  1. 在项目根目录创建.env文件,可用.env.example作为模板。

安装 Docling 读取器

在仓库根目录执行:

uv pip install -e "libs/kotaemon[docling]"

这条命令以可编辑方式重新安装libs/kotaemon并带上docling这个可选依赖。安装的内容是docling<=2.5.2,见 pyproject.toml 中的[project.optional-dependencies] docling = ["docling<=2.5.2"]

对应实现位于 docling_loader.py 的DoclingReader。它声明了_dependencies = ["docling"];如果依赖缺失,实例化转换时会抛出明确的错误:ImportError: Please install docling: 'pip install docling'。所以如果索引时报这个错,说明上一步的安装没有成功。

可选:配置 VLM 端点生成图表说明文字

Docling 在本地就能提取文本、表格和图表元数据,但“为图表生成说明文字(figure caption)”需要额外的视觉语言模型(VLM)端点。

如果你希望图表带上生成的 caption,在项目根目录的.env或应用设置中配置KH_VLM_ENDPOINT

KH_VLM_ENDPOINT=http://your-vlm-endpoint

http://your-vlm-endpoint是文档中的示例值,需要替换为你自己的 VLM 服务地址。KH_VLM_ENDPOINT会在启动时注入到 Docling 读取器的vlm_endpoint参数中,见 files.py:

docling_reader = DoclingReader() adobe_reader.vlm_endpoint = ( azure_reader.vlm_endpoint ) = docling_reader.vlm_endpoint = getattr(flowsettings, "KH_VLM_ENDPOINT", "")

如果不设置KH_VLM_ENDPOINT,Docling 仍会提取文本、表格和图表元数据,只是跳过生成的图表说明文字。也就是说,启用表格提取不依赖 VLM 端点,VLM 端点只影响图表 caption。

另外两个与图表处理相关的参数(见 docling_loader.py):

  • max_figure_to_caption:默认 100,表示最多为多少张图表生成说明文字,超出部分按“无 caption”入库;
  • figure_friendly_filetypes:默认[".pdf", ".jpeg", ".jpg", ".png", ".bmp", ".tiff", ".heif", ".tif"],只有这些文件类型的图表才做视觉裁剪和 caption 生成;.docx.html等文件因不同工具下的版面可能不一致,不做图表提取。

在应用中启用 Docling 文件加载器

安装完成后,在 UI 里把文件加载器切换为 Docling:

  1. 运行 kotaemon 并打开应用 UI(源码方式下执行python app.py,默认用户名和密码均为admin);
  2. 进入Settings → Retrieval Settings → File loader
  3. 在下拉框中选择Docling (figure+table extraction)
  4. 保存设置,然后上传或索引文档。索引阶段 kotaemon 会调用 Docling 解析文件,并把提取内容转成Document对象。

这个下拉选项由 pipelines.py 中的reader_mode配置提供,其中("Docling (figure+table extraction)", "docling")对应 Docling。选择后,.pdf文件的解析器会被替换为 Docling 读取器:

elif self.reader_mode == "docling": readers[".pdf"] = docling_reader

也就是说,在 Docling 模式下,PDF 走 Docling 解析,其余文件类型仍按默认提取器处理。

解析结果包含什么

DoclingReaderload_data方法(docling_loader.py)把一次解析结果组织成三类Document

  • 文本:按页归并的纯文本,元数据带page_labelfile_namefile_path
  • 表格:Docling 的表格网格被转成 Markdown 表格,并拼上文档中抽取到的表格标题(extractive caption),元数据中type: "table"table_origin保存 Markdown 原文;
  • 图表:按页面上记录的坐标从原文件中裁剪出图片,转成 base64 存入image_origin,caption 由文档内抽取的说明文字和(若配置了 VLM)生成的说明文字拼接而成,元数据中type: "image"

索引完成后,这些内容作为普通文档参与问答,可以在聊天中针对表格和图表提问并看到对应的引用。

限制与注意

  • KH_VLM_ENDPOINT未设置时只影响图表的生成式 caption,不影响文本、表格和图表元数据提取;
  • 图表提取只对figure_friendly_filetypes列出的文件类型生效(.pdf、常见图片格式等),.docx.html等不参与图表提取;
  • 超出max_figure_to_caption(默认 100)的图表不再生成 caption,但内容仍会入库;
  • Docling 读取器在 Docling 模式下仅接管.pdf的解析,其他扩展名仍走默认提取器。

更多多模态解析的替代方案(Adobe、Azure AI Document Intelligence、PaddleOCR)及加载器选择入口,见 README.md 的 “Setup multimodal document parsing” 小节和 integrations/docling.md。

【免费下载链接】kotaemonAn open-source RAG-based tool for chatting with your documents.项目地址: https://gitcode.com/GitHub_Trending/kot/kotaemon

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询