Skip to main content
此 JSON 分割器 拆分 JSON 数据,同时允许控制块大小。它深度优先遍历 JSON 数据并构建较小的 JSON 块。它尝试保持嵌套的 JSON 对象完整,但如果需要,为了将块保持在 min_chunk_size 和 max_chunk_size 之间,也会拆分它们。 如果值不是嵌套 JSON,而是一个非常大的字符串,则该字符串不会被拆分。如果您需要对块大小进行硬性限制,请考虑将这些块与递归文本分割器组合使用。有一个可选的预处理步骤来拆分列表,首先将它们转换为 JSON(字典),然后按此方式拆分。
  1. 文本如何拆分:JSON 值。
  2. 块大小如何测量:按字符数。
首先我们加载一些 JSON 数据:

基本用法

指定 max_chunk_size 以约束块大小:
要获取 JSON 块,请使用 .split_json 方法:
要获取 LangChain 文档 对象,请使用 .create_documents 方法:
或者使用 .split_text 直接获取字符串内容:

如何管理来自列表内容的块大小

请注意,此示例中的一个块大于指定的 max_chunk_size 300。查看其中一个较大的块,我们看到那里有一个列表对象:
JSON 分割器默认不拆分列表。 指定 convert_lists=True 以预处理 JSON,将列表内容转换为字典,其中 index:item 作为 key:val 对:
让我们看看块的大小。现在它们都在最大值以下
列表已转换为字典,但即使拆分为多个块,也保留了所有必要的上下文信息: