新闻详情

新闻详情

首页 / 资讯中心 / 详情

Docling RAG 实战:如何用 HybridChunker 把文档切分成大模型友好的知识块

发布时间:2026/9/3 12:09:33来源:尧图网络
Docling RAG 实战:如何用 HybridChunker 把文档切分成大模型友好的知识块
Docling RAG 实战如何用 HybridChunker 把文档切分成大模型友好的知识块【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/doclingDocling 是一款为生成式 AI 准备文档的开源文档解析工具能把 PDF、DOCX、HTML 等文件转成结构化文档在 RAG检索增强生成项目中它的内置 HybridChunker 混合切分器可以把文档直接切成带上下文、可控 token 数的知识块chunk是连接原始文档和大模型检索的关键一步。本文将带你快速上手这套切分流程。一、为什么 RAG 效果差往往输在切分环节用过大模型的同事应该都遇到过这个问题知识库检索出来的内容驴唇不对马嘴或者答案总是缺一块上下文。问题多半不在模型而在文档切分按固定字数硬切一句话被拦腰截断语义残缺向量检索命中率骤降切分不感知标题层级检索到1910s–1950s这段文字却不知道它属于IBM 历史这一章大模型容易答非所问token 数失控切出来的块要么超出 embedding 模型的上下文窗口要么短到毫无信息量。Docling 的 HybridChunker 正是针对这三个痛点设计的。二、HybridChunker 工作原理只在该切时切只在该并时并根据官方切分概念文档的说明HybridChunker 采用的是混合策略分两趟处理继承层级切分Hierarchical Chunking先利用 Docling 解析出的文档结构标题、段落、列表、表格按元素天然地分成初始块并自动挂上所属标题、图片说明等元数据token 感知优化拆分趟只有当某个块超出你设定的 token 上限时才拆且尽量在逗号等标点处断开保留句子完整性合并趟把连续且同属一个标题的小块合并避免碎片化可用参数merge_peers关闭默认开启。简单说就是只在该切时切只在该并时并。这套机制的代码入口在 docling/chunking/__init__.py它从 docling-core 导出了HybridChunker、HierarchicalChunker等全部切分器类。如上图所示Docling 的DoclingDocument内部是一棵带层级关系的文档树——Hybrid里的H就体现在这里结构信息 token 计数双管齐下这正是普通切分库按字符数硬切做不到的。三、三步完成第一次知识块切分安装后pip install docling transformers三步走from docling.document_converter import DocumentConverter from docling.chunking import HybridChunker # 1. 解析文档为 DoclingDocument doc DocumentConverter().convert(sourcewiki.md).document # 2. 创建混合切分器默认参数即可用 chunker HybridChunker() # 3. 迭代得到知识块contextualize() 生成带标题上下文的文本 for chunk in chunker.chunk(dl_docdoc): enriched chunker.contextualize(chunk) # 把 enriched 送入你的向量库做 embedding注意一个容易踩的坑chunk.text是裸文本而真正适合送给 embedding 模型的是contextualize(chunk)的返回值——它会把文档标题、章节标题拼在正文前面。比如一段正文会被增强成IBM 1910s–1950s IBM originated with several technological innovations ...检索命中时大模型就知道这段话出自IBM 的 1910s–1950s 章节回答质量立竿见影。更多交互细节可以参考 hybrid_chunking.ipynb 这个官方示例 Notebook。四、关键配置token 数对齐 embedding 模型实战中最重要的一条经验切分器的 tokenizer 必须和 embedding 模型的 tokenizer 保持一致。否则按 512 token 切可能只是切分器单方面认为的 512embedding 模型那边早已超长。Docling 支持 HuggingFace tokenizer默认和 OpenAI tiktoken配置如下from transformers import AutoTokenizer from docling_core.transforms.chunker.tokenizer.huggingface import HuggingFaceTokenizer tokenizer HuggingFaceTokenizer( tokenizerAutoTokenizer.from_pretrained(sentence-transformers/all-MiniLM-L6-v2), max_tokens512, ) chunker HybridChunker(tokenizertokenizer, merge_peersTrue)max_tokens建议设为 embedding 模型上下文窗口略小的值如 512给标题上下文预留空间。五、进阶跨块表格也能自带表头表格是 RAG 切分的重灾区——一张大表被切到第 3 块时列名是什么已经丢了。HybridChunker 提供了两个贴心参数参数默认值作用repeat_table_headerTrue表格跨块时每个块开头自动重复表头omit_header_on_overflowFalse宽表行太宽装不下表头时允许省略表头保行完整官方在示例中用一份 12 列的客户 CSV 表格演示切出的每个块都以表头行开头保证每块独立可理解。完整演示见 hybrid_chunking.ipynb 的表格章节。如果你处理的是代码、日志这类行结构敏感的内容还可以看看 line_based_chunking.ipynb。六、延伸阅读从切分到完整 RAG 管线docs/concepts/chunking.md三种切分器Base / Hybrid / Hierarchical的完整设计说明docs/examples/rag_langchain.ipynbHybridChunker 接入 LangChain 构建完整 RAG 应用docs/examples/advanced_chunking_and_serialization.ipynb高级切分与序列化技巧docs/examples/minimal.pyDocling 最简转换示例。小结RAG 的知识块质量 文档结构感知 token 精准控制 上下文增强。Docling 的 HybridChunker 把这三件事封装成了一个类chunk()切块、contextualize()增强两行核心代码就能让大模型的检索答案从缺胳膊少腿变得上下文完备。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

具身智能开发从入门到二次开发:从ROS 2仿真到机械臂实操 2026/9/3 13:36:57

具身智能开发从入门到二次开发:从ROS 2仿真到机械臂实操

最近想入行具身智能的开发者明显变多了,不只是因为技术热度,更多是因为产业叙事正在发生一次“反向重估”。过去一年,AI 圈的注意力大量集中在纯数字世界的大模型刷榜上;而另一端,具身智能强调“物理世界的反馈闭环”&…

阅读更多 →
FastGPT 上手:从本地部署到工作流编排 2026/9/3 13:36:57

FastGPT 上手:从本地部署到工作流编排

FastGPT 上手:从本地部署到工作流编排 【免费下载链接】FastGPT FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orche…

阅读更多 →
2026年Robocity:机器人从单体智能走向系统协同 2026/9/3 13:36:57

2026年Robocity:机器人从单体智能走向系统协同

如果把2024年之后机器人行业的落地状态拍成一张照片,大体会是这样:无人配送车在限定园区里反复试跑,仓储机器人在大型仓库里按固定路线搬运,巡检机器人在厂区围墙内一圈圈巡逻,清洁机器人在商场闭店后的夜里默默拖地。…

阅读更多 →
一切皆节点:Godot游戏引擎的核心逻辑与开发实践 2026/9/3 13:36:57

一切皆节点:Godot游戏引擎的核心逻辑与开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GPT Researcher 快速上手:15分钟跑通你的第一份AI研究报告 2026/9/3 13:36:57

GPT Researcher 快速上手:15分钟跑通你的第一份AI研究报告

GPT Researcher 快速上手:15分钟跑通你的第一份AI研究报告 【免费下载链接】gpt-researcher An autonomous agent that conducts deep research on any data using any LLM providers 项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-researcher 当你…

阅读更多 →
Java+SSM+MySQL+微信小程序构建英语学习激励系统:从毕业设计到工程实践 2026/9/3 13:33:57

Java+SSM+MySQL+微信小程序构建英语学习激励系统:从毕业设计到工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