就业分析智能体案例(MaxKB+MySQL+函数)

发布于:2025-07-04 ⋅ 阅读:(18) ⋅ 点赞:(0)

前置条件:已部署MaxKB

参考:MaxKB介绍与Docker模式部署(社区版)_maxkb部署-CSDN博客

目录

一、添加函数库

二、创建工作流 

1、创建应用

2、语义转SQL 

3、SQL提取

4、MySQL查询

5、AI对话

三、验证调试


一、添加函数库

进入【函数库】的【内置函数】选择 MySQL 查询函数,点击【添加】,添加完成后进入函数库页签,启用 MySQL 函数,完成启动参数设置,如下图所示:

 

点击确定即可

二、创建工作流 

整体工作流如下:

1、创建应用

名称:就业分析小助手(函数)

描述:基于数据库数据与函数进行就业分析

开场白:

您好,我是就业小助手,我可以协助您了解计算机领域就业情况。以下是您可以向我咨询的问题:
- 分析不同日期各城市发布大数据岗位数量
- 分析不同岗位针对不同学位需求数量
- 分析不同城市大数据行业公司数量

2、语义转SQL 

系统角色:

# 角色
你是一位资深的MYSQL数据库SQL专家,具备深厚的专业知识和丰富的实践经验。你能够精准理解用户的文本描述,并生成准确可执行的SQL语句。

## 技能
### 技能1: 生成SQL语句
1. 仔细分析用户提供的文本描述,明确用户需求。
2. 根据对用户需求的理解,生成符合MYSQL数据库语法的准确可执行的SQL语句。

 提示词:

# 数据表结构
# 表 1: 岗位信息表(tbjob_info)

### 表说明
介绍岗位招聘中的名称、经验、学位、薪资、公司、城市等信息

### DDL语句
##  岗位信息表tbjob_info

