【LangChain】—— RAG核心向量存储Vector Stores
LangChain Vector Stores 详解从原理到实操搞定RAG核心向量存储在LangChain生态中Vector Stores向量存储绝对是「撑起RAG架构半边天」的核心组件——无论是本地调试一个简单的知识库问答还是部署企业级的海量文档检索系统都离不开它的支撑。很多开发者初学LangChain时会混淆Vector Stores和Retriever也不清楚不同向量存储方案该怎么选、怎么用今天就从原理到实操一步步把这个核心组件讲透帮你避开踩坑快速上手。先抛一个最通俗的定义Vector Stores就是LangChain中「专门存放文本向量的仓库」它的核心作用的是「把非结构化文本转成机器能理解的向量再快速找到和查询最相似的向量对应的文本」。说直白点大模型记不住海量外部知识Vector Stores就相当于给大模型配了一个「可快速检索的外挂知识库」让大模型能随时调取相关信息生成精准且有依据的答案——这也是RAG检索增强生成的核心逻辑。一、为什么RAG离不开Vector Stores这3个痛点它必解在没接触Vector Stores之前很多人会有疑问我直接把文档喂给大模型不行吗为什么非要多此一举用向量存储答案很简单大模型的「先天缺陷」只有Vector Stores能解决。大模型有两个核心痛点直接导致它无法单独处理海量外部文档上下文窗口有限哪怕是GPT-4 Turbo上下文窗口也有上限虽然已经很大但面对几百MB、GB级的文档依然不够用无法一次性“吃透”长文本或海量文档无法实时更新知识大模型的训练数据有截止日期无法获取训练后出现的新信息比如最新的技术文档、行业报告而Vector Stores可以随时添加新文档实现知识库的实时更新语义理解无法落地大模型能理解自然语言但无法直接对比“两段文本的语义相似度”——而Vector Stores通过将文本转成向量把「语义相似」转化为「向量空间中的距离相似」让机器能快速计算和匹配。而Vector Stores的核心价值就是精准解决这3个痛点它承接嵌入模型Embeddings的输出将文本转成固定维度的向量并持久化存储同时提供高效的相似性检索能力让大模型能“按需调取”相关知识而不是“死记硬背”。二、LangChain Vector Stores 的核心特性统一抽象灵活适配LangChain并没有自己研发一款全新的向量数据库而是做了一件「更实用的事」——对市面上主流的向量存储方案做了「统一的抽象封装」定义了一个VectorStore基类所有适配的向量存储方案都遵循相同的接口。这种设计带来的最大好处就是「开发者无需关注底层实现只需调用统一接口就能切换不同的向量存储方案」比如本地开发用Chroma生产环境切换到Pinecone代码几乎不用大改。除此之外它还有几个核心特性非常贴合开发者的实际需求无缝对接嵌入模型支持LangChain中所有的Embeddings模型不管是OpenAI的Embeddings、HuggingFace的开源模型如BGE、Text2Vec还是国内的文心一言、讯飞星火Embeddings只需传入模型实例就能自动完成文本向量化不用手动处理向量生成逻辑多种相似性度量可选默认使用最贴合语义相似性的「余弦相似度」同时也支持欧氏距离、点积、曼哈顿距离等可根据自己的场景比如高维向量、低维向量灵活配置元数据过滤能力大部分向量存储方案都支持为向量绑定元数据——比如文档来源、页码、分类、关键词等检索时可以通过元数据做精准过滤比如“只检索PDF格式的技术文档”“只检索2024年之后的报告”大幅提升检索精度批量与增量操作支持可以批量添加、删除文档向量也支持增量更新知识库——比如新增10篇文档不用重新生成所有向量只需把新文档转成向量添加到Vector Stores中即可节省时间和资源深度整合LangChain生态可以直接通过「vector_store.as_retriever()」封装成Retriever检索器无缝对接LangChain的Chains如RetrievalQA、Agents等组件不用额外写适配代码快速搭建RAG流程。三、核心工作流程两步搞定「向量入库检索」Vector Stores的工作逻辑其实很简单从头到尾就围绕两个核心环节「文本向量化入库」和「查询向量化检索」。结合LangChain的完整RAG流程我们可以把它拆成5个具体步骤新手也能轻松理解文本加载与分块先用LangChain的Document Loaders文档加载器加载外部文档——比如PDF、TXT、网页、Word等再用Text Splitters文本分块器把长文本切成大小合适的文本块一般200-512个token保留少量重叠避免上下文断裂最终得到包含「文本内容元数据」的Document对象生成嵌入向量调用Embeddings模型将每个文本块转成固定维度的稠密向量比如OpenAI Embeddings是1536维BGE-base是768维——这里要注意同一知识库必须用同一个Embeddings模型否则查询和入库的向量维度不一致无法进行相似性检索向量入库将生成的向量和对应的Document元数据一起存入Vector Stores中部分向量存储方案如Chroma、Milvus会自动构建向量索引提升后续的检索速度相似性检索用户发起自然语言查询比如“LangChain的Vector Stores怎么实现增量更新”先将查询语句通过「同一个Embeddings模型」转成向量再调用Vector Stores的相似性搜索接口在向量空间中找到距离最近的Top-K个向量比如Top-3即最相关的3个文本块返回上下文Vector Stores根据匹配到的向量返回对应的文本块和元数据这些文本块会作为「上下文知识」传给大模型大模型结合查询和上下文生成精准、有依据的答案——这就是RAG的完整逻辑。这里有一个新手常踩的坑检索时用了和入库时不同的Embeddings模型导致检索结果为空或完全不相关。记住「入库和检索必须用同一个Embeddings模型」这是Vector Stores能用起来的核心前提。四、常用Vector Stores 选型本地/生产环境怎么选LangChain适配了数十种向量存储方案不同方案的适用场景、性能、运维成本差异很大。很多开发者纠结“该选哪一个”其实核心看两个维度「使用场景本地开发/生产环境」和「数据量」。下面整理了最常用的6种方案分两类讲清楚帮你快速选型一本地轻量型适合本地开发、测试小量数据这类方案无需部署服务开箱即用适合新手调试RAG流程、小体量知识库10万条以内文本块核心推荐3个Chroma首选LangChain官方推荐的默认本地Vector Store纯Python实现无需安装复杂依赖支持持久化存储重启后数据不丢失内置简单的Embeddings模型还支持元数据过滤新手友好度拉满。缺点是不支持分布式数据量过大超过10万条时性能会下降适合快速原型开发FAISSFacebook开源的高效向量检索库专注于相似性搜索和聚类检索速度极快支持多种索引类型如IVF_FLAT、HNSW适配高维向量还支持GPU加速适合需要快速检索的场景。缺点是默认非持久化重启后数据丢失需手动保存/加载索引文件元数据支持较弱需要手动处理SimpleVectorStoreLangChain内置的极简向量存储纯内存实现无需任何配置一键使用。缺点是不支持持久化仅适合极小规模测试千条以内文本块实际开发中很少用。二云端/企业级适合生产环境海量数据这类方案需要部署服务或使用托管云服务支持分布式、高可用、水平扩展适合企业级RAG应用、海量知识库百万条以上文本块核心推荐4个Pinecone托管式云向量数据库专为LLM应用优化生产环境最常用的选择之一。全托管模式无需运维支持自动扩缩容、高可用还支持元数据过滤和稀疏向量检索速度快。缺点是付费服务国内访问需考虑网络问题可使用代理Weaviate开源的语义向量搜索引擎结合了向量检索和属性检索支持分布式部署内置REST/gRPC接口支持元数据过滤、全文检索可与LLM无缝集成支持持久化。缺点是需要手动部署配置稍复杂适合有一定运维能力的团队Milvus开源的分布式向量数据库专为大规模高维向量检索设计支持PB级数据量毫秒级检索支持多种索引类型分布式架构高可用适合超大规模知识库如企业级文档库。缺点是部署和运维成本较高适合中大型企业PostgreSQL pgvector基于PostgreSQL的向量扩展插件pgvector将关系型数据库与向量检索结合适合已有PostgreSQL数据库的场景可同时做关系型查询和向量检索元数据过滤能力极强支持持久化。缺点是需要安装pgvector插件大规模向量检索时性能不如专用向量库。选型总结新手本地开发用Chroma需要快速检索用FAISS生产环境小体量用Pinecone省心大体量用Milvus/Weaviate已有PostgreSQL用pgvector。五、实操示例用Chroma快速搭建本地向量存储新手友好下面用最常用的Chroma为例写一个极简实操示例实现「文档入库相似性检索」全程复制代码就能运行需要提前安装依赖。第一步安装依赖# 安装核心依赖pip install langchain langchain-chroma langchain-openai python-dotenv第二步编写代码完整可运行# 1. 导入核心组件fromlangchain_chromaimportChromafromlangchain_openaiimportOpenAIEmbeddingsfromlangchain_core.documentsimportDocumentimportosfromdotenvimportload_dotenv# 2. 加载环境变量配置OpenAI API Key需提前在.env文件中配置load_dotenv()os.environ[OPENAI_API_KEY]os.getenv(OPENAI_API_KEY)# 3. 准备测试文档文本块元数据模拟实际知识库documents[Document(page_contentLangChain是一个用于构建大语言模型应用的开源框架核心支持RAG、智能体Agents等场景生态完善可灵活适配各类向量存储和大模型。,metadata{source:LangChain官网,type:框架介绍,date:2024-01}),Document(page_contentVector Stores是LangChain中存储嵌入向量的核心组件是实现RAG的关键负责文本向量的持久化存储和相似性检索适配多种向量数据库。,metadata{source:LangChain官方文档,type:核心组件,date:2024-02}),Document(page_contentChroma是LangChain推荐的本地轻量级Vector Store纯Python实现无需复杂部署支持持久化存储和元数据过滤适合新手开发测试。,metadata{source:LangChain官方文档,type:向量存储,date:2024-02}),Document(page_contentVector Stores的增量更新可通过add_documents()接口实现无需重新生成所有向量只需将新文档转成向量添加到存储中即可节省资源。,metadata{source:LangChain官方文档,type:实操技巧,date:2024-03})]# 4. 初始化嵌入模型使用OpenAI的EmbeddingsembeddingsOpenAIEmbeddings(modeltext-embedding-3-small)# 5. 初始化Chroma Vector Store并添加文档自动向量化入库# persist_directory指定本地持久化目录重启后数据不丢失vector_storeChroma.from_documents(documentsdocuments,embeddingembeddings,persist_directory./chroma_db# 本地目录自动创建)# 6. 相似性检索模拟用户查询queryLangChain中本地开发适合用哪种Vector Store怎么实现增量更新# 相似性搜索返回Top-2最相关的文档k2可调整resultsvector_store.similarity_search(queryquery,k2)# 7. 打印检索结果查看最相关的文本块和元数据print(检索到的相关文档\n)fori,docinenumerate(results,1):print(f第{i}篇文档)print(f文本内容{doc.page_content})print(f元数据{doc.metadata}\n)第三步运行结果说明运行代码后会自动创建chroma_db目录用于持久化存储向量数据。检索结果会优先返回与查询最相关的2篇文档——比如关于Chroma的介绍和增量更新的技巧这就是后续传给大模型的「上下文知识」也是RAG的核心逻辑。如果没有OpenAI API Key也可以替换成开源的BGE Embeddings无需API Key后续会单独讲这个开源方案。六、新手必看Vector Stores 避坑技巧很多开发者虽然学会了使用Vector Stores但实际开发中会遇到「检索精度低、性能差、数据丢失」等问题分享6个新手必避的坑和实用技巧帮你少走弯路文本分块要合理文本块的大小直接影响向量表示效果建议根据Embeddings模型调整——比如OpenAI Embeddings用512tokenBGE用256-512token同时设置50-100token的重叠度避免上下文断裂Embeddings模型要统一再次强调同一知识库的「入库和检索」必须用同一个Embeddings模型否则向量维度不一致无法检索到相关结果优先封装成Retriever使用LangChain中不建议直接使用Vector Stores而是通过「vector_store.as_retriever()」封装成Retriever——Retriever提供了更灵活的接口比如调整top-k、添加元数据过滤、自定义检索策略还能无缝对接RetrievalQA等Chain元数据设计要实用不要为了加元数据而加元数据建议添加「来源、分类、时间、关键词」等有价值的元数据后续可以通过元数据过滤实现精准检索比如只检索某一类文档本地存储务必持久化使用Chroma/FAISS时一定要指定持久化目录Chroma或手动保存索引FAISS避免重启后数据丢失生产环境要优化索引使用企业级向量库如Milvus/Weaviate时要根据数据量选择合适的索引类型——小量数据用FLAT精度高大量数据用HNSW/IVF_FLAT速度快同时调优索引参数提升检索速度和精度。七、Vector Stores 与 Retriever别再混淆了最后解决一个新手最常有的困惑Vector Stores和Retriever到底是什么关系用一句话总结清楚Vector Stores「数据层」负责「存储向量」和「基础的相似性搜索」是检索的“数据源”相当于一个“向量仓库”Retriever「检索层」LangChain对检索逻辑的「抽象封装」它可以基于Vector Stores实现也可以基于其他数据源如全文检索引擎核心作用是「提供统一的检索接口」并支持自定义检索策略。简单来说Retriever是Vector Stores的「上层封装」LangChain中所有RAG流程都是通过Retriever调用Vector Stores的检索能力而非直接调用Vector Stores。总结LangChain中的Vector Stores本质是「对各类向量存储方案的统一抽象」它解决了大模型上下文有限、无法处理海量外部知识的痛点是RAG架构的核心数据载体。对于开发者来说不用纠结底层向量库的实现细节重点掌握「选型逻辑」「核心流程」和「避坑技巧」本地开发用Chroma生产环境按需选择Pinecone/Milvus/Weaviate用好文本分块、元数据过滤和Retriever就能快速搭建高效、精准的RAG系统。后续会继续分享开源EmbeddingsVector Stores的实操方案无需任何API Key以及Vector Stores的高级用法如混合检索、索引优化感兴趣的可以持续关注

