织梦网站一排4张图片,网站点击率多少正常,北京商标代理,做6个页面的网站欢迎来到《小5讲堂》 这是《腾讯云》系列文章#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示#xff1a;博主能力有限#xff0c;理解水平有限#xff0c;若有不对之处望指正#xff01; 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启… 欢迎来到《小5讲堂》 这是《腾讯云》系列文章每篇文章将以博主理解的角度展开讲解。 温馨提示博主能力有限理解水平有限若有不对之处望指正 目录 背景效果图流程图创建数据库基本信息数据库配置设置密码控制台开启公网访问登录管理工具新建数据库新建表表和数据SQL 部署算力服务器基本信息选择应用应用详情查看HAI 本地python环境搭建下载地址安装依赖 构建应用搭建项目框架配置文件代码详细说明应用开发代码运行和效果 踩坑经验未找到模块未找到表 输出效果 背景
AI 技术的应用极大地提升了运营效率并为电商行业带来了个性化推荐、用户行为分析、库存管理和市场趋势预测等关键领域的数据分析能力在这种背景下构建一个高效、可靠的AI电商数据分析系统显得尤为关键。 基于这个背景下如何利用腾讯云的高性能应用服务 HAI 和TDSQL-C MySQL Serverless 版构建 AI电商数据分析系统。HAI作为一个面向AI和科学计算的GPU应用服务产品提供了强大的计算能力使得复杂AI模型如LLM的快速部署和运行成为可能进而支持自然语言处理和图像生成等高级任务。与此同时TDSQL-C MySQL版作为一款云原生关系型数据库其100%的MySQL兼容性以及极致的弹性、高性能和高可用性使其成为电商业务中处理海量数据存储和查询的理想选择。 让我们一起探索下TDSQL数据库是如何与HAI结合通过一句话就能输出统计目标图 下面将通过 Python 编程语言和基于 Langchain 的框架逐步完成系统的构建和部署。
效果图
下面展示的就是本次完成部署后网页端输出的统计数据效果图。
流程图 创建数据库
基本信息
云原生数据库 TDSQL-CCloud Native Database TDSQL-C简称 TDSQL-C。 TDSQL-C 是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。 融合了传统数据库、云计算与新硬件技术的优势100%兼容 MySQL 和 PostgreSQL实现超百万级 QPS 的高吞吐海量分布式智能存储保障数据安全可靠。
数据库配置
访问腾讯云官网申请 TDSQL-C Mysql 服务器 地址https://cloud.tencent.com/product/tdsqlc 实例形态选择Serverless数据库引擎选择MySql。 其他按默认也可以根据自己情况选择私有网络第一次使用可以留空创建完成后会自动生成。 数据库版本博主这里选择MySQL8.0其他都是默认选项。
设置密码
管理员账号名默认就是root密码这个需要自己设置和记住后续就是要使用。 高级配置这里的表名大小写选择不敏感其他都是默认选择。
控制台
完成上面操作后可以在数据库控制台查看相关信息。 控制台地址https://console.cloud.tencent.com/cynosdb/mysql/ap-shanghai/cluster/cynosdbmysql-58ufm8lc/detail
开启公网访问
鼠标移动到红色框区域就会有一个开启的按钮点击就会生成主机和端口信息。
登录管理工具
点击右上角的登录 账号就是前面默认的root密码就是刚刚自己设置的值。
新建数据库
这里博主命名新建的数据库名称为shop当然自己实际业务进行命名。 熟悉mysql的朋友估计看到这些操作都很熟悉了。
新建表
选择刚刚创建好的shop数据库然后点击SQL窗口在窗口输入执行的SQL最后点击【执行】按钮。
表和数据SQL
这里提供一份示例SQL表和数据。 下面语句会执行创建三张表ecommerce_sales_stats、users、orders
CREATE TABLE ecommerce_sales_stats (category_id int NOT NULL COMMENT 分类ID主键,category_name varchar(100) NOT NULL COMMENT 分类名称,total_sales decimal(15,2) NOT NULL COMMENT 总销售额,steam_sales decimal(15,2) NOT NULL COMMENT Steam平台销售额,offline_sales decimal(15,2) NOT NULL COMMENT 线下实体销售额,official_online_sales decimal(15,2) NOT NULL COMMENT 官方在线销售额,PRIMARY KEY (category_id)
) ENGINEINNODB DEFAULT CHARSETutf8mb4 AUTO_INCREMENT1 COMMENT电商分类销售统计表;
INSERT INTO ecommerce_sales_stats VALUES (1,电子产品,150000.00,80000.00,30000.00,40000.00),(2,服装,120000.00,20000.00,60000.00,40000.00),(3,家居用品,90000.00,10000.00,50000.00,30000.00),(4,玩具,60000.00,5000.00,30000.00,25000.00),(5,书籍,45000.00,2000.00,20000.00,23000.00),(6,运动器材,70000.00,15000.00,25000.00,30000.00),(7,美容护肤,80000.00,10000.00,30000.00,40000.00),(8,食品,50000.00,5000.00,25000.00,20000.00),(9,珠宝首饰,30000.00,2000.00,10000.00,18000.00),(10,汽车配件,40000.00,10000.00,15000.00,25000.00),(11,手机配件,75000.00,30000.00,20000.00,25000.00),(12,电脑配件,85000.00,50000.00,15000.00,20000.00),(13,摄影器材,50000.00,20000.00,15000.00,15000.00),(14,家电,120000.00,60000.00,30000.00,30000.00),(15,宠物用品,30000.00,3000.00,12000.00,16800.00),(16,母婴用品,70000.00,10000.00,30000.00,30000.00),(17,旅行用品,40000.00,5000.00,15000.00,20000.00),(18,艺术品,25000.00,1000.00,10000.00,14000.00),(19,健康产品,60000.00,8000.00,25000.00,27000.00),(20,办公用品,55000.00,2000.00,20000.00,33000.00);
CREATE TABLE users (user_id int NOT NULL AUTO_INCREMENT COMMENT 用户ID主键自增,full_name varchar(100) NOT NULL COMMENT 用户全名,username varchar(50) NOT NULL COMMENT 用户名,email varchar(100) NOT NULL COMMENT 用户邮箱,password_hash varchar(255) NOT NULL COMMENT 用户密码的哈希值,created_at datetime DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间,is_active tinyint(1) DEFAULT 1 COMMENT 是否激活,PRIMARY KEY (user_id),UNIQUE KEY email (email)
) ENGINEINNODB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 COMMENT用户表;
INSERT INTO users VALUES (1,张伟,zhangwei,zhangweiexample.com,hashed_password_1,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(2,李娜,lina,linaexample.com,hashed_password_2,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(3,王芳,wangfang,wangfangexample.com,hashed_password_3,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(4,刘洋,liuyang,liuyangexample.com,hashed_password_4,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(5,陈杰,chenjie,chenjieexample.com,hashed_password_5,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(6,杨静,yangjing,yangjingexample.com,hashed_password_6,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(7,赵强,zhaoqiang,zhaoqiangexample.com,hashed_password_7,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(8,黄丽,huangli,huangliexample.com,hashed_password_8,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(9,周杰,zhoujie,zhoujieexample.com,hashed_password_9,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(10,吴敏,wumin,wuminexample.com,hashed_password_10,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(11,郑伟,zhengwei,zhengweiexample.com,hashed_password_11,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(12,冯婷,fengting,fengtingexample.com,hashed_password_12,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(13,蔡明,caiming,caimingexample.com,hashed_password_13,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(14,潘雪,panxue,panxueexample.com,hashed_password_14,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(15,蒋磊,jianglei,jiangleiexample.com,hashed_password_15,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(16,陆佳,lujia,lujiaexample.com,hashed_password_16,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(17,邓超,dengchao,dengchaoexample.com,hashed_password_17,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(18,任丽,renli,renliexample.com,hashed_password_18,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(19,彭涛,pengtao,pengtaoexample.com,hashed_password_19,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(20,方圆,fangyuan,fangyuanexample.com,hashed_password_20,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(21,段飞,duanfei,duanfeiexample.com,hashed_password_21,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(22,雷鸣,leiming,leimingexample.com,hashed_password_22,2024-08-18 04:07:18,2024-08-18 04:07:18,1),(23,贾玲,jialing,jialingexample.com,hashed_password_23,2024-08-18 04:07:18,2024-08-18 04:07:18,1);
CREATE TABLE orders (order_id int NOT NULL AUTO_INCREMENT,user_id int DEFAULT NULL,order_amount decimal(10,2) DEFAULT NULL,order_status varchar(20) DEFAULT NULL,order_time datetime DEFAULT NULL,PRIMARY KEY (order_id)
) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 ;
INSERT INTO orders VALUES (1,3,150.50,已支付,2024-08-23 10:01:00),(2,7,89.20,待支付,2024-08-23 10:03:15),(3,12,230.00,已支付,2024-08-23 10:05:30),(4,2,99.90,已发货,2024-08-23 10:07:45),(5,15,120.00,待发货,2024-08-23 10:10:00),(6,21,180.50,已支付,2024-08-23 10:12:15),(7,4,105.80,待支付,2024-08-23 10:14:30),(8,18,210.00,已支付,2024-08-23 10:16:45),(9,6,135.20,已发货,2024-08-23 10:19:00),(10,10,160.00,待发货,2024-08-23 10:21:15),(11,1,110.50,已支付,2024-08-23 10:23:30),(12,22,170.80,待支付,2024-08-23 10:25:45),(13,8,145.20,已发货,2024-08-23 10:28:00),(14,16,190.00,待发货,2024-08-23 10:30:15),(15,11,125.50,已支付,2024-08-23 10:32:30),(16,19,165.20,待支付,2024-08-23 10:34:45),(17,5,130.00,已发货,2024-08-23 10:37:00),(18,20,175.80,待发货,2024-08-23 10:39:15),(19,13,140.50,已支付,2024-08-23 10:41:30),(20,14,155.20,待支付,2024-08-23 10:43:45),(21,9,135.50,已发货,2024-08-23 10:46:00),(22,23,185.80,待发货,2024-08-23 10:48:15),(23,17,160.50,已支付,2024-08-23 10:50:30),(24,12,145.20,待支付,2024-08-23 10:52:45),(25,3,130.00,已发货,2024-08-23 10:55:00),(26,8,115.50,已支付,2024-08-23 10:57:15),(27,19,120.20,待支付,2024-08-23 10:59:30),(28,6,145.50,已发货,2024-08-23 11:01:45),(29,14,130.20,待支付,2024-08-23 11:04:00),(30,5,125.50,已支付,2024-08-23 11:06:15),(31,21,135.20,待支付,2024-08-23 11:08:30),(32,7,140.50,已发货,2024-08-23 11:10:45),(33,16,120.20,待支付,2024-08-23 11:13:00),(34,10,135.50,已支付,2024-08-23 11:15:15),(35,2,140.20,待支付,2024-08-23 11:17:30),(36,12,145.20,待支付,2024-08-23 12:00:00),(37,15,130.20,已支付,2024-08-23 12:02:15),(38,20,125.50,待发货,2024-08-23 12:04:30),(39,17,135.20,已支付,2024-08-23 12:06:45),(40,4,140.50,待支付,2024-08-23 12:09:00),(41,10,120.20,已发货,2024-08-23 12:11:15),(42,13,135.50,已支付,2024-08-23 12:13:30),(43,18,145.20,待支付,2024-08-23 12:15:45),(44,6,130.20,已发货,2024-08-23 12:18:00),(45,11,125.50,已支付,2024-08-23 12:20:15),(46,19,135.20,待支付,2024-08-23 12:22:30),(47,5,140.50,已发货,2024-08-23 12:24:45),(48,20,120.20,待支付,2024-08-23 12:27:00),(49,17,135.50,已支付,2024-08-23 12:29:15),(50,4,145.20,待支付,2024-08-23 12:31:30),(51,10,130.20,已发货,2024-08-23 12:33:45),(52,13,125.50,已支付,2024-08-23 12:36:00),(53,18,135.20,待支付,2024-08-23 12:38:15),(54,6,140.50,已发货,2024-08-23 12:40:30),(55,11,120.20,待支付,2024-08-23 12:42:45),(56,19,135.50,已支付,2024-08-23 12:45:00),(57,5,145.20,待支付,2024-08-23 12:47:15),(58,20,130.20,已发货,2024-08-23 12:49:30),(59,17,125.50,已支付,2024-08-23 13:01:45),(60,4,135.20,待支付,2024-08-23 13:04:00),(61,10,140.50,已发货,2024-08-23 13:06:15),(62,13,120.20,待支付,2024-08-23 13:08:30),(63,18,135.50,已支付,2024-08-23 13:10:45),(64,6,145.20,待支付,2024-08-23 13:13:00),(65,11,130.20,已发货,2024-08-23 13:15:15),(66,19,125.50,已支付,2024-08-23 13:17:30),(67,5,135.20,待支付,2024-08-23 13:19:45),(68,20,140.50,已发货,2024-08-23 13:22:00),(69,17,120.20,待支付,2024-08-23 13:24:15),(70,4,135.50,已支付,2024-08-23 13:26:30),(71,10,145.20,待支付,2024-08-23 13:28:45),(72,13,130.20,已发货,2024-08-23 13:31:00),(73,18,125.50,已支付,2024-08-23 13:33:15),(74,6,135.20,待支付,2024-08-23 13:35:30),(75,11,140.50,已发货,2024-08-23 13:37:45),(76,19,120.20,待支付,2024-08-23 13:40:00),(77,5,135.50,已支付,2024-08-23 13:42:15),(78,20,145.20,待支付,2024-08-23 13:44:30),(79,17,130.20,已发货,2024-08-23 13:46:45),(80,4,125.50,已支付,2024-08-23 13:49:00),(81,10,135.20,待支付,2024-08-23 13:51:15),(82,13,140.50,已发货,2024-08-23 13:53:30),(83,18,120.20,待支付,2024-08-23 13:55:45),(84,6,135.50,已支付,2024-08-23 13:58:00),(85,11,145.20,待支付,2024-08-23 14:00:15),(86,19,130.20,已发货,2024-08-23 14:02:30),(87,5,125.50,已支付,2024-08-23 14:04:45),(88,20,135.20,待支付,2024-08-23 14:07:00),(89,17,140.50,已发货,2024-08-23 14:09:15),(90,4,120.20,待支付,2024-08-23 14:11:30),(91,10,135.50,已支付,2024-08-23 14:13:45),(92,13,145.20,待支付,2024-08-23 14:16:00),(93,18,130.20,已发货,2024-08-23 14:18:15),(94,6,125.50,已支付,2024-08-23 14:20:30),(95,11,135.20,待支付,2024-08-23 14:22:45),(96,19,140.50,已发货,2024-08-23 14:25:00),(97,5,120.20,待支付,2024-08-23 14:27:15),(98,20,135.50,已支付,2024-08-23 14:29:30),(99,17,145.20,待支付,2024-08-23 14:31:45),(100,4,130.20,已发货,2024-08-23 14:34:00),(101,10,125.50,已支付,2024-08-23 14:36:15),(102,13,135.20,待支付,2024-08-23 14:38:30),(103,18,140.50,已发货,2024-08-23 14:40:45),(104,16,120.20,待支付,2024-08-23 14:43:00),(105,12,135.50,已支付,2024-08-23 14:45:15),(106,3,145.20,待支付,2024-08-23 14:47:30),(107,8,130.20,已发货,2024-08-23 14:49:45),(108,19,125.50,已支付,2024-08-23 14:52:00),(109,6,135.20,待支付,2024-08-23 14:54:15),(110,14,140.50,已发货,2024-08-23 14:56:30),(111,10,120.20,待支付,2024-08-23 14:58:45),(112,13,135.50,已支付,2024-08-23 15:01:00),(113,18,145.20,待支付,2024-08-23 15:03:15),(114,6,130.20,已发货,2024-08-23 15:05:30),(115,11,125.50,已支付,2024-08-23 15:07:45),(116,19,135.20,待支付,2024-08-23 15:10:00),(117,5,140.50,已发货,2024-08-23 15:12:15),(118,20,120.20,待支付,2024-08-23 15:14:30),(119,17,135.50,已支付,2024-08-23 15:16:45),(120,4,145.20,待支付,2024-08-23 15:19:00),(121,10,130.20,已发货,2024-08-23 15:21:15),(122,13,125.50,已支付,2024-08-23 15:23:30),(123,18,135.20,待支付,2024-08-23 15:25:45),(124,6,140.50,已发货,2024-08-23 15:28:00),(125,11,120.20,待支付,2024-08-23 15:30:15),(126,19,135.50,已支付,2024-08-23 15:32:30),(127,5,145.20,待支付,2024-08-23 15:34:45),(128,20,130.20,已发货,2024-08-23 15:37:00),(129,17,125.50,已支付,2024-08-23 15:39:15),(130,4,135.20,待支付,2024-08-23 15:41:30),(131,10,140.50,已发货,2024-08-23 15:43:45),(132,13,120.20,待支付,2024-08-23 15:46:00),(133,18,135.50,已支付,2024-08-23 15:48:15),(134,6,145.20,待支付,2024-08-23 15:50:30),(135,11,130.20,已发货,2024-08-23 15:52:45),(136,19,125.50,已支付,2024-08-23 15:55:00),(137,5,135.20,待支付,2024-08-23 15:57:15),(138,20,140.50,已发货,2024-08-23 15:59:30),(139,17,120.20,待支付,2024-08-23 16:01:45),(140,4,135.50,已支付,2024-08-23 16:04:00),(141,10,145.20,待支付,2024-08-23 16:06:15),(142,13,130.20,已发货,2024-08-23 16:08:30),(143,18,125.50,已支付,2024-08-23 16:10:45),(144,6,135.20,待支付,2024-08-23 16:13:00),(145,11,140.50,已发货,2024-08-23 16:15:15),(146,19,120.20,待支付,2024-08-23 16:17:30),(147,5,135.50,已支付,2024-08-23 16:19:45),(148,20,145.20,待支付,2024-08-23 16:22:00),(149,17,130.20,已发货,2024-08-23 16:24:15),(150,4,125.50,已支付,2024-08-23 16:26:30),(151,10,135.20,待支付,2024-08-23 16:28:45),(152,13,140.50,已发货,2024-08-23 16:31:00),(153,18,120.20,待支付,2024-08-23 16:33:15),(154,6,135.50,已支付,2024-08-23 16:35:30),(155,11,145.20,待支付,2024-08-23 16:37:45),(156,19,130.20,已发货,2024-08-23 16:40:00),(157,5,125.50,已支付,2024-08-23 16:42:15),(158,20,135.20,待支付,2024-08-23 16:44:30),(159,17,140.50,已发货,2024-08-23 16:46:45),(160,4,120.20,待支付,2024-08-23 16:49:00),(161,10,135.50,已支付,2024-08-23 16:51:15),(162,13,145.20,待支付,2024-08-23 16:53:30),(163,18,130.20,已发货,2024-08-23 16:55:45),(164,6,125.50,已支付,2024-08-23 16:58:00),(165,11,135.20,待支付,2024-08-23 17:00:15),(166,19,140.50,已发货,2024-08-23 17:02:30),(167,5,120.20,待支付,2024-08-23 17:04:45),(168,20,135.50,已支付,2024-08-23 17:07:00),(169,17,145.20,待支付,2024-08-23 17:09:15),(170,4,130.20,已发货,2024-08-23 17:11:30),(171,10,125.50,已支付,2024-08-23 17:13:45),(172,13,135.20,待支付,2024-08-23 17:16:00),(173,18,140.50,已发货,2024-08-23 17:18:15),(174,6,120.20,待支付,2024-08-23 17:20:30),(175,11,135.50,已支付,2024-08-23 17:22:45),(176,19,145.20,待支付,2024-08-23 17:25:00),(177,5,130.20,已发货,2024-08-23 17:27:15),(178,20,125.50,已支付,2024-08-23 17:29:30),(179,17,135.20,待支付,2024-08-23 17:31:45),(180,4,140.50,已发货,2024-08-23 17:34:00),(181,10,120.20,待支付,2024-08-23 17:36:15),(182,13,135.50,已支付,2024-08-23 17:38:30),(183,18,145.20,待支付,2024-08-23 17:40:45),(184,6,130.20,已发货,2024-08-23 17:43:00),(185,11,125.50,已支付,2024-08-23 17:45:15),(186,19,135.20,待支付,2024-08-23 17:47:30),(187,5,140.50,已发货,2024-08-23 17:49:45),(188,20,120.20,待支付,2024-08-23 17:52:00),(189,17,135.50,已支付,2024-08-23 17:54:15),(190,4,145.20,待支付,2024-08-23 17:56:30),(191,10,130.20,已发货,2024-08-23 17:58:45),(192,13,125.50,已支付,2024-08-23 18:01:00),(193,18,135.20,待支付,2024-08-23 18:03:15),(194,6,140.50,已发货,2024-08-23 18:05:30),(195,11,120.20,待支付,2024-08-23 18:07:45),(196,19,135.50,已支付,2024-08-23 18:10:00),(197,5,145.20,待支付,2024-08-23 18:12:15),(198,20,130.20,已发货,2024-08-23 18:14:30),(199,17,125.50,已支付,2024-08-23 18:16:45),(200,4,135.20,待支付,2024-08-23 18:19:00),(201,10,140.50,已发货,2024-08-23 18:21:15),(202,13,120.20,待支付,2024-08-23 18:23:30),(203,18,135.50,已支付,2024-08-23 18:25:45),(204,6,145.20,待支付,2024-08-23 18:28:00),(205,11,130.20,已发货,2024-08-23 18:30:15),(206,19,125.50,已支付,2024-08-23 18:32:30),(207,5,135.20,待支付,2024-08-23 18:34:45),(208,20,140.50,已发货,2024-08-23 18:37:00),(209,17,120.20,待支付,2024-08-23 18:39:15),(210,4,135.50,已支付,2024-08-23 18:41:30),(211,10,145.20,待支付,2024-08-23 18:43:45); 部署算力服务器
访问腾讯云 HAI 官网https://cloud.tencent.com/product/hai 控制台https://console.cloud.tencent.com/hai/instance?rid8
基本信息
高性能应用服务(Hyper Application InventorHAI)是一款面向AI、科学计算的GPU算力服务产品提供即插即用的澎湃算力与常见环境。 助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用原生集成配套的开发工具与组件大幅提高应用层的开发生产效率。
选择应用
点击界面的新建。 选择社区应用以及选择Llama3.1 8B大模型其他都是默认选择就行。
应用详情
感兴趣的小伙伴可以点击查看此应用的详细信息。 地址https://cloud.tencent.com/developer/article/2439066
查看HAI
完成上面步骤后可以在算力管理查看再点击服务器名称进入详情界面。 确保6399端口是开放 如果未配置则可以新建一个。
本地python环境搭建
下载地址
访问python官网https://www.python.org/downloads/release/python-31011/ 下载符合自己服务器的python版本推荐3.10.11 双击安装包安装pythonwindow版本需要勾选add python to PATH
安装依赖
运行pip命令安装依赖包,请分别运行以下pip命令逐个安装
pip install openai
pip install langchain
pip install langchain-core
pip install langchain-community
pip install mysql-connector-python
pip install streamlit
pip install plotly
pip install numpy
pip install pandas
pip install watchdog
pip install matplotlib
pip install kaleido
如果上面安装速度比较慢那么可以考虑使用国内镜像。 这里要特别注意是小写 -i不能是大写。
国内比较速度相对比较快的PyPI源库
1、清华大学https://pypi.tuna.tsinghua.edu.cn/simple推荐
2、阿里云http://mirrors.aliyun.com/pypi/simple
3、豆瓣http://pypi.douban.com/simple例子
pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple下面是博主使用清华大学的镜像
pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install langchain -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install langchain-core -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install langchain-community -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mysql-connector-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install streamlit -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install plotly -i https://pypi.tuna.tsinghua.edu.cn/simple用清华镜像可以并且注意是小写i不是大写I
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install watchdog -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install kaleido -i https://pypi.tuna.tsinghua.edu.cn/simple构建应用
搭建项目框架
1.新建名为 workspace 文件夹进行保存项目代码 2.在项目文件夹workspace中新建配置文件 config.yaml 3.在项目文件夹workspace中新建应用主文件 text2sql2plotly.py
配置文件代码
database: db_user: rootdb_password: tencent_TDSQLdb_host: sh-cynosdbmysql-grp-9d8prc9o.sql.tencentcdb.comdb_port: 21919db_name: shophai:model: llama3.1:8bbase_url: http://82.156.229.112:6399
database配置说明
数据库读写示例https://console.cloud.tencent.com/cynosdb/mysql/ap-shanghai/cluster/cynosdbmysql-58ufm8lc/detail
hai配置说明
详细说明
这里主要分为 database 配置 和 hai 的配置
database 的配置详解db_user: 数据库账号默认为 rootdb_password: 创建数据库时的密码db_host: 数据库连接地址db_port: 数据库公网端口db_name 创建的数据库名称如果按手册来默认是 shophai 配置详解model 使用的大模型base_url 模型暴露的 api 地址是公网 ip 和端口的组合默认 llama端口是6399
应用开发代码
复制下面代码可以不用进行任何代码的改动直接运行就可以使用。
from langchain_community.utilities import SQLDatabase
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.chat_models import ChatOllama
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
import yaml
import mysql.connector
from decimal import Decimal
import plotly.graph_objects as go
import plotly
import pkg_resources
import matplotlibyaml_file_path config.yamlwith open(yaml_file_path, r) as file:config_data yaml.safe_load(file)#获取所有的已安装的pip包
def get_piplist(p):return [d.project_name for d in pkg_resources.working_set]#获取llm用于提供AI交互
ollama ChatOllama(modelconfig_data[hai][model],base_urlconfig_data[hai][base_url])db_user config_data[database][db_user]
db_password config_data[database][db_password]
db_host config_data[database][db_host]
db_port config_data[database][db_port]
db_name config_data[database][db_name]
# 获得schema
def get_schema(db):schema mysql_db.get_table_info()return schema
def getResult(content):global mysql_db# 数据库连接mysql_db SQLDatabase.from_uri(fmysqlmysqlconnector://{db_user}:{db_password}{db_host}:{db_port}/{db_name})# 获得 数据库中表的信息#mysql_db_schema mysql_db.get_table_info()#print(mysql_db_schema)template 基于下面提供的数据库schema, 根据用户提供的要求编写sql查询语句,要求尽量使用最优sql,每次查询都是独立的问题不要收到其他查询的干扰:{schema}Question: {question}只返回sql语句不要任何其他多余的字符例如markdown的格式字符等:如果有异常抛出不要显示出来prompt ChatPromptTemplate.from_template(template)text_2_sql_chain (RunnablePassthrough.assign(schemaget_schema)| prompt| ollama| StrOutputParser())# 执行langchain 获取操作的sql语句sql text_2_sql_chain.invoke({question: content})print(sql)#连接数据库进行数据的获取# 配置连接信息conn mysql.connector.connect(hostdb_host,portdb_port,userdb_user,passworddb_password,databasedb_name)# 创建游标对象cursor conn.cursor()# 查询数据cursor.execute(sql.strip().strip(sql))info cursor.fetchall()# 打印结果#for row in info:#print(row)# 关闭游标和数据库连接cursor.close()conn.close()#根据数据生成对应的图表print(info)template2 以下提供当前python环境已经安装的pip包集合:{installed_packages};请根据data提供的信息生成是一个适合展示数据的plotly的图表的可执行代码,要求如下1.不要导入没有安装的pip包代码2.如果存在多个数据类别尽量使用柱状图循环生成时图表中对不同数据请使用不同颜色区分3.图表要生成图片格式,保存在当前文件夹下即可名称固定为图表.png,4.我需要您生成的代码是没有 Markdown 标记的纯粹的编程语言代码。5.生成的代码请注意将所有依赖包提前导入 6.不要使用iplot等需要特定环境的代码7.请注意数据之间是否可以转换使用正确的代码8.不需要生成注释data:{data}这是查询的sql语句与文本:sql:{sql}question:{question}返回数据要求:仅仅返回python代码不要有额外的字符prompt2 ChatPromptTemplate.from_template(template2)data_2_code_chain (RunnablePassthrough.assign(installed_packagesget_piplist)| prompt2| ollama| StrOutputParser())# 执行langchain 获取操作的sql语句code data_2_code_chain.invoke({data: info,sql:sql,question:content})#删除数据两端可能存在的markdown格式print(code.strip().strip(python))exec(code.strip().strip(python))return {code:code,SQL:sql,Query:info}# 构建展示页面
import streamlit
# 设置页面标题
streamlit.title(AI驱动的数据库TDSQL-C 电商可视化分析小助手)
# 设置对话框
content streamlit.text_area(请输入想查询的信息, value, max_charsNone)
# 提问按钮 # 设置点击操作
if streamlit.button(提问):#开始ai及langchain操作if content:#进行结果获取result getResult(content)#显示操作结果streamlit.write(AI生成的SQL语句:)streamlit.write(result[SQL])streamlit.write(SQL语句的查询结果:)streamlit.write(result[Query])streamlit.write(plotly图表代码:)streamlit.write(result[code])# 显示图表内容生成在getResult中streamlit.image(./图表.png, width800)
运行和效果
打开终端执行以下命令 streamlit run text2sql2plotly.py 页面效果图
踩坑经验
完成所有依赖安装后运行发现出现下面报错这个时候就需要安装下下面
未找到模块 pip install setuptools 未找到表
这里出现未找到表其实是大模型幻觉问题多运行几次就好
输出效果
输入查询一下每类商品的名称和对应的销售总额
测试效果 整体体验下来还是非常不错的。可以看到腾讯云TDSQL在线创建非常方便快捷完全不用再像当年一样要在服务器创建数据库。 同时部署HAI算力服务器也非常简单完成应用运行后直接就是一句话就能帮我们统计需要的图表数据真正开始智能化方向发展。 AI驱动的数据库TDSQL-C 电商可视化分析小助手值得拥有感兴趣的小伙伴快来体验吧