【AI驱动 TDSQL-C Serverless 数据库技能实战营】AI赋能电商数据管理 ...

打印 上一主题 下一主题

主题 1012|帖子 1012|积分 3036

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        随着大数据时代的到来,数据量的激增对数据库系统提出了更高的要求。传统的数据库管理方式已经难以满足现代企业对于机动性、可扩展性以及本钱控制的需求。在此背景下,Serverless架构因其按需分配资源、自动扩展等特性而受到广泛关注。本文将探究怎样使用TDSQL-C Serverless数据库,在电阛阓景下实现数据的高效管理和智能分析,并通过可视化手段展示数据分析效果,为企业决策提供有力支持。
        AI技能的应用极大地提升了运营服从,并为电商行业带来了个性化推荐、用户举动分析、库存管理和市场趋势猜测等关键范畴的数据分析本领,在这种背景下,构建一个高效、可靠的AI电商数据分析系统显得尤为关键。本文旨在详细引导开发者怎样使用腾讯云的高性能应用服务HAI和TDSQL-C MySQL Serverless版构建AI电商数据分析系统。HAI作为一个面向AI和科学盘算的GPU应用服务产品,提供了强大的盘算本领,使得复杂AI模子如大型语言模子(LLM)的快速部署和运行成为大概,进而支持自然语言处置处罚和图像生成等高级任务。与此同时,TDSQL-C MySQL版作为一款云原生关系型数据库,其100%的MySQL兼容性,以及极致的弹性、高性能和高可用性,使其成为电商业务中处置处罚海量数据存储和查询的理想选择。
        本文将通过Python编程语言和基于Langchain的框架,逐步引导开发者完成系统的构建和部署,详细涵盖从数据采集、预处置处罚、分析到终极效果的可视化展示等各个环节,帮助读者深入理解如安在电商环境中运用AI技能和Serverless数据库实现数据驱动的业务增长。
1、环境搭建

1.1、购买 TDSQL-C Mysql Serverless 实例

        访问腾讯云官网申请 TDSQL-C Mysql 服务器,点击立即选购。

根据图表选择特定服务器,选定的服务器为 serverless 的服务器,其他信息参考下图选择,网络下拉框如果为空的话,可以点击下面的新建私有网络链接创建。

在新建私有网络页面,点击新建。


新建网络时,填入两个名称和选择可用区即可,其他可以保持默认,配置完毕后,回到购买页面,根据需求选择计费方式。

选好计费方式后,点击下一步,进入数据库配置页面。

此页面配置数据库的root口令和端口,大小写选择不敏感,勾选协议条款,点击立即购买。


费用明细提示,点击立即购买。

购买后提示集群创建乐成,点击前往管理页面。

在管理页面上方,选择区域,选择背面有数字的区域。

选好后开启外网。

点击授权并创建。

开启乐成后,会显示主机域名和端口号,点击页面右上方的登录按钮,登录数据库。

在登录页面中,输入数据库的账号口令。

登录乐成后,点击新建数据库,数据库名称填入shop,点击确定。

从左上角的数据库列表中,选择刚创建的shop数据库。

