昇腾社区首页
中文
注册
开发者
下载

split_text

功能描述

实现langchain基类的split_text方法,对传入的字符串text进行分块。

  • 如果text长度小于等于chunk_size,则不进行切分。
  • 如果text长度大于chunk_size,则会首先调用父类MarkdownHeaderTextSplitter的分块方法按照header_level选定的标题层级进行切分,得到多个标题块。
  • 如果标题块长度小于等于chunk_size,则会尝试跟后续的标题块进行合并,直到其长度快超过chunk_size或者没有标题块可以合并,此时会将各块的标题合并之后与块内容拼接得到一个新的标题块作为输出。注意标题合并的规则是:若两个块在同一层级的标题内容不同,则删除该级及更低级的标题,只保留相同的更高级的标题作为共性内容。
  • 如果标题块长度大于chunk_size,则会调用父类RecursiveCharacterTextSplitter的分块方法对该标题块的内容进行递归字符切分,并且将该标题块的所有标题与每一个子标题块内容进行合并作为输出。

注:拼接标题之后的块长度可能会大于chunk_size。

函数原型

def split_text(text)

参数说明

参数名

数据类型

可选/必选

说明

text

str

必选

待切分的字符串,text长度不超过100MB。

返回值说明

数据类型

说明

List[str]

返回切分后得到的分块列表。