文章详细介绍了如何使用Qwen Code Skills功能构建数据库查询智能体。通过COVID-19数据分析案例,展示了创建自定义Skill的完整流程,包括编写SKILL.md配置文件和Python脚本,实现数据查询、分析和自动生成报表页面。开发者可借此将专业知识打包成可发现技能,让大模型高效执行特定任务。


一、Qwen Code Skills

Qwen Code 是一个面向开发者的智能编码助手,类似于 Claude Code,随着 Claude Code 推出 Skills 功能, Qwen Code 也迅速集成了相关功能,通过 Skills 可以将专业知识打包成可发现的功能。每个技能由一个 SKILL.md 文件组成,其中包含模型在相关时可以加载的指令,以及可选的支持文件如脚本和模板。

本文将基于 Qwen Code Skills 功能构建一个数据库查询Skill,并基于该 Skill 实现数据方面的问答、分析、以及能够根据数据自动生成分析页面。实验效果如下所示:

其中实验使用数据会在下方实验时说明

技能调用问答:

技能调用、分析生成报表:

生成效果:

在开始实验前,先简单介绍下 Qwen Code Skills 的使用过程。

1.1 Qwen Code Skills 使用介绍

官方文档地址:

https://qwenlm.github.io/qwen-code-docs/zh/users/features/skills/

Skills 功能目前是是实验阶段,需要更新至最新版本的 Qwen Code ,并且启动时使用 --experimental-skills 开启 Skills 功能,例如:

qwen --experimental-skills

Skills 技能可以放在个人名下或项目名下,个人技能在所有的项目中都可以使用用,技能信息存储在 ~/.qwen/skills/ 中,例如:

mkdir -p ~/.qwen/skills/my-skill-name

项目技能可以与团队共享,技能信息存储在项目内的 .qwen/skills/ 中,例如:

mkdir -p .qwen/skills/my-skill-name

在技能目录下必须要有 SKILL.md 描述技能,示例模版如下:

---name: your-skill-namedescription: 简要描述此技能的作用以及何时使用它--- # 你的技能名称 ## 指令为 Qwen Code 提供清晰、逐步的指导。

其中 namedescription 不可为空!Qwen Code 会验证其中的内容。

额外文件支持,可以根据具体需要添加:

my-skill/├── SKILL.md (必需)├── reference.md (可选文档)├── examples.md (可选示例)├── scripts/│   └── helper.py (可选工具)└── templates/    └── template.txt (可选模板)

二、构建自定义 Skill 数据分析智能体

2.1 使用数据说明

其中分析数据采用数据采用 COVID-19 测试案例,包括:美国 2021-01-28 号,各个县county的新冠疫情累计案例信息,包括确诊病例和死亡病例,数据格式如下所示:

date(日期),county(县),state(州),fips(县编码code),cases(累计确诊病例),deaths(累计死亡病例)2021-01-28,Pike,Alabama,01109,2704,352021-01-28,Randolph,Alabama,01111,1505,372021-01-28,Russell,Alabama,01113,3675,162021-01-28,Shelby,Alabama,01117,19878,1412021-01-28,St. Clair,Alabama,01115,8047,1472021-01-28,Sumter,Alabama,01119,925,282021-01-28,Talladega,Alabama,01121,6711,1142021-01-28,Tallapoosa,Alabama,01123,3258,1122021-01-28,Tuscaloosa,Alabama,01125,22083,2832021-01-28,Walker,Alabama,01127,6105,1852021-01-28,Washington,Alabama,01129,1454,27

下载地址如下:

https://github.com/BIXUECHAO/covid-19-tes-data/blob/main/us-covid19-counties.csv

创建数据表,并导入上述数据:

CREATE TABLE `us_covid19_counties` (  `date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '日期',  `county` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '县',  `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '州',  `fips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '县编码code',  `cases` int DEFAULT NULL COMMENT '累计确诊病例',  `deaths` int DEFAULT NULL COMMENT '累计死亡病例') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='COVID-19 案例';

2.2 构建 Skill

在项目的目录下创建 .qwen/skills/db 技能包,整体结构如下所示:

.qwen/skills/db/├── SKILL.md├── scripts/│   └── run_sql.py
```![](http://cdn.zhipoai.cn/a943b802.jpg)

其中 `scripts/run_sql.py` 用于动态查询数据库中的数据,接收一个`SQL`参数,通过 `bash` 指令运行。

#### 2.2.1 编写 SKILL.md

主要描述出技能的能力,这里数据查询的场景,可以放入表结构,如果表特别多的情况下,也可以写一个 `scripts` 脚本动态获取。另外为了更好的让大模型处理,最好提供调用脚本的指令示例。

内容示例如下所示,注意 `Python` 路径修改为你电脑的实际路径,如果配置了环境变量可直接改为 `python -u scripts/run_sql.py --sql "{sql}"`:

```plaintext
---name: db-skilldescription: COVID-19数据查询, 包括:美国 2021-01-28 号,各个县county的新冠疫情累计案例信息,包括确诊病例和死亡病例---# 数据查询## 数据表结构``sqlCREATE TABLE `us_covid19_counties` (  `date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '日期',  `county` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '县',  `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '州',  `fips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '县编码code',  `cases` int DEFAULT NULL COMMENT '累计确诊病例',  `deaths` int DEFAULT NULL COMMENT '累计死亡病例') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='COVID-19 案例';``## 数据样例``datadate(日期),county(县),state(州),fips(县编码code),cases(累计确诊病例),deaths(累计死亡病例)2021-01-28,Pike,Alabama,01109,2704,352021-01-28,Randolph,Alabama,01111,1505,372021-01-28,Russell,Alabama,01113,3675,162021-01-28,Shelby,Alabama,01117,19878,1412021-01-28,St. Clair,Alabama,01115,8047,1472021-01-28,Sumter,Alabama,01119,925,282021-01-28,Talladega,Alabama,01121,6711,1142021-01-28,Tallapoosa,Alabama,01123,3258,1122021-01-28,Tuscaloosa,Alabama,01125,22083,2832021-01-28,Walker,Alabama,01127,6105,1852021-01-28,Washington,Alabama,01129,1454,27``## 指令运行辅助脚本:``bash# 查询天气E:\anaconda\conda\envs\openai\python.exe -u scripts/run_sql.py --sql "{sql}"``## 示例- 统计每个州的累计确诊病例``bashE:\anaconda\conda\envs\openai\python.exe -u scripts/run_sql.py --sql "SELECT state, COUNT(*) AS total_cases FROM us_covid19_counties GROUP BY state ORDER BY total_cases DESC"``
2.2.2 编写 scripts 脚本

添加一个 run_sql.py 脚本,执行用户数据的查询动作,放在 .qwen/skills/db/scripts 下,内容如下所示:

import jsonimport argparseimport pymysqldef get_conn():    return pymysql.connect(        host="127.0.0.1",        port=3306,        database="test3",        user="root",        password="root",        autocommit=True    )def query(sql):    conn = get_conn()    cursor = conn.cursor()    cursor.execute(sql)    columns = [column[0] for column in cursor.description]    res = list()    for row in cursor.fetchall():        res.append(dict(zip(columns, row)))    cursor.close()    conn.close()    return resdef run_sql(sql: str):    """执行MySQL SQL语句查询数据,一次仅能执行一句SQL!"""    try:        if not sql:            print("请传递需要查询的SQL!")            return        fetch = query(sql)        print(f"数据库查询结果: \n{fetch}")    except Exception as e:        print(f"执行SQL错误:{str(e)} ,请修正后重新发起。")if __name__ == '__main__':    parser = argparse.ArgumentParser(description="Run a SQL query.")    parser.add_argument('--sql', type=str, required=True, help='SQL query to execute')    args = parser.parse_args()    sql = args.sql    run_sql(sql)

到这 Skill 就已经添加完毕了。

2.3 使用 Skill

在当前项目目录下唤醒 Qwen Code,注意需要添加 --experimental-skills

qwen --experimental-skills


> 输入:**你当前有哪些Skills**

![](https://i-blog.csdnimg.cn/img_convert/7ef16bc9c4f20c06e8fdd42d81473194.jpeg)

> 输入:**确诊人数Top10的县是哪几个?**

![](https://i-blog.csdnimg.cn/img_convert/95b1364f431028f34d29d5dcb92d1ec2.jpeg)

> 输入:**针对确诊人数前5名的州的信息, 深度分析其各个维度,为我生成一个炫酷的报表页面**

执行过程:

![](https://i-blog.csdnimg.cn/img_convert/42408bd87a9f00d3d287045ac1d8ddd5.jpeg)

最终生成页面如下:

![](https://i-blog.csdnimg.cn/img_convert/d875a89d5f96ca078c175b9ed2a42b44.jpeg)

## 如何学习AI大模型?
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

**这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】**

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/02d70556d9d74b2b8d1d37b0dd9c6781.jpeg#pic_center)


**这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!**

![请添加图片描述](https://i-blog.csdnimg.cn/direct/20a5c416f8354cfc835c7fafdd83cf6e.png)
**第一阶段:** 从大模型系统设计入手,讲解大模型的主要方法;

**第二阶段:** 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

**第三阶段:** 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

**第四阶段:** 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

**第五阶段:** 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

**第六阶段:** 以SD多模态大模型为主,搭建了文生图小程序案例;

**第七阶段:** 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

## 100套AI大模型商业化落地方案

![请添加图片描述](https://i-blog.csdnimg.cn/direct/0a21a46572f94418a43e458d9f50bfa4.jpeg)

## 大模型全套视频教程

![请添加图片描述](https://i-blog.csdnimg.cn/direct/225c3be3861143ceb8df78a880e51d9c.jpeg)

## 200本大模型PDF书籍
![请添加图片描述](https://i-blog.csdnimg.cn/direct/2f5af12d843f442980f6b4f033a0c259.jpeg)


**👉学会后的收获:👈**

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

## LLM面试题合集

![请添加图片描述](https://i-blog.csdnimg.cn/direct/f4d2cae108194b32ae24332ae6dc8531.jpeg)

## 大模型产品经理资源合集


![请添加图片描述](https://i-blog.csdnimg.cn/direct/06820482b5734c7d9a8edf2728cf07df.jpeg)

## 大模型项目实战合集
![请添加图片描述](https://i-blog.csdnimg.cn/direct/c30cc11b67694645afde0913162269eb.jpeg)

**👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1b1e47aebda1468d9e1b544c7554d5ac.jpeg#pic_center)
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