【腾讯云】AI驱动TDSQL-C Serveress 数据库技能实战营-如何是从0到1体验电 ...

打印 上一主题 下一主题

主题 1019|帖子 1019|积分 3057

接待来到《小5讲堂》
这是《腾讯云》系列文章,每篇文章将以博主理解的角度睁开讲授。
温馨提示:博主能力有限,理解水平有限,如有不对之处望指正!
  

目次



  • 配景
  • 结果图
  • 流程图
  • 创建数据库


    • 基本信息
    • 数据库配置
    • 设置密码
    • 控制台
    • 开启公网访问
    • 登录管理工具
    • 新建数据库
    • 新建表
    • 表和数据SQL

  • 摆设算力服务器


    • 基本信息
    • 选择应用
    • 应用详情
    • 检察HAI

  • 本地python环境搭建


    • 下载地址
    • 安装依赖

  • 构建应用


    • 搭建项目框架
    • 配置文件代码
    • 具体说明
    • 应用开发代码
    • 运行和结果

  • 踩坑经验


    • 未找到模块
    • 未找到表

  • 输出结果
配景

AI 技能的应用极大地提升了运营服从,并为电商行业带来了个性化推荐、用户举动分析、库存管理和市场趋势预测等关键领域的数据分析能力,在这种配景下,构建一个高效、可靠的AI电商数据分析体系显得尤为关键。
基于这个配景下,如何使用腾讯云的高性能应用服务 HAITDSQL-C MySQL Serverless 版构建 AI电商数据分析体系。HAI作为一个面向AI和科学计算的GPU应用服务产物,提供了强大的计算能力,使得复杂AI模型如LLM的快速摆设和运行成为大概,进而支持自然语言处置惩罚和图像天生等高级使命。与此同时,TDSQL-C MySQL版作为一款云原生关系型数据库,其100%的MySQL兼容性,以及极致的弹性、高性能和高可用性,使其成为电商业务中处置惩罚海量数据存储和查询的抱负选择。
让我们一起探索下,TDSQL数据库是如何与HAI联合通过一句话就能输出统计目标图?
下面将通过 Python 编程语言和基于 Langchain 的框架,渐渐完成体系的构建和摆设。
结果图

下面展示的就是本次完成摆设后网页端输出的统计数据结果图。

流程图


创建数据库

基本信息

云原生数据库 TDSQL-C(Cloud 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
  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');
复制代码

摆设算力服务器

访问腾讯云 HAI 官网:https://cloud.tencent.com/product/hai
控制台:https://console.cloud.tencent.com/hai/instance?rid=8
基本信息

高性能应用服务(Hyper Application Inventor,HAI)是一款面向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)

双击安装包安装python,window版本需要勾选add python to PATH

安装依赖

运行pip命令安装依赖包,请分别运行以下pip命令逐个安装
  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
复制代码
如果上面安装速率比较慢,那么可以思量使用国内镜像。
这里要特别注意,是小写 -i,不能是大写。
  1. 国内比较速度相对比较快的PyPI源库
  2. 1、清华大学:https://pypi.tuna.tsinghua.edu.cn/simple(推荐)
  3. 2、阿里云:http://mirrors.aliyun.com/pypi/simple
  4. 3、豆瓣:http://pypi.douban.com/simple
  5. ===例子===
  6. pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
下面是博主使用清华大学的镜像
  1. pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple
  2. pip install langchain -i https://pypi.tuna.tsinghua.edu.cn/simple
  3. pip install langchain-core -i https://pypi.tuna.tsinghua.edu.cn/simple
  4. pip install langchain-community -i https://pypi.tuna.tsinghua.edu.cn/simple
  5. pip install mysql-connector-python  -i https://pypi.tuna.tsinghua.edu.cn/simple
  6. pip install streamlit  -i https://pypi.tuna.tsinghua.edu.cn/simple
  7. pip install plotly -i https://pypi.tuna.tsinghua.edu.cn/simple(用清华镜像可以,并且注意是小写i,不是大写I)
  8. pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
  9. pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
  10. pip install watchdog -i https://pypi.tuna.tsinghua.edu.cn/simple
  11. pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
  12. pip install kaleido -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
构建应用

搭建项目框架

1.新建名为 workspace 文件夹进行生存项目代码
2.在项目文件夹(workspace)中新建配置文件 config.yaml
3.在项目文件夹(workspace)中新建应用主文件 text2sql2plotly.py
配置文件代码

  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
复制代码


  • database配置说明
数据库读写示例:https://console.cloud.tencent.com/cynosdb/mysql/ap-shanghai/cluster/cynosdbmysql-58ufm8lc/detail



  • hai配置说明

具体说明

这里重要分为 database 配置 和 hai 的配置


  • database 的配置详解:
  • db_user: 数据库账号,默以为 root
  • db_password: 创建数据库时的密码
  • db_host: 数据库连接地址
  • db_port: 数据库公网端口
  • db_name 创建的数据库名称,如果按手册来默认是 shop
  • hai 配置详解:
  • model 使用的大模型
  • base_url 模型暴露的 api 地址,是公网 ip 和端口的组合,默认 llama端口是6399
应用开发代码

复制下面代码,可以不用进行任何代码的改动,直接运行就可以使用。
  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)
复制代码
运行和结果

打开终端执行以下命令
   streamlit run text2sql2plotly.py
  

页面结果图


踩坑经验

完成所有依赖安装后,运行发现出现下面报错,这个时候就需要安装下下面
未找到模块

   pip install setuptools
  


未找到表

这里出现未找到表,其实是大模型幻觉问题,多运行几次就好

输出结果

输入:查询一下每类商品的名称和对应的销售总额


  • 测试结果


   整体体验下来,还是非常不错的。可以看到腾讯云TDSQL在线创建非常方便快捷,完全不用再像当年一样,要在服务器创建数据库。
同时摆设HAI算力服务器也非常简单,完成应用运行后,直接就是一句话就能帮我们统计需要的图表数据,真正开始智能化方向发展。
AI驱动的数据库TDSQL-C 电商可视化分析小助手,值得拥有,感兴趣的小伙伴,快来体验吧!

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

知者何南

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