分享
【实施案例】SQL数据库问答系统
输入“/”快速插入内容
【实施案例】SQL数据库问答系统
用户811
用户811
2024年4月13日创建
1592
2491
发布于知乎:
SQL数据库问答系统
SQL数据库问答系统
我们将讲解如何创建问答链(chain)和SQL数据库代理(agent)。这两种系统都能让我们用自然语言向SQL数据库提问,然后得到回答。它们的主要区别在于,代理能反复查询数据库,直到找到答案为止。
本用例使用Groq聊天模型(并选用 mixtral-8x7b-32768)。
作为OpenAI付费接口的替代,我个人觉得效果很好。理由是,在不用OpenAI的前提下,很多用例靠Groq跑通了,其它模型都会因为各种各样的原因(魔法上网部分限制,模型能力表现不佳,调用收费不太合理等),无法帮助我跑通用例代码。
申请指引:
GROQ API使用申请
🌿
场景⑤:
【LLM用例】SQL数据库问答系统 🦜️🔗 Q&A over SQL
落地:
【实施案例】SQL数据库问答系统
发布于知乎:
【LLM用例】SQL数据库问答系统
安全提示:
搭建问答系统时,需要执行由模型生成的SQL查询。这个过程有风险。请确保数据库的连接权限只适用于你的链/代理的需求,并且尽可能地缩小权限范围。这样做可以在减轻风险的同时,但不能完全消除构建模型驱动系统风险。更多信息请参考
这里
。
架构:
从高层次来说,任何SQL链和代理的流程都分为三步:
1.
把问题转成SQL查询:模型会把用户的输入转成SQL查询。
2.
执行SQL查询:执行这个SQL查询。
3.
回答问题:模型用查询的结果来回答用户的原始问题。
图 SQL数据库问答系统,图源:
https://langchain.com
项目设置:
首先,要获取必要的包并设置环境变量:
代码块
Python
%pip install
--
upgrade
--
quiet langchain langchain-community langchain-groq
我们将使用Groq聊天模型(并选用 mixtral-8x7b-32768)。
代码块
Python
import getpass
import os
os.environ["GROQ_API_KEY"] = getpass.getpass()
本例中,我们使用GROQ,API Key 需要提前申请,申请指引:
GROQ API使用申请
下面的示例将使用与Chinook数据库的SQLite连接。按照
以下安装步骤
在与代码文件相同的目录中创建Chinook.db:
•
把
这个文件
保存为Chinook_Sqlite.sql
•
运行sqlite3 Chinook.db
•
运行.read Chinook_Sqlite.sql
•
测试SELECT * FROM Artist LIMIT 10;
现在,Chinook.db在我们的目录里了,我们可以用SQLAlchemy驱动的SQLDatabase类和它互动: