发布时间:2026/8/25 16:14:50
【10】Langchain读取数据库 Langchain读取数据库LangChain 提供了多种内置工具和模块化组件能够轻松连接大语言模型LLM与各类结构化数据源。针对数据库交互LangChain 主要提供以下核心能力1. 传统关系型数据库SQL交互LangChain 提供了SQLDatabaseChain等实用工具能够将用户的自然语言问题自动翻译成 SQL 命令并执行。通用 SQL 数据库支持 PostgreSQL、MySQL 等主流数据库。例如你可以配置该链连接数据库让用户用自然语言提问如“上个月销售额是多少”系统会自动生成 SQL、执行查询并将结果以可读格式返回。Databricks SQL 代理针对 Databricks 平台LangChain 提供了SQLDatabase包装器和Databricks SQL 代理允许用户直接与 Unity Catalog 中的指定架构交互生成数据洞察注该代理仅支持查询表不支持创建表。2. 向量数据库Vector Store交互对于需要语义搜索或构建 RAG检索增强生成系统的场景LangChain 支持多种文档导向的向量数据库如 Chroma用于存储和检索文档嵌入。Azure Database for PostgreSQL支持通过pgvector扩展在单个数据库中同时管理关系数据和数百万个向量嵌入。LangChain 提供了专门的AzurePGVectorStore支持使用余弦距离、L2 距离等算法执行相似性搜索。Databricks Vector Search作为无服务器向量数据库可通过DatabricksVectorSearch组件集成支持从 Delta 表自动创建向量索引并进行相似性查询。3. 图数据库Graph Database交互针对知识图谱等复杂关系数据LangChain 同样提供了专门的集成方案。Kùzu 图数据库这是一个可嵌入的图数据库LangChain 提供了KuzuGraph和KuzuQAChain。通过LLMGraphTransformer你可以利用 LLM 从非结构化文本中提取节点和关系并写入图数据库随后通过 Text2Cypher 管道使用自然语言查询图数据。4. 文档型/NoSQL 数据库交互LangChain 也支持通过文档加载器Document Loaders读取非结构化或半结构化数据。Notion 数据库通过NotionDBLoader可以连接 Notion 数据库检索页面内容及其元数据并将其转换为 LangChain 的 Document 对象列表方便后续处理。MongoDBLangChain 提供了与 MongoDB Atlas 的集成方案支持在 MongoDB 中实现 LLM 缓存、图存储等功能。5. 大数据框架交互Spark DataFrame 代理LangChain 中的 Spark DataFrame 代理允许 LLM 直接与 PySpark 数据帧进行交互针对大数据场景下的问题解答进行了专门优化。此外开发者还可以基于 SQLAlchemy 等 ORM 库编写自定义的数据库包装器以扩展 LangChain 的数据库支持范围。你主要想用哪种数据库我可以给出对应的接入示例PostgreSQL/MySQL关系型适合结构化业务数据Chroma/PGVector向量数据库适合RAG知识库MongoDB文档型适合灵活Schema一、PostgreSQL/MySQL关系型适合结构化业务数据接入 PostgreSQL 或 MySQL 等关系型数据库是让大模型LLM直接理解和分析结构化业务数据如订单、用户表、财务报表的关键步骤。在 LangChain 中最核心且常用的方式是使用SQLDatabaseChain或SQL Agent它们能够充当“翻译官”将用户的自然语言自动转换为 SQL 查询语句执行后并把结果总结为人类可读的文本。以下是接入并实现自然语言查询的完整实战指南第一步安装核心依赖除了 LangChain 核心库和 LLM 驱动外还需要安装对应数据库的 Python 连接器pipinstalllangchain langchain-openai mysql-connector-python psycopg2-binary第二步连接数据库并构建查询链版本一使用Chain实现基础查询这里以 MySQL 为例PostgreSQL 的连接字符串格式略有不同但用法一致。importosfromlangchain_openaiimportChatOpenAIfromlangchain.sql_databaseimportSQLDatabasefromlangchain.chainsimportcreate_sql_query_chain# 1. 建立数据库连接# MySQL 格式: mysqlmysqlconnector://user:passwordhost:port/database# PostgreSQL 格式: postgresql://user:passwordhost:port/databasedbSQLDatabase.from_uri(mysqlmysqlconnector://root:yourpasswordlocalhost:3306/mydatabase)# 2. 初始化 LLMllmChatOpenAI(modelgpt-4o-mini,temperature0)# 3. 创建 SQL 查询链推荐使用新版 APIchaincreate_sql_query_chain(llm,db)# 4. 运行自然语言查询responsechain.invoke({question:上个月销售额最高的产品是什么})print(response)版本二使用 SQL Agent 替代 Chain在实际生产环境中强烈建议使用SQL Agent而不是基础的 SQL Chain。Agent 具备自我纠错能力如果生成的 SQL 语法报错它会自动查看错误信息并重新生成正确的查询。要将基础的 SQL 查询链升级为使用“执行 SQL 语句工具”的 Agent 架构核心是引入SQLDatabaseToolkit。这个工具包不仅包含了执行 SQL 的工具还内置了查询检查器、错误修复等辅助工具让 Agent 具备自我纠错能力。以下是改进后的代码importosfromlangchain_openaiimportChatOpenAIfromlangchain.sql_databaseimportSQLDatabasefromlangchain_community.agent_toolkitsimportSQLDatabaseToolkitfromlangchain.agentsimportcreate_sql_agent# 1. 建立数据库连接dbSQLDatabase.from_uri(mysqlmysqlconnector://root:yourpasswordlocalhost:3306/mydatabase)# 2. 初始化 LLMllmChatOpenAI(modelgpt-4o-mini,temperature0)# 3. 创建 SQL 数据库工具包# 该工具包包含: sql_db_query(执行SQL), sql_db_schema(获取表结构), sql_db_list_tables 等工具toolkitSQLDatabaseToolkit(dbdb,llmllm)# 4. 创建 SQL Agentagentcreate_sql_agent(llmllm,toolkittoolkit,verboseTrue,# 开启详细日志方便观察 Agent 的思考和工具调用过程agent_executor_kwargs{handle_parsing_errors:True}# 自动处理解析错误)# 5. 运行自然语言查询resultagent.invoke({input:上个月销售额最高的产品是什么})print(result[output])核心改进点工具化执行Agent 会先调用sql_db_schema获取表结构再生成 SQL最后通过sql_db_query工具执行。如果执行报错Agent 会自动读取错误信息并重新生成 SQL。安全隔离工具执行机制天然支持权限控制你可以在数据库层面为连接账号设置只读权限防止 LLM 执行破坏性操作。可扩展性你可以向toolkit中注入自定义工具比如在执行 SQL 前先进行业务规则校验。这套代码已经可以直接替换你原来的链式调用在生产环境中表现会稳定得多。版本三加上提示词限制给 SQL Agent 加上提示词关键是告诉它业务背景、表结构含义和输出规范这样它生成的 SQL 和最终回答才会更准、更符合业务需求。以下是加入自定义系统提示词的完整代码importosfromlangchain_openaiimportChatOpenAIfromlangchain.sql_databaseimportSQLDatabasefromlangchain_community.agent_toolkitsimportSQLDatabaseToolkitfromlangchain.agentsimportcreate_sql_agent# 1. 建立数据库连接dbSQLDatabase.from_uri(mysqlmysqlconnector://root:yourpasswordlocalhost:3306/mydatabase)# 2. 初始化 LLMllmChatOpenAI(modelgpt-4o-mini,temperature0)# 3. 创建 SQL 数据库工具包toolkitSQLDatabaseToolkit(dbdb,llmllm)# 4. 自定义系统提示词核心改进SYSTEM_PROMPT你是一个专业的电商数据分析师。请根据用户的自然语言问题生成并执行 MySQL 查询语句。 【业务背景】 - 数据库包含users用户表、orders订单表、products商品表 - orders 表中的 status 字段pending待支付, paid已支付, shipped已发货, completed已完成 - 所有金额字段单位为人民币元 【执行规范】 1. 优先使用 sql_db_schema 工具确认表结构不要凭空猜测字段名 2. 生成的 SQL 必须使用标准 MySQL 语法 3. 涉及时间查询时默认使用当前系统时间作为基准 4. 如果查询无结果请明确告知用户不要编造数据 【回答规范】 - 直接给出清晰、简洁的业务结论不要输出 SQL 语句本身 - 如果涉及金额保留两位小数并加上“元”单位 - 如果涉及多条记录最多展示前 5 条并告知总数量 # 5. 创建 SQL Agent 并注入提示词agentcreate_sql_agent(llmllm,toolkittoolkit,verboseTrue,agent_executor_kwargs{handle_parsing_errors:True},system_messageSYSTEM_PROMPT# 注入自定义提示词)# 6. 运行自然语言查询resultagent.invoke({input:上个月销售额最高的产品是什么})print(result[output])提示词设计要点业务背景前置明确告诉 Agent 表名、关键字段的枚举值如订单状态避免它生成WHERE status 已发货这种中文匹配的错误 SQL。执行规范约束强制它先查表结构再生成 SQL从根源上减少字段名幻觉。回答规范兜底防止 Agent 把 SQL 代码直接吐给用户同时规范了金额、列表的展示格式让最终输出可以直接面向终端用户。你可以根据实际业务把【业务背景】里的表结构和字段含义替换成你真实的数据库字典Agent 的准确率会大幅提升。⚠️ 生产环境避坑指南防止大模型“自作聪明”大模型有时为了“友好”会将具体的数据库记录如具体的患者ID或订单号自动总结为数量如“共找到10条记录”。如果遇到这种情况需要在 Prompt 中明确强调“请直接返回查询到的原始字段值不要进行总结或解释。”安全与权限控制务必为 LLM 连接数据库使用只读账号或者通过自定义DatabaseQueryTool限制 LLM 只能查询特定的表防止大模型执行危险的DROP或UPDATE操作。开启 Verbose 模式在调试阶段将verboseTrue打开这样你可以在控制台清晰地看到大模型生成的真实 SQL 语句便于排查逻辑错误。现在你的 AI 已经能够直接“看懂”你的业务数据库了接下来你想怎么升级结合 LangGraph将数据库查询作为一个工具节点整合到之前的多智能体客服系统中比如用户问“我的订单到哪了”Agent 自动查库并回复。结合 RAG 知识库实现“结构化数据SQL”与“非结构化文档PDF/TXT”的混合检索让 AI 既能查表又能查文档。二、Chroma/PGVector向量数据库适合RAG知识库构建 RAG检索增强生成系统是让大模型“有据可查”、解决知识盲区与幻觉问题的核心方案。在 LangChain 中Chroma 和 PGVector 是两种最常用的向量数据库选择Chroma 以轻量、易用著称非常适合快速原型开发和本地测试而 PGVector 依托于 PostgreSQL更适合需要与业务关系型数据共存、追求高并发与生产级稳定性的企业场景。下面为你分别梳理这两种向量数据库的接入与实战指南。方案一Chroma 向量数据库轻量级、快速上手Chroma 是一个以 AI 为原生的开源向量数据库无需额外配置数据库服务只需指定本地目录即可实现数据的持久化存储。1. 安装依赖pipinstall-qUlangchain-chroma0.1.2langchain-openai2. 核心实战代码fromlangchain_chromaimportChromafromlangchain_openaiimportOpenAIEmbeddingsfromlangchain_core.documentsimportDocument# 初始化嵌入模型embeddingsOpenAIEmbeddings()# 初始化向量存储并指定本地持久化目录vectorstoreChroma(collection_namemy_docs,embedding_functionembeddings,persist_directory./chroma_langchain_db# 数据将保存在本地此目录下)# 添加文档documents[Document(page_contentLangGraph 支持状态机和人工介入。,metadata{source:docs}),Document(page_contentChroma 是一个轻量级的向量数据库。,metadata{source:docs})]vectorstore.add_documents(documents)# 执行相似性搜索resultsvectorstore.similarity_search(LangGraph 有什么功能,k1)print(results.page_content)方案二PGVector 向量数据库生产级、企业首选如果你的系统已有 PostgreSQL 数据库使用 PGVector 是极佳的选择。它允许你在同一个数据库中同时管理结构化业务数据和向量数据。1. 安装依赖pipinstall-qUlangchain-postgres langchain-openai2. 核心实战代码fromlangchain_postgresimportPGVector,PGEnginefromlangchain_openaiimportOpenAIEmbeddingsfromlangchain_core.documentsimportDocument# 1. 配置 PostgreSQL 连接字符串需使用 psycopg3 驱动CONNECTION_STRINGpostgresqlpsycopg://user:passwordlocalhost:5432/mydatabaseVECTOR_SIZE1536# 根据你的嵌入模型维度设置如 OpenAI 为 1536# 2. 初始化引擎与向量存储enginePGEngine.from_connection_string(urlCONNECTION_STRING)embeddingOpenAIEmbeddings()# 初始化表结构如果表不存在会自动创建engine.init_vectorstore_table(table_nameenterprise_docs,vector_sizeVECTOR_SIZE)storePGVector.create_sync(engineengine,table_nameenterprise_docs,embedding_serviceembedding,)# 3. 插入文档并搜索docs[Document(page_contentPostgreSQL 支持混合搜索和元数据过滤。)]store.add_documents(docs)search_resultsstore.similarity_search(数据库有什么高级功能,k1)print(search_results.page_content) 生产环境避坑指南向量维度一致性在使用 PGVector 时务必确保建表时的vector_size与你的嵌入模型维度严格一致。如果在运行中途更换了嵌入模型通常需要清空旧表重新生成否则会导致维度不匹配的报错。数据持久化使用 Chroma 时务必在初始化时传入persist_directory并在添加数据后调用vectorstore.persist()或在初始化时配置自动同步否则重启服务后数据会丢失。混合检索优化如果追求更高的检索准确率PGVector 支持混合搜索Hybrid Search可以结合关键词检索与向量检索通过倒数排名融合RRF等算法返回更相关的结果。至此你的 AI 已经具备了强大的外部知识检索能力接下来你想怎么升级这套 RAG 系统结合 LangGraph 构建 RAG Agent让 AI 自主判断是否需要检索知识库甚至支持多步检索与自我反思。优化检索效果引入重排序Rerank、元数据过滤Metadata Filtering或混合检索大幅提升回答准确率。三、MongoDB文档型适合灵活SchemaMongoDB 作为典型的文档型 NoSQL 数据库凭借其灵活的 Schema 设计非常适合处理复杂、半结构化以及快速演变的非结构化数据如用户画像、物联网信号、多变的业务日志等。在 LangChain 生态中MongoDB 主要作为向量数据库Vector Store被深度集成用于构建 RAG检索增强生成应用。以下是 MongoDB 在 LangChain 中的接入与实战指南1. 安装核心依赖LangChain 提供了专门的 MongoDB 集成包。运行以下命令进行安装pipinstalllangchain-mongodb2. 核心实战代码向量存储与检索通过MongoDBAtlasVectorSearch组件你可以快速将 MongoDB 实例化为向量数据库并支持手动或自动嵌入。fromlangchain_mongodb.vectorstoresimportMongoDBAtlasVectorSearchfromlangchain_voyageaiimportVoyageAIEmbeddings# 也可替换为 OpenAIEmbeddings 等fromlangchain_core.documentsimportDocument# 1. 初始化嵌入模型embeddingVoyageAIEmbeddings()# 2. 使用连接字符串实例化向量存储# 格式示例: mongodbsrv://username:passwordcluster.mongodb.netvector_storeMongoDBAtlasVectorSearch.from_connection_string(connection_string你的MongoDB连接字符串,namespacemy_db.my_collection,# 指定数据库名.集合名embeddingembedding,index_namevector_index# MongoDB 向量搜索索引名称)# 3. 写入文档系统会自动生成嵌入向量docs[Document(page_contentMongoDB 支持灵活的文档模型适合处理复杂嵌套数据。,metadata{category:tech}),Document(page_contentLangChain 提供了丰富的工具链来连接各类数据库。,metadata{category:ai})]vector_store.add_documents(docs)# 4. 执行语义相似性搜索resultsvector_store.similarity_search(如何连接非关系型数据库,k1)print(results.page_content)3. 进阶能力Self-Querying自查询检索MongoDB 的文档模型天然适合存储丰富的元数据Metadata。LangChain 结合 MongoDB 支持自查询检索允许大模型在处理自然语言时自动提取过滤条件如年份、分类、评分等并在执行向量搜索前进行精准的元数据预过滤。这在处理海量异构数据时极为高效。 生产环境避坑与架构建议索引前置要求在使用MongoDBAtlasVectorSearch之前必须确保在 MongoDB 中提前创建好对应的 Vector Search Index否则检索会报错。Schema 灵活性的双刃剑与 SQL 数据库不同MongoDB 没有严格的表结构约束。如果让 LLM 直接生成查询语句极易出现“幻觉”例如查询不存在的字段。在生产中建议为 LLM 提供明确的 Schema 描述Metadata Layer作为上下文并在执行前增加字段存在性校验。混合数据架构MongoDB 现已支持多种数据类型结构化、时序、向量、图。在实际业务中你可以将业务文档与向量嵌入存储在同一个集合中利用其灵活的嵌套结构实现“业务数据 语义检索”的一体化。至此你已经掌握了 LangChain 中主流数据库SQL、Vector、NoSQL的接入方案接下来你想怎么升级这套系统构建混合检索 Agent结合 SQL查订单 MongoDB查文档 Tavily搜新闻让 AI 能够跨库联合推理。生产级数据管道探讨如何结合 LangChain 的 Document Loaders 和 Text Splitters将海量企业文档自动化清洗并灌入 MongoDB 向量库。

