最新Langchain数据库Agent构建实战完整版:从零开始简单高效快速掌握方法

2026-06-18阅读 0热度 0
ai 人工智能

上一篇文章介绍了Vanna,一个利用RAG技术生成SQL的开源工具,效果不错。今天我们把目光转向LangChain自身如何解决文本到SQL的转换——它内置了一个SQLDatabaseChain模块,基于SQLAlchemy与数据库对接。如果将RAG的灵活性与SQLDatabaseChain的严谨结构结合,能否在自然语言查询的准确性和适应性上实现双重提升?下面直接进入实操,拆解具体步骤。

使用Langchain构建简单的数据库Agent

实现步骤

首先,需要一个可用的数据库。这里选用ClickHouse——一款面向列的SQL数据库管理系统,尤其擅长大规模数据分析场景。部署极简,一条命令即可完成。为了让LangChain Agent能与ClickHouse顺畅通信,还需安装clickhouse-sqlalchemy这个适配包。安装完成后,建立数据库连接,接着初始化Toolkit——你可以把这个Toolkit看作Agent的工具箱,里面整合了各类工具,例如检索表结构、执行SQL查询等。

随后就是创建基于SQLDatabaseChain的Agent。这个Agent能够直接与数据库交互,根据自然语言问题自动生成SQL并返回答案。定义好必要的工具集后,快速实例化并运行即可。整个过程相当于为Agent配备了一个自然语言到SQL的翻译引擎,彻底省去手动编写查询语句的重复劳动。

环境搭建

今天主要用到的安装包如下,其余依赖按提示补充即可:

# 安装 clickhouse-sqlalchemy 包来连接 ClickHouse
pip install clickhouse-sqlalchemy langchain

运行代码

核心代码结构如下:

from langchain.agents import AgentExecutor, AgentType
from langchain.sql_database_toolkit import SQLDatabaseToolkit

# 设置数据库连接
uri = 'clickhouse+native://localhost/ecommerce'
db = SQLDatabase.from_uri(uri)

# 初始化工具箱
toolkit = SQLDatabaseToolkit(db=db, llm=OpenAI(temperature=0))

# 创建并运行基于 OpenAI 函数的 Agent
agent_executor = create_sql_agent(
    llm=ChatOpenAI(temperature=0.1, model='gpt-4-1106-preview'),
    toolkit=toolkit,
    verbose=True,
    agent_type=AgentType.OPENAI_FUNCTIONS
)
# 运行 Agent,回答数据相关问题
agent_executor.run("我们有多少来自上海的活跃客户?")

启动后,Agent会根据用户提问自动查询数据库。举例来说,它会直接返回“来自上海的活跃客户”的具体数量。核心价值在于:你无需自己拼写SQL语句,也不必纠结于表结构或语法差异——Agent直接理解语义,把底层查询与结果整合逻辑完全封装起来。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策