LangChain:基于文档结构的的Markdown、JSON文本切割
有些文档具有固有的结构,例如HTML、Markdown或JSON文件。在这种情况下,基于文档结构进行拆分往往是有益的,因为这种结构通常能自然地组合语义相关的文本。
文档结构切割器:Document structure-based
有些文档具有固有的结构,例如HTML、Markdown或JSON文件。在这种情况下,基于文档结构进行拆分往往是有益的,因为这种结构通常能自然地组合语义相关的文本。
文档结构切割器:Document structure-based
文本自然地被组织为段落、句子和单词等层级单元。我们可以利用这种固有结构来指导分割策略,从而创建既能保持自然语言流畅性、又能维持分块内语义连贯性、还能适应不同文本粒度的分块。
LangChain 的递归字符文本分割器(RecursiveCharacterTextSplitter)实现了这一理念。
大语言模型存在Token数量限制,不应超出该限制。因此,在分割文本成块时,需要计算好Token的数量。市面上存在多种tokenizer,计算文本token数量时,应使用与语言模型相匹配的tokenizer。
在 LangChain 库中,文本切割器基类TextSplitter 提供了split_documents() 和 split_text() 两个切割方法常用的文本分割方法。
TextSplitter的子类都继承的这两个方法。下面分别介绍它们的作用和区别。
在Langchain的数据增强模块,数据以 Document 对象和向量形式在各个包装器之间流转。向量形式的数据由向量数据库管理,而被转换为向量之前,数据以 Document 对象的形式存在。
在LangChain框架中,嵌入模型包装器(Embedding Model Wrappers) 是用于将文本转换为向量表示的标准化接口,支持多种底层模型和服务。
LangChain框架中的Loader组件是数据增强处理流程中的核心模块,负责将不同格式的数据源转换为统一的Document对象。这些文档对象包含文本内容(page_content)和元数据(metadata),为后续的文本处理、嵌入、问答等操作奠定基础。
LangChain 框架的数据增强模块主要基于检索增强生成(RAG)技术,通过整合外部知识库提升大语言模型(LLM)在专业领域、实时性要求和私有数据场景下的表现。
LangChain的输出解析器(Output Parser)是Model I/O模块的核心组件之一,主要用于将语言模型(LLM)的非结构化文本输出转换为结构化数据。它们确保模型输出符合特定格式,便于后续处理,比如解析模型的输出数据。
示例选择器的作用是在传递给模型的示例中进行选择,以确保示例的数量和内容长度不会超过模型的处理能力。这样,即使有大量的示例,模型也能够有效地处理提示词,而不会因为示例过多或内容过长而无法处理。