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

类功能

功能描述

继承实现langchain_text_splitters.character.RecursiveCharacterTextSplitter类和langchain_text_splitters.markdown.MarkdownHeaderTextSplitter类,执行Markdown文件切分功能,一次切分的字符串长度不能超过100MB。

函数原型

from mx_rag.document.splitter import MarkdownTextSplitter
MarkdownTextSplitter(chunk_size, chunk_overlap, header_level, **kwargs)

参数说明

参数名

数据类型

可选/必选

说明

chunk_size

int

可选

分块大小,大于0,默认为1000。

chunk_overlap

int

可选

分块重叠大小,大于等于0,必须小于chunk_size,默认为50。

header_level

int

可选

标题解析深度,介于0和6之间,默认为3。

**kwargs

Dict[str, Any]

可选

关键字参数,用于提供给langchain父类RecursiveCharacterTextSplitter的额外参数

调用示例

from mx_rag.document.loader import MarkdownLoader
from mx_rag.document.splitter import MarkdownTextSplitter
from mx_rag.llm import Img2TextLLM, LLMParameterConfig
from mx_rag.utils import ClientParam

vlm = Img2TextLLM(base_url="https://{ip}:{port}/openai/v1/chat/completions",
                   model_name="Qwen2.5-VL-7B-Instruct",
                   llm_config=LLMParameterConfig(max_tokens=512),
                   client_param=ClientParam(ca_file="/path/to/ca.crt")
                   )
loader = MarkdownLoader("/path/to/document.md", vlm=vlm, process_images_separately=False)
docs = loader.lazy_load()

splitter = MarkdownTextSplitter(chunk_size=1000, chunk_overlap=50, header_level=3)
for doc in docs:
     chunks = splitter.split_text(doc.page_content)
     print(chunks)