从页面上方的菜单中,选择SQL,打开SQL实行窗口,将准备好的SQL粘贴进去,点击实行,完成数据库初始化,SQL如下:
  1. CREATE TABLE `ecommerce_sales_stats` (
  2.   `category_id` int NOT NULL COMMENT '分类ID(主键)',
  3.   `category_name` varchar(100) NOT NULL COMMENT '分类名称',
  4.   `total_sales` decimal(15,2) NOT NULL COMMENT '总销售额',
  5.   `steam_sales` decimal(15,2) NOT NULL COMMENT 'Steam平台销售额',
  6.   `offline_sales` decimal(15,2) NOT NULL COMMENT '线下实体销售额',
  7.   `official_online_sales` decimal(15,2) NOT NULL COMMENT '官方在线销售额',
  8.   PRIMARY KEY (`category_id`)
  9. ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 COMMENT='电商分类销售统计表';
  10. 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);
  11. CREATE TABLE `users` (
  12.   `user_id` int NOT NULL AUTO_INCREMENT COMMENT '用户ID(主键,自增)',
  13.   `full_name` varchar(100) NOT NULL COMMENT '用户全名',
  14.   `username` varchar(50) NOT NULL COMMENT '用户名',
  15.   `email` varchar(100) NOT NULL COMMENT '用户邮箱',
  16.   `password_hash` varchar(255) NOT NULL COMMENT '用户密码的哈希值',
  17.   `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  18.   `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  19.   `is_active` tinyint(1) DEFAULT '1' COMMENT '是否激活',
  20.   PRIMARY KEY (`user_id`),
  21.   UNIQUE KEY `email` (`email`)
  22. ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4  COMMENT='用户表';
  23. INSERT INTO `users` VALUES (1,'张伟','zhangwei','zhangwei@example.com','hashed_password_1','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(2,'李娜','lina','lina@example.com','hashed_password_2','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(3,'王芳','wangfang','wangfang@example.com','hashed_password_3','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(4,'刘洋','liuyang','liuyang@example.com','hashed_password_4','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(5,'陈杰','chenjie','chenjie@example.com','hashed_password_5','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(6,'杨静','yangjing','yangjing@example.com','hashed_password_6','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(7,'赵强','zhaoqiang','zhaoqiang@example.com','hashed_password_7','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(8,'黄丽','huangli','huangli@example.com','hashed_password_8','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(9,'周杰','zhoujie','zhoujie@example.com','hashed_password_9','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(10,'吴敏','wumin','wumin@example.com','hashed_password_10','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(11,'郑伟','zhengwei','zhengwei@example.com','hashed_password_11','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(12,'冯婷','fengting','fengting@example.com','hashed_password_12','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(13,'蔡明','caiming','caiming@example.com','hashed_password_13','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(14,'潘雪','panxue','panxue@example.com','hashed_password_14','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(15,'蒋磊','jianglei','jianglei@example.com','hashed_password_15','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(16,'陆佳','lujia','lujia@example.com','hashed_password_16','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(17,'邓超','dengchao','dengchao@example.com','hashed_password_17','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(18,'任丽','renli','renli@example.com','hashed_password_18','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(19,'彭涛','pengtao','pengtao@example.com','hashed_password_19','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(20,'方圆','fangyuan','fangyuan@example.com','hashed_password_20','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(21,'段飞','duanfei','duanfei@example.com','hashed_password_21','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(22,'雷鸣','leiming','leiming@example.com','hashed_password_22','2024-08-18 04:07:18','2024-08-18 04:07:18',1),(23,'贾玲','jialing','jialing@example.com','hashed_password_23','2024-08-18 04:07:18','2024-08-18 04:07:18',1);
  24. CREATE TABLE `orders` (
  25.   `order_id` int NOT NULL AUTO_INCREMENT,
  26.   `user_id` int DEFAULT NULL,
  27.   `order_amount` decimal(10,2) DEFAULT NULL,
  28.   `order_status` varchar(20) DEFAULT NULL,
  29.   `order_time` datetime DEFAULT NULL,
  30.   PRIMARY KEY (`order_id`)
  31. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ;
  32. 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');
复制代码

革新数据库,查看导入的数据。

1.2、部署HAI高算力服务器

打开官网地点,点击立即使用。

在算力管理中,点击新建。

根据图中所示进行选择,区域选择就近的即可。

选择符合自己的算力方案,输入实例名称,勾选协议,点击立即购买。

需要等待几分钟,才能完成服务器创建,创建完成后点击实例名称。

点击端口配置。

在端口列表中,确认6399处于开启状态。

今后处获得公网IP。

欣赏器地点栏中输入“公网IP:6399”,打开页面如下图所示,表现正常。

1.3、本地python环境搭建
访问python官网,根据自己的操作系统选择对应的下载包,我的是windows11-64位,因此选择如下图。

下载完成后,双击安装,如下图所示,安装完成后自动参加环境变量。

python安装完成后,打开下令行窗口,依次使用如下下令,安装依赖包。
  1. pip install openai 
  2. pip install langchain 
  3. pip install langchain-core 
  4. pip install langchain-community 
  5. pip install mysql-connector-python 
  6. pip install streamlit 
  7. pip install plotly 
  8. pip install numpy
  9. pip install pandas
  10. pip install watchdog
  11. pip install matplotlib
  12. pip install kaleido
复制代码

2、应用构建


2.1、搭建项目框架

在自己的windows电脑上,新创建一个workspace目录,打开vscode开发工具,如果没有安装请自行下载安装,打开vscode后,在vscode中打开创建的workspace文件夹。

2.2、TDSQL-C 数据库&HAI云算力配置

新创建配置文件config.yaml,文件内容如下:
  1. database: 
  2.   db_user: root
  3.   db_password: tencent_TDSQL
  4.   db_host: sh-cynosdbmysql-grp-9d8prc9o.sql.tencentcdb.com
  5.   db_port: 21919
  6.   db_name: shop
  7. hai:
  8.   model: llama3.1:8b
  9.   base_url: http://82.156.229.112:6399
复制代码


2.3、应用开发

新创建python文件,文件名为text2sql2plotly.py,将以下代码复制进去。
  1. from langchain_community.utilities import SQLDatabase
  2. from langchain_core.prompts import ChatPromptTemplate
  3. from langchain_community.chat_models import ChatOllama
  4. from langchain_core.output_parsers import StrOutputParser
  5. from langchain_core.runnables import RunnablePassthrough
  6. import yaml
  7. import mysql.connector
  8. from decimal import Decimal
  9. import plotly.graph_objects as go
  10. import plotly
  11. import pkg_resources
  12. import matplotlib
  13. yaml_file_path = 'config.yaml'
  14. with open(yaml_file_path, 'r') as file:
  15.     config_data = yaml.safe_load(file)
  16. #获取所有的已安装的pip包
  17. def get_piplist(p):
  18.     return [d.project_name for d in pkg_resources.working_set]
  19. #获取llm用于提供AI交互
  20. ollama = ChatOllama(model=config_data['hai']['model'],base_url=config_data['hai']['base_url'])
  21. db_user = config_data['database']['db_user']
  22. db_password = config_data['database']['db_password']
  23. db_host = config_data['database']['db_host']
  24. db_port= config_data['database']['db_port']
  25. db_name = config_data['database']['db_name']
  26. # 获得schema
  27. def get_schema(db):
  28.     
  29.     schema = mysql_db.get_table_info()
  30.     return schema
  31. def getResult(content):
  32.     global mysql_db
  33.     # 数据库连接
  34.     mysql_db = SQLDatabase.from_uri(f"mysql+mysqlconnector://{db_user}:{db_password}@{db_host}:{db_port}/{db_name}")
  35.     # 获得 数据库中表的信息
  36.     #mysql_db_schema = mysql_db.get_table_info()
  37.     #print(mysql_db_schema)
  38.     template = """基于下面提供的数据库schema, 根据用户提供的要求编写sql查询语句,要求尽量使用最优sql,每次查询都是独立的问题,不要收到其他查询的干扰:
  39.     {schema}
  40.     Question: {question}
  41.     只返回sql语句,不要任何其他多余的字符,例如markdown的格式字符等:
  42.     如果有异常抛出不要显示出来
  43.     """
  44.     prompt = ChatPromptTemplate.from_template(template)
  45.     text_2_sql_chain = (
  46.                 RunnablePassthrough.assign(schema=get_schema)
  47.                 | prompt
  48.                 | ollama
  49.                 | StrOutputParser()
  50.         )
  51.     
  52.     # 执行langchain 获取操作的sql语句
  53.     sql = text_2_sql_chain.invoke({"question": content})
  54.     print(sql)
  55.     #连接数据库进行数据的获取
  56.     # 配置连接信息
  57.     conn = mysql.connector.connect(
  58.     
  59.         host=db_host,
  60.         port=db_port,
  61.         user=db_user,
  62.         password=db_password,
  63.         database=db_name
  64.     )
  65.     # 创建游标对象
  66.     cursor = conn.cursor()
  67.     # 查询数据
  68.     cursor.execute(sql.strip("```").strip("```sql"))
  69.     info = cursor.fetchall()
  70.     # 打印结果
  71.     #for row in info:
  72.         #print(row)
  73.     # 关闭游标和数据库连接
  74.     cursor.close()
  75.     conn.close()
  76.     #根据数据生成对应的图表
  77.     print(info)
  78.     template2 = """
  79.     以下提供当前python环境已经安装的pip包集合:
  80.     {installed_packages};
  81.     请根据data提供的信息,生成是一个适合展示数据的plotly的图表的可执行代码,要求如下:
  82.         1.不要导入没有安装的pip包代码
  83.         2.如果存在多个数据类别,尽量使用柱状图,循环生成时图表中对不同数据请使用不同颜色区分,
  84.         3.图表要生成图片格式,保存在当前文件夹下即可,名称固定为:图表.png,
  85.         4.我需要您生成的代码是没有 Markdown 标记的,纯粹的编程语言代码。
  86.         5.生成的代码请注意将所有依赖包提前导入, 
  87.         6.不要使用iplot等需要特定环境的代码
  88.         7.请注意数据之间是否可以转换,使用正确的代码
  89.         8.不需要生成注释
  90.     data:{data}
  91.     这是查询的sql语句与文本:
  92.     sql:{sql}
  93.     question:{question}
  94.     返回数据要求:
  95.     仅仅返回python代码,不要有额外的字符
  96.     """
  97.     prompt2 = ChatPromptTemplate.from_template(template2)
  98.     data_2_code_chain = (
  99.                 RunnablePassthrough.assign(installed_packages=get_piplist)
  100.                 | prompt2
  101.                 | ollama
  102.                 | StrOutputParser()
  103.         )
  104.     
  105.     # 执行langchain 获取操作的sql语句
  106.     code = data_2_code_chain.invoke({"data": info,"sql":sql,'question':content})
  107.     
  108.     #删除数据两端可能存在的markdown格式
  109.     print(code.strip("```").strip("```python"))
  110.     exec(code.strip("```").strip("```python"))
  111.     return {"code":code,"SQL":sql,"Query":info}
  112. # 构建展示页面
  113. import streamlit
  114. # 设置页面标题
  115. streamlit.title('AI驱动的数据库TDSQL-C 电商可视化分析小助手')
  116. # 设置对话框
  117. content = streamlit.text_area('请输入想查询的信息', value='', max_chars=None)
  118. # 提问按钮 # 设置点击操作
  119. if streamlit.button('提问'):
  120.     #开始ai及langchain操作
  121.     if content:
  122.         #进行结果获取
  123.         result = getResult(content)
  124.         #显示操作结果
  125.         streamlit.write('AI生成的SQL语句:')
  126.         streamlit.write(result['SQL'])
  127.         streamlit.write('SQL语句的查询结果:')
  128.         streamlit.write(result['Query'])
  129.         streamlit.write('plotly图表代码:')
  130.         streamlit.write(result['code'])
  131.         # 显示图表内容(生成在getResult中)
  132.     streamlit.image('./图表.png', width=800) 
复制代码
2.3、运行测试

打开终端实行以下下令。
  1. streamlit run text2sql2plotly.py
复制代码
运行乐成后,控制台会有以下提示。

此时会自动打开欣赏器页面。

可以在输入框中输入自己想要查看的效果,好比:


  • 查询每个用户账号的名称和长度;
  • 查询一下每类商品的名称和对应的销售总额;
  • 查询出用户赵强的已付出订单的总额和未付出订单的总额数据。
系统会自动进行分析汇总,并生成对应的SQL,将效果展示到欣赏器中。

并且最后会对数据进行图表展示。

3、总结

        遥望当年,想对电商数据进行分析时,需要购买服务器、设计开发数据分析系统、绞尽脑汁编写SQL,这是需要一个团队才能完成的工作,现在有了AI和云的技能,一个平凡开发职员半天时间就可以搞定,极大的节省了本钱,极大的提高了开发服从。
        AI驱动的TDSQL-C Serverless数据库技能在电商数据分析中的应用,不但降服了传统方法中的很多范围性,还为电商企业带来了新的发展机遇。将来,随着技能的不断进步,我们有来由相信,更多创新性的办理方案将会涌现出来,进一步推动电商行业的数字化转型与发展。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表