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

基本用法

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

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

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