类功能
功能描述
继承实现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)
父主题: MarkdownTextSplitter