基本用法:
MarkdownHeaderTextSplitter 会从输出块内容中去除被分割的标题。可以通过设置 strip_headers = False 来禁用此行为。
默认的
MarkdownHeaderTextSplitter 会去除空格和换行符。要保留 Markdown 文档的原始格式,请参阅 ExperimentalMarkdownSyntaxTextSplitter。如何将 Markdown 行作为单独文档返回
默认情况下,MarkdownHeaderTextSplitter 根据 headers_to_split_on 中指定的标题聚合行。我们可以通过指定 return_each_line 来禁用此行为:
metadata 中。
如何限制块大小:
在每个 Markdown 组内,我们可以应用任何我们想要的文本分割器,例如RecursiveCharacterTextSplitter,它可以进一步控制块大小。
疑难解答:chunk_overlap 似乎不生效
- 在基于标题的分割(如
MarkdownHeaderTextSplitter)之后,使用split_documents(docs)(而非split_text),这样重叠才会在每个章节内应用,并且每个章节的元数据(标题)会保留在块中。 - 重叠仅在单个章节超过
chunk_size并被分割为多个块时出现。 - 重叠不会跨越章节/文档边界(例如
# H1→## H2)。 - 如果标题变成了一个微小的第一块,请考虑将
strip_headers设置为True,以避免标题行成为独立的块。 - 如果您的文本缺少换行符/空格,请在
separators中保留一个回退的"",以便分割器仍然可以分割并应用重叠。
连接这些文档 到 Claude、VSCode 等,通过 MCP 获取实时答案。