相关新闻

2026/8/25 21:13:29

压电蜂鸣器驱动与PIC单片机警报系统设计

1. 项目背景与核心组件选型在工业控制、智能家居和安防系统中,清晰可辨的音频警报是确保信息有效传达的关键。传统电磁式蜂鸣器存在功耗高、体积大的缺点,而压电蜂鸣器凭借其低功耗、高可靠性和紧凑尺寸成为理想替代方案。本项目采用Sanco Electronics的…

2026/8/25 10:36:28

7天从零到精通:SMAPI星露谷物语模组开发完全指南

7天从零到精通:SMAPI星露谷物语模组开发完全指南 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI 你是否曾想过为星露谷物语添加全新的游戏内容?是否羡慕其他玩家拥有独特的农…

2026/8/26 7:50:03

Linux文件系统核心机制:从inode、目录项到路径解析的深度解析

1. 从一次文件恢复说起:理解Linux文件系统的基石那天下午,我正忙着整理一个旧项目的归档数据,手一滑,rm -rf命令后面跟的路径多敲了一个字符,眼睁睁看着一个存放着几个月调试日志的目录瞬间消失。冷汗一下子就下来了。…

2026/8/26 7:50:03

AI漫剧从0到1:Seedance2.0与即梦平台实操全流程

Seedance2.0 和即梦这类 AI 视频生成工具,最近在 AI 漫剧、AI 短视频创作圈里热度很高。对初学者来说,最容易踩的坑不是提示词写不好,而是不知道一条能发布的 AI 短片到底要经过多少步。这篇文章按我自己的实测顺序拆开讲:先确定作…

