基本用法:
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中保留一个回退的"",以便分割器仍然可以进行分割并应用重叠。
将这些文档通过 MCP 连接到 Claude、VSCode 等,以获取实时答案。

