LangChain:网络检索器与集成
网络检索器适用于需要从网络上获取最新数据的场景。比如用户可能相要获取最新的热点信息,此时检索器可以直接从网络上进行检索,以便获得最新的信息。
网络检索器适用于需要从网络上获取最新数据的场景。比如用户可能相要获取最新的热点信息,此时检索器可以直接从网络上进行检索,以便获得最新的信息。
在 LangChain 中,检索器是一个遵循统一接口的组件:输入一个查询(字符串),输出一个文档(Document)列表。
这个简单的接口极大地简化了信息检索的复杂性。你可以将任何能够返回相关文档的系统(如搜索引擎、数据库、向量存储)包装成一个检索器,然后在你的 LangChain 应用中以统一的方式调用它。
LangChain 的检索器是 RAG(检索增强生成)系统的核心组件,它提供了一套统一的接口来连接各种不同的数据源。无论是向量数据库、搜索引擎,还是传统的数据库,都可以通过这个接口被 LLM 应用轻松调用。
在 LangChain 中,向量存储库(VectorStore)提供了统一的接口,其中包含多种搜索方法。这些方法用于根据语义或向量来检索最相似的文档。下面将逐一介绍常用的搜索方法及其特点。
在RAG(检索增强生成)中,向量存储库(通常指向量数据库)是连接大模型与外部知识源的核心“记忆中枢”,扮演着核心知识库的角色。它的主要作用是让大模型能够突破自身知识的局限,通过高效的语义搜索,实时、准确地利用私有的或最新的数据来生成更准确、更符合实际的答案。
将 HTML 文档分割成易于管理的块对于各种文本处理任务至关重要,例如自然语言处理、搜索索引等。 LangChain 提供的三种不同的文本分割器,可以使用它们来有效地分割 HTML 内容。
代码文本分割器集成指南。根据编程代码语言自己的风格对 Code 进行分隔,可以切割的更完整,大模型可以更好的理解代码逻辑。
基于句子语义切割的文本切割尽可能的保留了句子的完整语义。SentenceTransformersTokenTextSplitter分割器通过 model_name参数指定预训练模型的名称,这个模型通常对应一个特定的分词器。
Splitting by token > SentenceTransformers,SentenceTransformersTokenTextSplitter
大语言模型存在Token数量限制,不应超出该限制(如 GPT-4 Turbo 支持 128K Token),超出限制会导致截断或报错。
NLTKTextSplitter 是基于自然语言处理库 NLTK 实现的结构化文本分割工具,专为处理英文文本设计。其核心价值在于替代朴素的分隔符切割(如"\n\n"),通过语言学规则实现符合语义逻辑的文本分块(先识别出文本中的句子边界,然后再将这些句子组合成符合大小要求(如 Token 数量)的文本块)。