用途:这是 RAG 流水线的上游环节,负责把文档正确加载并按内容类型切分,避免检索到残缺片段导致模型幻觉。
主要能力:按来源格式选择加载器(含表格的 PDF 用 PyMuPDFLoader 或 UnstructuredPDFLoader,纯文本 PDF 用 PyPDFLoader,网页用 WebBaseLoader 并设置真实 User-Agent,Markdown 用 UnstructuredMarkdownLoader,语料库用 DirectoryLoader);按内容类型选择切分器(Markdown 用 RecursiveCharacterTextSplitter.from_language(Language.MARKDOWN) 以保留代码围栏,Python 源码用 Language.PYTHON,FAQ 用 separators=["\n\n"],HTML 长文用 HTMLHeaderTextSplitter);调优 chunk_size 与 overlap(散文 1000/100、代码 1500/150、FAQ 500/50);用 fitz 的 page.find_tables() 把表格抽成带列元数据的结构化记录;保留 loader 到 splitter 的元数据;对噪声语料用 MinHash 去重(阈值 0.9)。
使用方式:需 Python 3.10+,langchain-core、langchain-community、langchain-text-splitters 均为 1.0.x;PDF 需 pip install pymupdf unstructured[pdf],网页需 pip install beautifulsoup4 requests,去重可选 pip install datasketch。按加载、清洗、切分、去重、索引的顺序组合流水线,嵌入与检索交给配套技能 langchain-embeddings-search。
限制:单次 PDF 摄入建议小于 5 MB,更大文件先用 pdftk 或 qpdf 预切分;网页抓取需遵守 robots.txt 并按主机限速 1 请求/秒;表格不应作为文本块调参,而应单独索引。具体效果与收费信息暂未提供。