[智能体-261]:递归字符分割,文本文章示例

[智能体-261]:递归字符分割,文本文章示例 一、完整示例长散文文章 RecursiveCharacterTextSplitterpython运行from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_core.documents import Document article 江南的春天总在绵绵细雨里悄悄降临。清晨推开窗潮湿的水汽裹挟着草木清香扑面而来河边垂柳抽出嫩黄新芽随风轻轻摇摆。 小桥流水绕着白墙黛瓦巷口老茶馆早早掀开木门沸水冲入青瓷茶碗茶香瞬间漫过整条街巷。 春日农事从不拖沓。农人扛着农具去往田间犁铧翻开沉睡一冬的泥土油菜成片盛放漫山遍野铺成金黄花海。细雨落在花瓣上凝成晶莹水珠风一吹便簌簌滚落。 暮春时节烟雨渐少气温稳步回升。水乡百姓趁着晴好晾晒腌菜、腊味孩童结伴在河畔放风筝各色纸鸢扶摇直上点缀在澄澈的蓝天之下。 等到布谷鸟开始啼鸣便预示初夏将至江南又要换上另一副温婉模样。 doc [Document(page_contentarticle)] # 中文专属分隔符 splitter RecursiveCharacterTextSplitter( chunk_size180, chunk_overlap30, separators[\n\n, \n, 。, , , , , ] ) chunk_list splitter.split_documents(doc) # 打印分片 for idx, chunk in enumerate(chunk_list, 1): print(f【分片{idx}】\n{chunk.page_content}\n)二、输出分片结果plaintext【分片1】 江南的春天总在绵绵细雨里悄悄降临。清晨推开窗潮湿的水汽裹挟着草木清香扑面而来河边垂柳抽出嫩黄新芽随风轻轻摇摆。 小桥流水绕着白墙黛瓦巷口老茶馆早早掀开木门沸水冲入青瓷茶碗茶香瞬间漫过整条街巷。 【分片2】 春日农事从不拖沓。农人扛着农具去往田间犁铧翻开沉睡一冬的泥土油菜成片盛放漫山遍野铺成金黄花海。细雨落在花瓣上凝成晶莹水珠风一吹便簌簌滚落。 【分片3】 细雨落在花瓣上凝成晶莹水珠风一吹便簌簌滚落。 暮春时节烟雨渐少气温稳步回升。水乡百姓趁着晴好晾晒腌菜、腊味孩童结伴在河畔放风筝各色纸鸢扶摇直上点缀在澄澈的蓝天之下。 【分片4】 各色纸鸢扶摇直上点缀在澄澈的蓝天之下。 等到布谷鸟开始啼鸣便预示初夏将至江南又要换上另一副温婉模样。三、拆分逻辑说明优先按\n\n空段落切割原文三大自然段落先行拆分单段文本长度180 字符不再向下按句号、逗号细分chunk_overlap30相邻分片复用末尾一小段文字解决关键语句被切在两段缝隙、检索漏召回第三片带上第二片末尾句子、第四片带上第三片末尾句子就是重叠生效。四、参数调试对照chunk_size80段落过长会继续用\n、句号进一步切碎chunk_size600全文大概率合并成 1 个 chunk。五、接入 RAG 入库python运行from langchain_chroma import Chroma from langchain_openai import OpenAIEmbeddings embedding OpenAIEmbeddings() db Chroma.from_documents(chunk_list, embeddingembedding, persist_directory./article_db) retriever db.as_retriever(k2)