1. 项目概述
今天要分享的是一个非常实用的技术方案:如何通过LangChain框架让GPT模型直接查询SQL数据库并返回自然语言结果。这个方案特别适合需要频繁与数据库交互但又不想写复杂SQL查询的开发者和数据分析师。
想象一下这样的场景:你手头有一个包含大量业务数据的SQLite数据库,每次想查询一些基本信息都需要手动编写SQL语句。比如想知道"公司有多少员工"、"上季度销售额最高的产品是什么"这类问题。通过本文介绍的方法,你只需要用自然语言提问,系统就能自动生成SQL查询、执行并返回易懂的答案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖安装
2.1 所需工具与库
要实现这个功能,我们需要以下几个核心组件:
- LangChain框架:作为整个流程的协调者,负责连接各个模块
- OpenAI的GPT模型:用于理解自然语言问题和生成SQL查询
- SQL数据库连接器:这里使用SQLite作为示例数据库
安装依赖非常简单,只需要一行命令:
bash复制pip install --upgrade --quiet langchain-core langchain-community langchain-openai
注意:建议在虚拟环境中安装这些依赖,避免与系统Python环境冲突。可以使用
python -m venv myenv创建虚拟环境。
2.2 示例数据库准备
本示例使用的是Chinook数据库,这是一个模拟数字媒体商店的SQLite数据库,包含了艺术家、专辑、曲目、顾客、订单等信息。你可以从Chinook数据库官网下载SQLite版本。
下载后,将数据库文件(Chinook_Sqlite.sqlite)重命名为Chinook.db并放在项目目录下,或者修改代码中的数据库路径。
3. 核心代码解析
3.1 初始化数据库连接
首先我们需要建立与数据库的连接:
python复制from langchain_community.utilities import SQLDatabase
db = SQLDatabase.from_uri("sqlite:///./Chinook