2026/8/26 7:50:03

最速下降法免手导实战:自动微分+线搜索工程落地指南

最速下降法是数值优化里绕不开的经典算法,但很多人一看到“梯度”两个字就头皮发麻——不是因为概念难,而是卡在“手动求导”这一步:函数稍微复杂点,比如带复合函数、分段逻辑、嵌套指数或隐式约束,手算导数要么耗时半…

2026/8/26 7:50:03

美团算法岗笔试真题解析与备考策略

1. 笔试真题解析的价值与意义作为算法岗求职路上的必经环节,笔试真题的深入剖析往往能带来事半功倍的效果。美团这类头部互联网企业的算法岗笔试,不仅考察基础编码能力,更注重对实际问题建模和优化思维的检验。2026年3月的这场笔试&#xff0…

2026/8/26 7:50:02

顺丰2026春招笔试解析:物流算法与路径优化实战

1. 笔试真题解析概述 顺丰2026年春季校园招聘笔试作为物流行业头部企业的选拔标准,其题目设计往往紧扣行业发展趋势与实际业务场景。这套3月15日的真题集中体现了智慧物流时代对复合型人才的需求特点——既考察基础数学与逻辑能力,又深度融合了物流网络优…

2026/8/26 7:45:02

SAP VA02保存前增强:业务校验与数据填充实战指南

1. 项目概述:为什么要在VA02保存前“动手脚”?做SAP SD模块开发或者运维的朋友,对VA02这个事务码肯定再熟悉不过了。它就是销售订单修改的“主战场”。日常业务中,销售订单创建后,客户要求变更价格、调整数量、修改交货…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 0:04:32

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 1:19:35

JSON总结

JSON概念 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,主要用于跟服务器进行交换数据。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C、C#、Java、JavaScr…

2026/8/26 1:19:35

保存连接sse 是什么原理,为什么不会一直请求

“保持连接”用的是 SSE(Server-Sent Events),本质是一个没有马上结束的 HTTP 请求。 过程是: 拷贝机发送一次请求: GET /api/code-sync/events服务器返回: Content-Type: text/event-stream但不关闭响应&…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…