资讯动态

langchain 数据保存到向量数据库的流程

发布时间:2026/8/14 8:36:41 来源:尧图企业网站定制
将数据保存到向量数据库是使用 LangChain 构建检索增强生成RAG应用的核心步骤。整个流程可以清晰地分为四个主要阶段数据加载、文本分割、向量化和存入数据库。下面将结合代码示例为你详细解析这一流程。 数据保存到向量数据库的四步流程加载数据 (Data Loading)首先你需要将原始数据加载到 LangChain 中。LangChain 提供了丰富的 DocumentLoader可以轻松处理各种格式的文件如 PDF、TXT、Word 等。1from langchain.document_loadersimportPyPDFLoader23# 以加载 PDF 文件为例4loaderPyPDFLoader(example_document.pdf)5documentsloader.load()6# documents 是一个包含 Document 对象的列表每个对象包含页面内容和元数据分割文本 (Text Splitting)大模型和向量模型都有上下文长度限制且直接处理超长文本效果不佳。因此需要将加载的长文档分割成更小、语义更完整的片段Chunks。fromlangchain.text_splitterimportRecursiveCharacterTextSplitter# 创建文本分割器text_splitterRecursiveCharacterTextSplitter(chunk_size1000,# 每个文本块的最大字符数chunk_overlap200,# 文本块之间的重叠字符数有助于保持上下文连贯性separators[\n\n,\n,。,,,, ,]# 指定分割符优先级)# 执行分割chunkstext_splitter.split_documents(documents)# chunks 是分割后的 Document 对象列表文本向量化 (Vectorization / Embedding)这一步是将文本片段转换为计算机可以理解和计算的数字向量。你需要选择一个嵌入模型Embedding Model如 OpenAI、Hugging Face 或阿里云的通义千问模型等。fromlangchain.embeddingsimportOpenAIEmbeddings# 初始化嵌入模型 (以 OpenAI 为例)embeddingsOpenAIEmbeddings(openai_api_keyyour-api-key)# 注意此步骤通常在下一步存入数据库时自动完成存入向量数据库 (Storing in Vector Database)最后将上一步生成的向量和对应的文本片段一起存入向量数据库。LangChain 集成了多种向量数据库如 Chroma、FAISS、Pinecone 等。示例一使用 Chroma (轻量级适合本地开发)fromlangchain.vectorstoresimportChroma# 将文本块和向量模型传入Chroma 会自动完成向量化并存储vectorstoreChroma.from_documents(documentschunks,embeddingembeddings,persist_directory./chroma_db# 指定本地持久化目录)示例二使用 FAISS (高性能适合本地大规模检索)fromlangchain.vectorstoresimportFAISS# 创建 FAISS 向量存储vectorstoreFAISS.from_documents(documentschunks,embeddingembeddings)# 将索引保存到本地以便后续加载vectorstore.save_local(faiss_index) 流程总结与关键点整个流程可以概括为加载 → 分割 → 向量化 → 存储。核心组件整个过程依赖于 LangChain 的 DocumentLoaders、TextSplitters、Embeddings 和 VectorStores 四大模块。自动化在调用 Chroma.from_documents 或 FAISS.from_documents 等方法时向量化第3步和存储第4步是自动完成的你只需提供文本和嵌入模型即可。数据库选型Chroma配置简单开箱即用非常适合原型开发和本地小型项目。FAISS由 Facebook 开发检索性能极高适合处理大规模数据集的本地部署。Pinecone全托管的云服务无需自己维护基础设施扩展性强适合生产环境。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价