LangChain:集成向量数据库
在RAG(检索增强生成)中,向量存储库(通常指向量数据库)是连接大模型与外部知识源的核心“记忆中枢”,扮演着核心知识库的角色。它的主要作用是让大模型能够突破自身知识的局限,通过高效的语义搜索,实时、准确地利用私有的或最新的数据来生成更准确、更符合实际的答案。
在RAG(检索增强生成)中,向量存储库(通常指向量数据库)是连接大模型与外部知识源的核心“记忆中枢”,扮演着核心知识库的角色。它的主要作用是让大模型能够突破自身知识的局限,通过高效的语义搜索,实时、准确地利用私有的或最新的数据来生成更准确、更符合实际的答案。
将 HTML 文档分割成易于管理的块对于各种文本处理任务至关重要,例如自然语言处理、搜索引等。 LangChain 提供的三种不同的文本分割器,可以使用它们来有效地分割 HTML 内容。
理解解OpenClaw、Agent、Skills、MCP、RAG的概念,各自扮演的角色,相互之间的关系。
代码文本分割器集成指南。根据编程代码语言自己的风格对 Code 进行分隔,可以切割的更完整,大模型可以更好的理解代码逻辑。
WordPiece 是一种广泛应用于自然语言处理(NLP)的子词分词算法,由 Google 于 2016 年在神经机器翻译(NMT)相关工作中提出;BERT(2018) 等模型随后采用了该算法,旨在解决长尾词汇(如罕见词、复合词)的语义表示问题,同时平衡词表大小与语义覆盖率。现已成为 BERT、MPNet 等主流 Transformer 模型的核心分词技术。
SentenceTransformersTokenTextSplitter 按 SentenceTransformers 模型分词器计出的 token 数切分文本,使 chunk 长度与目标嵌入模型对齐;它不是按句子语义边界做分割。通过 model_name 指定预训练模型名称,从而使用该模型对应的分词器。
Splitting by token > SentenceTransformers,SentenceTransformersTokenTextSplitter
大语言模型存在Token数量限制,不应超出该限制(如 GPT-4 Turbo 支持 128K Token),超出限制会导致截断或报错。
NLTKTextSplitter 是基于自然语言处理库 NLTK 实现的结构化文本分割工具,专为处理英文文本设计。其核心价值在于替代朴素的分隔符切割(如"\n\n"),通过语言学规则实现符合语义逻辑的文本分块(先识别出文本中的句子边界,然后再将这些句子组合成符合大小要求(如 Token 数量)的文本块)。
有些文档具有固有的结构,例如HTML、Markdown或JSON文件。在这种情况下,基于文档结构进行拆分往往是有益的,因为这种结构通常能自然地组合语义相关的文本。
文档结构切割器:Document structure-based
文本自然地被组织为段落、句子和单词等层级单元。我们可以利用这种固有结构来指导分割策略,从而创建既能保持自然语言流畅性、又能维持分块内语义连贯性、还能适应不同文本粒度的分块。
LangChain 的递归字符文本分割器(RecursiveCharacterTextSplitter)实现了这一理念。