相关新闻

白帽黑客自学指南:2026 版网络安全学习路线(零基础到职业进阶)

白帽黑客自学指南:2026 版网络安全学习路线(零基础到职业进阶)

随着网络空间的扩展,白帽黑客——即合法从事安全测试与漏洞挖掘的网络安全工程师,已成为数字时代不可或缺的职业角色。本文将为你提供一条系统化、可操作性强的学习路径,帮助你从零基础逐步成长为具备实战能力的安全工程师。 一、基础入门&am…

2026/7/2 19:41:28 阅读更多 →
【浏览器】Chromium内核深度解析:Browser Context的架构、存储与生命周期

【浏览器】Chromium内核深度解析:Browser Context的架构、存储与生命周期

一、引言 在Chromium内核的多进程架构中,Browser Context(浏览器上下文)是实现用户会话隔离、状态管理的核心组件。它像一个独立的“用户环境容器”,封装了特定会话的所有资源与配置,既要支撑多账号并行、无痕浏览等核…

2026/7/6 1:44:53 阅读更多 →
算清每一分钱:2026年AI开发平台选型与落地的精细化ROI测算模型

算清每一分钱:2026年AI开发平台选型与落地的精细化ROI测算模型

企业决策最终要回归财务逻辑。在AI热潮中保持清醒,必须回答:这个AI开发平台的投入,究竟能带来多少回报?本文将提供一个超越概念、可操作的精细化ROI测算框架,帮助您在思考2026年AI开发平台怎么选和规划AI应用如何落地时…

