Vanna适配鲲鹏开源验证任务心得

举报
sunp 发表于 2024/11/21 16:47:23 2024/11/21
【摘要】        首先参考任务计划书:https://bbs.huaweicloud.cn/blogs/440080 ,主要目的是将Vanna项目适配华为鲲鹏处理器、OpenEuler操作系统和GaussDB数据库,确保项目能够在这些平台上高效运行。也即验证Vanna能否在Kunpeng(鲲鹏)处理器、OpenEuler操作系统上运行以及能否链接GaussDB数据库。1       开发过程1...

       首先参考任务计划书:https://bbs.huaweicloud.cn/blogs/440080 ,主要目的是将Vanna项目适配华为鲲鹏处理器、OpenEuler操作系统和GaussDB数据库,确保项目能够在这些平台上高效运行。也即验证Vanna能否在Kunpeng(鲲鹏)处理器、OpenEuler操作系统上运行以及能否链接GaussDB数据库。

1       开发过程

1.1       准备工作

Vanna作为一个工具类开源项目,使用的方法是分为两步:训练和提问。训练需要选择一个LLMvectorDB和数据库。使用的LLMVectorDB的服务都是Vanna.ai提供的在线服务,所以第一步申请账号。打开vanna工具的官网:https://vanna.ai/ ,点击“免费开始”完成账号注册,定义自己的rag模型名称获取API-key图片3.png


接着,在华为云平台上创建GuassDBfor Mysql)数据库。在云数据库RDS-管理控制台https://console.huaweicloud.cn/rds/?agencyId=d97617ffc1c848cd97ae2e9e9d4f1c4a&region=cn-north-4&locale=zh-cn#/rds/management/list 上购买数据库实例,创建成功后点击实例名称进入详情页面后点击数据库管理创建数据库。

1.2       构建Vanna对象

完成数Vanna.ai和数据库的准备后,就可以构建vanna对象。参照Vanna.ai官网的操作文档MySQL - Vanna.AI Documentationhttps://vanna.ai/docs/mysql-openai-vanna-vannadb/) ,分别选择LLM:OpenAI via Vanna.AI(Recommended)Vanna Hosted Vector DB(Recommended)MySQL后在Setup下面会生成响应代码。使用pip安装对应的vanna库,如:pip install ‘vanna[mysql]’后使用Setup下面的代码,将API-keyRAG Models键入替换后运行即可创建Vanna对象。


图片4.png


接着和数据库进行链接:vn.connect_to_mysql(host='my-host', dbname='my-db', user='my-user', password='my-password', port=3306).

再使用pymysql对数据库增添训练数据:

create_table_sql = """
CREATE TABLE IF NOT EXISTS vuser (
`id` INT PRIMARY KEY COMMENT '
用户ID',
username VARCHAR(50) COMMENT '
用户名',
email VARCHAR(100) COMMENT '
电子邮件',
age INT COMMENT '
年龄',
gender VARCHAR(10) COMMENT '
性别(男/女)',
city VARCHAR(50) COMMENT '
城市'
) COMMENT='
用户信息表' CHARACTER SET=utf8 COLLATE=utf8_unicode_ci;
"""

insert_data_sql = """
INSERT INTO vuser (`id`, username, email, age, gender, city) VALUES
(1, '
张三', 'zhangsan@example.com', 30, '', '北京'),
(2, '
李四', 'lisi@example.com', 25, '', '上海'),
(3, '
王五', 'wangwu@example.com', 40, '', '广州'),
(4, '
赵六', 'zhaoliu@example.com', 35, '', '深圳'),
(5, '
小明', 'xiaoming@example.com', 28, '', '成都'),
(6, '
小红', 'xiaohong@example.com', 45, '', '重庆'),
(7, '
小华', 'xiaohua@example.com', 32, '', '天津'),
(8, '
小丽', 'xiaoli@example.com', 27, '', '南京'),
(9, '
小李', 'xiaoli2@example.com', 38, '', '武汉'),
(10, '
小美', 'xiaomei@example.com', 33, '', '西安');
"""

1.3       训练

使用SQL DDL语句进行训练,同一张表在不改变数据的情况下只需训练一次。

vn.train(ddl="""
CREATE TABLE IF NOT EXISTS vuser (
id INT PRIMARY KEY COMMENT '
用户ID',
username VARCHAR(50) COMMENT '
用户名',
email VARCHAR(100) COMMENT '
电子邮件',
age INT COMMENT '
年龄',
gender VARCHAR(10) COMMENT '
性别(男/女)',
city VARCHAR(50) COMMENT '
城市'
) COMMENT='
用户信息表' CHARACTER SET=utf8 COLLATE=utf8_unicode_ci;
""")

训练完成后会生成一个id

1.4       提问

训练完成后就可以进行提问与数据库进行对话了,调用vn.ask(question=...)写入相应问题即可进行对话。

如vn.ask("年龄在30岁以上的用户有哪些?")即可开启对话。

2       验证截图

2.1       链接数据库


图片5.png


2.2       Cpu训练


图片6.png


生成id表明训练成功

2.3       Cpu 推理

询问结果


图片7.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。