用户登录

SqlDatabaseChain,可以让我们用自然语言来查询 SQL 类型的数据仓库,先准备一个数据库,可以在这个地址找到一个 data.db ,它是一个 sqlite 数据库,可以把它下载到你的 LangChain 项目里,放在 files 这个目录的下面。

然后用 TablePlus 创建一个连接,可以连接到这个 sqlite 数据库文件,它里面有一个 post 数据表,里面有几个贴子内容,另外还有一个 category 数据表,它里面存储的是一些分类数据。

然后在终端,项目所在目录的下面,执行一下 npm install 给项目安装一个 typeorm,再安装一个 sqlite3。完成以后回到项目,打开这个 Node.js 程序文件,在文件顶部先导入 DataSource,它来自 typeorm,下面再导入一个 SqlDatabase,它来自 langchain/sql_db,然后再导入 SqlDatabaseChain,它来自 langchain/chains。

在创建的这个模型的下面,声明一个 dataSource,它的值可以新建一个 DataSource,提供一个对象,把 type 设置成 sqlite,然后再添加一个 database 属性,设置一下这个 sqlite 数据库文件的位置,这里就是当前目录 files 下面的这个 data.db。

下面再声明一个 db ,它的值等于 await,用一下 SqlDatabase.fromDataSourceParams,提供一个对象参数,设置一下 appDataSource,对应的值是上面定义的这个 dataSource。

再声明一个 chain,它的值新建一个 SqlDatabaseChain,提供一个对象参数,里面添加一个 llm 属性,把它的值设置成 model,再添加一个 database 属性,对应的值是上面定义的这个 db。

然后声明一个 response,等于 await,用一下 chain 上面的 run 这个方法,这个 chain 是一个 SqlDatabaseChain。提供一个 prompt ,比如 “有多少个贴子”。 下面执行 console.log 输出 response。

在终端,项目所在目录的下面,执行 node index.mjs,运行一下应用,SqlDatabaseChain 会根据用户的问题,把它转换成 sql 查询,然后查询对应的数据库,这里显示一共有 6 个贴子。

再试一下,比如 “列出前三个贴子与它的分类”,回到终端,再运行一下,在控制台会列出数据库的 post 这个数据表里的前三个贴子,还有贴子所属的分类。

关系型数据库链(SqlDatabaseChain)《 LangChain:链 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点