2026/7/5 21:30:53 阅读更多 →

最新新闻

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法 【免费下载链接】freeCodeCamp freeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free. 项目地址: https://gitcode.com/GitHub_Trending/fr/free…

2026/7/7 0:47:42 阅读更多 →
结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的"拆解术" 开篇:从拆快递中学到的智慧 你有没有这样的经历? 收到一个巨大的快递,打开一看,里面有无数个小包裹,每个小包裹里还有更小的包裹,层层嵌套。 这种"从大到小、层层分解"的方式,就是结构化方法的核心思想。 什么…

2026/7/7 0:43:41 阅读更多 →
并发编程核心概念辨析

并发编程核心概念辨析

一、背景:CPU 多级缓存架构为了读者在阅读后序章节时,有更清晰、更形象的认知,这里放上现代 CPU 缓存的典型结构。一图胜千言,不多赘述,仅陈述以下要点:一颗 CPU,往往有多个核心(cor…

2026/7/7 0:43:41 阅读更多 →
如何识别PARP14

如何识别PARP14

一、PARP14的基础概述聚腺苷二磷酸核糖聚合酶14(PARP14,Poly(ADP-ribose) polymerase 14),也被称为PARP-4,是PARP家族中的一个重要成员。PARP家族包括多个聚腺苷二磷酸核糖聚合酶,它们在细胞的多个关键过程…

2026/7/7 0:39:40 阅读更多 →
Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/7 0:37:39 阅读更多 →
综合项目三:Web全栈应用从零部署

综合项目三:Web全栈应用从零部署

在当今的互联网时代,掌握全栈开发与部署能力是每一位后端开发者、DevOps 工程师乃至独立开发者的核心竞争力。然而,很多初学者在完成代码编写后,却在部署环节频频碰壁——服务器环境配置、域名解析、HTTPS 证书、负载均衡、日志监控……这些“最后一公里”的问题往往比写代码…

2026/7/7 0:35:38 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