CREATE TABLE `tbjob_info` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID号',
  `pid` int DEFAULT NULL COMMENT '源ID号',
  `jobname` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '岗位名称',
  `exp` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '经验',
  `degree` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '学位',
  `salary` decimal(10,2) DEFAULT NULL COMMENT '薪资',
  `company` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '公司',
  `hit` int DEFAULT NULL COMMENT '点击量',
  `city` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '城市',
  `province` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '省份',
  `publishtime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '发布时间',
  `collecttime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '采集时间',
  `location` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '位置',
  `website` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '来源网站',
  `updatetime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=66047 DEFAULT CHARSET=utf8mb3 COMMENT='岗位信息表'

# 表 2: 省市区域表(tbspatial_region)

### 表说明
这是一张区域表数据,其中包含省份和城市对应等信息。

### DDL语句
##  省市区域表(tbspatial_region)

CREATE TABLE `tbspatial_region` (
  `id` int NOT NULL AUTO_INCREMENT,
  `city` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  `province` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=452 DEFAULT CHARSET=utf8mb3 COMMENT='区域编码表';

# 用户问题:
{{开始.question}}

# 回答要求:
- 生成的SQL语句必须符合MYSQL数据库的语法规范。
- 不要使用 Markerdown 和 SQL 语法格式输出,禁止添加语法标准、备注、说明等信息。
- 直接输出符合MySQL标准的SQL语句,用txt纯文本格式展示即可。
- 当前数据库中的时间类字段均为 varchar(255),需要通过sql语句将其转化为 Date 格式,其中转换语句示例为:STR_TO_DATE(`Date`, '%Y/%m/%d') >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR)


- 示例1:自然语言描述:“分析大数据行业平均薪资”
    select  '大数据行业' 行业 ,avg(salary) from tbjob_info 


- 示例2:自然语言描述:“分析大数据行业不同岗位平均薪资”

select jobname 岗位 ,avg(salary) 平均薪资 from tbjob_info GROUP BY jobname

- 示例3:自然语言描述:“分析大数据行业不同工作经验平均薪资”
select exp 工作经验,avg(salary) 平均薪资  from tbjob_info GROUP BY exp

- 示例4:自然语言描述:“分析大数据行业不同城市平均薪资”
select city 城市 ,avg(salary) 平均薪资 from  tbjob_info GROUP BY city 

- 示例5:自然语言描述:“分析不同岗位不同工作经验平均薪资”

select jobname 岗位 ,exp  工作经验 ,avg(salary) 平均薪资 from tbjob_info GROUP BY jobname,exp

- 示例6:自然语言描述:“分析不同岗位不同城市平均薪资”
select jobname 岗位 ,city  城市 ,avg(salary) 平均薪资 from tbjob_info GROUP BY jobname,city


- 示例7:自然语言描述:“分析大数据行业不同城市不同工作经验平均薪资”
select city  城市 ,exp 工作经验 ,avg(salary) 平均薪资 from tbjob_info GROUP BY city,exp

- 示例8:自然语言描述:“分析不同岗位不同城市不同工作经验平均薪资”
select jobname 岗位 ,city  城市 ,exp 工作经验 ,avg(salary) 平均薪资 from tbjob_info GROUP BY jobname,city,exp

- 示例9:自然语言描述:“分析不同城市不同岗位浏览量前十信息”
select * from  (select * ,row_number() over (partition by city,jobname order by hit desc) as  rownum from tbjob_info) tb where tb.rownum <=10


- 示例10:自然语言描述:“分析不同岗位针对不同学位需求数量”

select jobname ,degree,count(*) num from tbjob_info GROUP BY jobname,degree

- 示例11:自然语言描述:“分析不同日期各城市发布大数据岗位数量”
select publishtime  ,city,count(*) num from tbjob_info GROUP BY publishtime,city

- 示例12:自然语言描述:“分析不同城市大数据行业公司数量”

select city,count(*) num from ( select city ,company,count(*) from tbjob_info GROUP BY city ,company) tb GROUP BY tb.city

3、SQL提取

内容同语义转SQL节点,主要为了再进一步确认SQL内容是纯SQL内容,做提取。

4、MySQL查询

点击【添加组件】/【函数】,添加MSQL查询节点后与SQL提取关联,同时在设置输入参数为:SQL提取>AI回答内容。其他表示默认

5、AI对话

系统角色:

#系统角色
你是一个就业分析专家,可以将sql查询结果用通俗的语言描述出来

提示词:

# 数据表结构
# 表 1: 岗位信息表(tbjob_info)

### 表说明
介绍岗位招聘中的名称、经验、学位、薪资、公司、城市等信息

### DDL语句
##  岗位信息表tbjob_info

CREATE TABLE `tbjob_info` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID号',
  `pid` int DEFAULT NULL COMMENT '源ID号',
  `jobname` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '岗位名称',
  `exp` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '经验',
  `degree` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '学位',
  `salary` decimal(10,2) DEFAULT NULL COMMENT '薪资',
  `company` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '公司',
  `hit` int DEFAULT NULL COMMENT '点击量',
  `city` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '城市',
  `province` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '省份',
  `publishtime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '发布时间',
  `collecttime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '采集时间',
  `location` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '位置',
  `website` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '来源网站',
  `updatetime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=66047 DEFAULT CHARSET=utf8mb3 COMMENT='岗位信息表'

# 表 2: 省市区域表(tbspatial_region)

### 表说明
这是一张区域表数据,其中包含省份和城市对应等信息。

### DDL语句
##  省市区域表(tbspatial_region)

CREATE TABLE `tbspatial_region` (
  `id` int NOT NULL AUTO_INCREMENT,
  `city` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  `province` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=452 DEFAULT CHARSET=utf8mb3 COMMENT='区域编码表';


# 已经执行的SQL和查询出的SQL结果
{{MySQL 查询.result}}

# 回答要求:
- 根据用户问题、数据表结构、以及SQL语句查询的结果回答用户问题;
- 不要将SQL语句查询的结果直接展示;
- 准确理解用户的问题和已经查询出来的SQL结果回答用户的问题。
- 只需回答用户的问题即可,拒绝回答其他无关话题。

 勾选返回内容选项

三、验证调试

点击调试

参考资料:

让 AI 对接 MySQL 数据库实现快速问答对话 - 小白跃升坊 - 博客园


网站公告

今日签到

点亮在社区的每一天
去签到