我的编程空间,编程开发者的网络收藏夹
学习永远不晚

LangChain 使用文本描述的方式操作MySQL中的数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

LangChain 使用文本描述的方式操作MySQL中的数据

一、LangChain 使用文本描述的方式操作MySQL中的数据

LangChain 中提供了 SQLDatabaseChain ,可以通过语义文本去操作 MySQL中的数据,例如在 MySQL 中有如下表数据:

用户表

CREATE TABLE `user` (  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',  `name` varchar(255) DEFAULT NULL COMMENT '姓名',  `age` int DEFAULT NULL COMMENT '年龄',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表';

写入测试数据:

INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (1, '张三', 20);INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (2, '李四', 60);INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (3, '王五', 30);INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (4, '赵六', 31);INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (5, '小明', 35);INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (6, '小红', 25);INSERT INTO `langchain`.`user`(`id`, `name`, `age`) VALUES (7, '小蓝', 40);

角色表

CREATE TABLE `role` (  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',  `role` varchar(255) DEFAULT NULL COMMENT '角色名',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='角色表';

写入测试数据:

INSERT INTO `langchain`.`role`(`id`, `role`) VALUES (1, 'admin');INSERT INTO `langchain`.`role`(`id`, `role`) VALUES (2, 'common');INSERT INTO `langchain`.`role`(`id`, `role`) VALUES (3, 'role1');INSERT INTO `langchain`.`role`(`id`, `role`) VALUES (4, 'role2');INSERT INTO `langchain`.`role`(`id`, `role`) VALUES (5, 'role3');

工作组表:

CREATE TABLE `work_group` (  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',  `group` varchar(255) DEFAULT NULL COMMENT '工作组',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='工作组表';

写入测试数据:

INSERT INTO `langchain`.`work_group`(`id`, `group`) VALUES (1, 'A');INSERT INTO `langchain`.`work_group`(`id`, `group`) VALUES (2, 'B');INSERT INTO `langchain`.`work_group`(`id`, `group`) VALUES (3, 'C');INSERT INTO `langchain`.`work_group`(`id`, `group`) VALUES (4, 'E');

用户角色关系表

CREATE TABLE `user_role_mapping` (  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',  `user_id` int DEFAULT NULL COMMENT '用户ID',  `role_id` int DEFAULT NULL COMMENT '角色ID',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户角色关系表';

写入测试数据:

INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (1, 1, 1);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (2, 1, 2);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (3, 1, 3);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (4, 2, 4);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (5, 2, 5);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (6, 3, 2);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (7, 4, 2);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (8, 5, 2);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (9, 6, 2);INSERT INTO `langchain`.`user_role_mapping`(`id`, `user_id`, `role_id`) VALUES (10, 7, 5);

用户工作组关系表

CREATE TABLE `user_work_group_mapping` (  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',  `user_id` int DEFAULT NULL COMMENT '用户ID',  `group_id` int DEFAULT NULL COMMENT '工作组ID',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户工作组关系表';

写入测试数据:

INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (1, 1, 1);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (2, 1, 2);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (3, 1, 3);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (4, 2, 1);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (5, 2, 2);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (6, 2, 3);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (7, 3, 2);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (8, 3, 3);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (9, 4, 1);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (10, 4, 2);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (11, 5, 2);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (12, 5, 4);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (13, 6, 3);INSERT INTO `langchain`.`user_work_group_mapping`(`id`, `user_id`, `group_id`) VALUES (14, 7, 2);

构建 SQLDatabaseChain

from langchain import OpenAI, SQLDatabase, SQLDatabaseChainimport osdb_user = "root"db_password = "root"db_host = "127.0.0.1"db_name = "langchain"db = SQLDatabase.from_uri(f"mysql+pymysql://{db_user}:{db_password}@{db_host}/{db_name}")openai_api_key = os.environ["OPENAI_API_KEY"]llm = OpenAI(temperature=0, openai_api_key=openai_api_key)db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)

使用文本描述操作数据:

questions = "有多少个用户"res = db_chain.run(questions)print("问题:", questions, "解答:", res)

在这里插入图片描述

questions = "统计30岁以下的人员信息"res = db_chain.run(questions)print("问题:", questions, "解答:", res)

在这里插入图片描述

questions = "统计每个工作组下的人员"res = db_chain.run(questions)print("问题:", questions, "解答:", res)

在这里插入图片描述

questions = "统计每个工作组下的人员数量"res = db_chain.run(questions)print("问题:", questions, "解答:", res)

在这里插入图片描述

questions = "统计每个校色下的人员数量"res = db_chain.run(questions)print("问题:", questions, "解答:", res)

在这里插入图片描述

questions = "统计30岁以下人员的工作组和角色"res = db_chain.run(questions)print("问题:", questions, "解答:", res)

在这里插入图片描述

来源地址:https://blog.csdn.net/qq_43692950/article/details/131378699

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

LangChain 使用文本描述的方式操作MySQL中的数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

LangChain 使用文本描述的方式操作MySQL中的数据

一、LangChain 使用文本描述的方式操作MySQL中的数据 在 LangChain 中提供了 SQLDatabaseChain ,可以通过语义文本去操作 MySQL中的数据,例如在 MySQL 中有如下表数据: 用户表 CREATE
2023-08-16

在Linux系统中使用Python脚本操作MySQL数据库的方法

在Linux系统中使用Python脚本操作MySQL数据库的方法随着数据处理和存储的需求不断增加,MySQL数据库成为了开发者们常用的选择之一。在Linux系统中,使用Python脚本与MySQL数据库进行交互十分便捷,本文将介绍如何在Li
2023-10-22

Node.js中使用mongoose操作mongodb数据库的方法

如何利用mongoose将数据写入mongodb数据库? 1.利用npm下载安装mongoose;npm install mongoose2.建立js文件,引入mongoosevar mongoose = require('mongoose
2022-06-04

如何使用Python中的字符串操作函数处理大规模文本数据

如何使用Python中的字符串操作函数处理大规模文本数据,需要具体代码示例随着互联网的快速发展和数据的不断增加,大规模文本数据处理成了现代科技中的一个重要课题。Python作为一门简单易学且功能强大的编程语言,提供了丰富的字符串操作函数,能
2023-10-22

android中使用SharedPreferences进行数据存储的操作方法

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是 j2se应用,我们会采用proper
2022-06-06

Android应用中使用DOM方式解析XML格式数据的基本方法

DOM比SAX更容易掌握,因为她没有涉及回调和复杂的状态管理,然而,DOM的实现常常将所有的XML节点保存在内存中,这样使的处理较大的文档效率低。 XML基本的节点类型 node - DOM基本的数据类型 Element - 最主要处理的对
2022-06-06

Linux中使用数据备份同步工具Rsync的操作方法

Linux中使用数据备份同步工具Rsync的操作方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对于运维人员来说,数据备份是最重要的工作之一,rsync就是一款通过网络备
2023-06-12

Python中如何对MySQL数据库中的数据进行加密和解密操作?(使用Python如何加密和解密MySQL数据库中的数据?)

本文详细介绍了如何使用Python对MySQL数据库中的数据进行加密和解密。加密过程涉及安装加密库、生成随机密钥、加密数据并将其存储在数据库中。解密过程涉及加载密钥、解密数据并使用解密后的数据。最佳实践包括使用强密钥、安全地存储密钥和遵循安全编码实践。文中还提供了使用Fernet加密库的示例。
Python中如何对MySQL数据库中的数据进行加密和解密操作?(使用Python如何加密和解密MySQL数据库中的数据?)
2024-04-02

web前端:关于Vue中,在方法中使用(操作)子组件获取到的数据

编程学习网:Vue系列产品为3D自然环境的动画制作和渲染提供了一系列的解决方案。Vue系列有很多不同的产品,这是为了满足不同阶层的用户的需要:可以满足专业的制作工作室,同样也能满足3D自由艺术家。
web前端:关于Vue中,在方法中使用(操作)子组件获取到的数据
2024-04-23

如何使用PHP连接和操作Redis数据库?(PHP连接Redis并进行数据读写的方式是什么?)

本文介绍了如何使用PHP连接和操作Redis数据库。它涵盖了连接、读写字符串、哈希、列表、集合和有序集合等基本操作。还讨论了事务和管道等高级功能。本文提供了详细的代码示例,展示了如何使用PredisClient类与Redis数据库进行交互。通过将PHP与Redis相结合,开发人员可以轻松地创建具有高性能和可扩展性的实际应用程序。
如何使用PHP连接和操作Redis数据库?(PHP连接Redis并进行数据读写的方式是什么?)
2024-04-02

如何使用Python将MySQL数据库中的数据导出为CSV文件?(Python环境下如何将MySQL数据导出为CSV格式?)

使用Python将MySQL数据库数据导出为CSV格式的过程包括:连接数据库,执行SELECT查询获取数据,创建CSV文件,逐行写入数据,最后关闭连接。通过mysql.connector库连接数据库,使用cursor对象执行查询,利用csv模块创建CSV文件并写入数据,可轻松实现MySQL数据的导出。
如何使用Python将MySQL数据库中的数据导出为CSV文件?(Python环境下如何将MySQL数据导出为CSV格式?)
2024-04-02

Python中如何建立与MySQL数据库的安全连接并进行数据交互?(如何使用Python安全地连接到MySQL数据库并执行数据操作?)

本文章详细讲解了如何使用Python安全地连接MySQL数据库并进行数据操作。为了建立安全连接,需配置数据库访问权限、使用SSL加密和密码。Python中的连接配置可通过mysql.connector库实现。数据交互操作包括创建游标、执行查询、获取结果、修改数据和提交更改。安全性最佳实践建议遵循最小权限原则、定期更改密码、使用防火墙、IDS和保持软件更新。
Python中如何建立与MySQL数据库的安全连接并进行数据交互?(如何使用Python安全地连接到MySQL数据库并执行数据操作?)
2024-04-02

编程热搜

目录