AI驱动TDSQL-C Serverless 数据库技术实战营-Vanna配合ollama分析TDSQL-C Serverless 数据库

         经过这么长时间的迭代,大模型种类繁多,使用也越来越简单了,今天我们使用Vanna配合ollama本地大模型,基于TDSQL-C MYSQL Serverless构建智能数据库分析系统

目录

概述

一、Ollama本地大模型安装

1、安装依赖包

2、安装Ollama大模型

3、下载模型

4、修改配置

5、运行模型

二、vanna安装配置

1、生成实例代码

2、python下安装vanna

三、申请TDSQL-C mysql severless实例准备数据库

1、选购数据库

2、导入表数据

四、python启动vanna,验证ai分析数据库

1、修改第二步生成的示例脚本

2、运行环境

3、ai分析数据库

五、遇到的报错及处理

1、安装Ollama遇到报错

2、安装vanna遇到报错

3、环境运行时报错

4、python环境报错


概述

AI技术正深刻影响着数据库领域,其中大语言模型(LLMs)的出现,如Ollama本地大型语言模型部署和管理的工具、腾讯云的高性能应用服务HAI,为数据库分析带来了新的可能性。Vanna作为一款先进的基于开源Python框架的SQL生成工具,其与Ollama大模型的配合,为数据库的分析提供了强大的支持。

向量数据库与关系型数据库融合‌:在AI时代,向量数据库逐渐崭露头角,而关系型数据库如TDSQL-C也在不断发展。Vanna与Ollama的配合,展示了这两种数据库技术如何协同工作,以提供更高效、更智能的数据分析。

Serverless技术的应用‌:TDSQL-C作为一种Serverless数据库,具有高度的灵活性和可扩展性。Vanna与Ollama的结合,进一步增强了其在数据处理和分析方面的能力,使得开发者能够更轻松地应对大数据和复杂查询的挑战。

一、Ollama本地大模型安装

Ollama支持win,linux,mac,本次在linux虚拟机安装,操作系统centos 7.9,内存8G

1、安装依赖包

yum install pciutils
yum install lshw

否则安装会遇到WARNING: Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies.

2、安装Ollama大模型

Download Ollama on LinuxOllama大模型下载地址:Download Ollama on Linux

官方文档上的安装方式是如下:

curl -fsSL https://ollama.com/install.sh | sh  

不过一般国内下载比较慢,安装过程一直卡在"»> Downloading ollama…"

可以使用如下方法:

 详细可参考:Ollama安装指南:解决国内下载慢和安装卡住问题 | AGI方法 (defagi.com)

# 下载安装脚本
curl -fsSL https://ollama.com/install.sh -o o_install.sh

​
# 打开o_install.sh,找到以下两个下载地址:

https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}
https://ollama.com/download/ollama-linux-amd64-rocm.tgz${VER_PARAM}

# 替换为

https://github.moeyy.xyz/https://github.com/ollama/ollama/releases/download/v0.3.2/ollama-linux-amd64
https://github.moeyy.xyz/https://github.com/ollama/ollama/releases/download/v0.3.2/ollama-linux-amd64-rocm.tgz

​

然后执行安装

sh o_install.sh

3、下载模型

下面有一些可下载的示例模型本次我们下载llama3.18b

ollama pull llama3.1:8b

Ollama 一些可下载的示例模型,详细可以参考官网:

ModelParametersSizeDownload
Llama 38B4.7GBollama run llama3
Llama 370B40GBollama run llama3:70b
Mistral7B4.1GBollama run mistral
Dolphin Phi2.7B1.6GBollama run dolphin-phi
Phi-22.7B1.7GBollama run phi
Neural Chat7B4.1GBollama run neural-chat
Starling7B4.1GBollama run starling-lm
Code Llama7B3.8GBollama run codellama
Llama 2 Uncensored7B3.8GBollama run llama2-uncensored
Llama 2 13B13B7.3GBollama run llama2:13b
Llama 2 70B70B39GBollama run llama2:70b
Orca Mini3B1.9GBollama run orca-mini
LLaVA7B4.5GBollama run llava
Gemma2B1.4GBollama run gemma:2b
Gemma7B4.8GBollama run gemma:7b
Solar10.7B6.1GBollama run solar

注意:运行 7B 模型至少需要 8 GB 的 RAM,运行 13B 模型需要 16 GB,运行 33B 模型需要 32 GB。

4、修改配置

检查服务

systemctl status ollama

修改监听地址

#默认只能本地访问
netstat -tunlp|grep ollama  
tcp        0      0 127.0.0.1:11434         0.0.0.0:*               LISTEN      23094/ollama       


vim /etc/systemd/system/ollama.service  
##添加如下

[Service]  
Environment="OLLAMA_HOST=0.0.0.0"

更改模型存放位置(选做)

vim /etc/systemd/system/ollama.service  
#添加如下
[Service]  
Environment="OLLAMA_MODELS=/data/ollama/models"

重启 ollama

systemctl daemon-reload  
systemctl restart ollama

在浏览器测试一下

5、运行模型

运行模型就可以基于模型交互,及训练模型了

ollama run llama3.1:8b

二、vanna安装配置

Vanna是一款基于开源Python框架的SQL生成工具,可以用日常用语提问,Vanna自动将其转换为SQL语句,简化数据库查询过程。

1、生成实例代码

官网:https://vanna.ai/

文档:https://vanna.ai/docs/

Vanna的例子,链接如下,按照如下图选择生成示例代码:

https://vanna.ai/docs/mysql-oll

选择Ollama-ChromaDB-mysql 会生成示例代码

2、python下安装vanna

python 安装建议3.10以上

pip install vanna[chromadb,ollama,mysql]

三、申请TDSQL-C mysql severless实例准备数据库

TDSQL-C MySQL Serverless实例是腾讯云针对中小型企业或个人开发者推出的一款数据库产品,具有资源用量低、简单易用、弹性灵活和价格低廉等优点‌。

访问腾讯云官网申请 TDSQL-C Mysql 服务器

点击链接:https://cloud.tencent.com/product/tdsqlc

详细可参考腾讯的手册

1、选购数据库

立即购买后选择severless,大小写选择不敏感,并打开公网地址

2、导入表数据

申请完成后登录数据库创建数据库school,并导入脚本

 
CREATE TABLE students (
    student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',
    name VARCHAR(50) NOT NULL COMMENT '学生姓名',
    age INT COMMENT '年龄',
    major VARCHAR(100) COMMENT '专业',
    email VARCHAR(100) UNIQUE COMMENT '电子邮件'
);
 
INSERT INTO students (name, age, major, email) VALUES
('张三', 20, '计算机科学', 'zhangsan@example.com'),
('李四', 21, '电子工程', 'lisi@example.com'),
('王五', 19, '数学', 'wangwu@example.com'),
('赵六', 22, '物理', 'zhaoliu@example.com'),
('钱七', 20, '化学', 'qianqi@example.com'),
('孙八', 21, '生物', 'sunba@example.com'),
('周九', 19, '历史', 'zhoujiu@example.com'),
('吴十', 22, '哲学', 'wushi@example.com'),
('郑十一', 20, '艺术', 'zhengshiyi@example.com'),
('王十二', 21, '音乐', 'wangshier@example.com'),
('陈十三', 19, '体育', 'chenshisan@example.com'),
('冯十四', 22, '英语', 'fengshisi@example.com'),
('董十五', 20, '法语', 'dongshiwu@example.com'),
('萧十六', 21, '德语', 'xiaoshiliu@example.com'),
('曹十七', 19, '日语', 'caoshiqi@example.com'),
('许十八', 22, '韩语', 'xushiba@example.com'),
('蒋十九', 20, '西班牙语', 'jiangshijiu@example.com'),
('沈二十', 21, '意大利语', 'shenshier@example.com'),
('韩二十一', 19, '心理学', 'hanershiyi@example.com'),
('杨二十二', 22, '社会学', 'yangershi@example.com');
 
CREATE TABLE courses (
    course_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '课程ID',
    course_name	 VARCHAR(100) NOT NULL COMMENT '课程名称',
    credits INT COMMENT '学分',
    teacher_id INT COMMENT '教师ID'
);
 
INSERT INTO courses (course_name, credits, teacher_id) VALUES
('数据结构', 4, 1),
('微积分', 3, 2),
('编程基础', 3, 3),
('物理实验', 2, 4),
('化学原理', 3, 5),
('生物技术', 4, 6),
('历史概论', 2, 7),
('哲学思考', 3, 8);
 
 
CREATE TABLE enrollments (
    enrollment_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '选课记录ID',
    student_id INT NOT NULL COMMENT '学生ID',
    course_id INT NOT NULL COMMENT '课程ID',
    grade FLOAT COMMENT '成绩'
);
 
INSERT INTO enrollments (student_id, course_id, grade) VALUES
(1, 1, 85.5),
(2, 2, 90.0),
(3, 3, 78.5),
(4, 4, 82.0),
(5, 5, 88.5),
(6, 6, 75.0),
(7, 7, 80.5),
(8, 8, 87.0),
(9, 1, 81.0),
(10, 2, 85.5),
(11, 3, 79.0),
(12, 4, 83.0),
(13, 5, 86.5),
(14, 6, 77.0),
(15, 7, 82.5),
(16, 8, 88.0),
(17, 1, 84.0),
(18, 2, 87.5),
(19, 3, 80.0),
(20, 4, 85.0),
(21, 5, 83.5),
(22, 6, 78.0),
(23, 7, 81.5),
(24, 8, 86.0),
(25, 1, 82.0),
(26, 2, 84.5),
(27, 3, 79.5),
(28, 4, 83.0),
(29, 5, 86.5),
(30, 6, 77.5);

四、python启动vanna,验证ai分析数据库

1、修改第二步生成的示例脚本

修改数据库地址、端口、用户名、密码为新建tdsql-c mysql serverless信息

vn.connect_to_mysql(host='bj-cynosdbmysql-grp-80oh0z5q.sql.tencentcdb.com', dbname='school', user='root', password='oracle123!', port=25930)

修改Ollama大模型的地址,和model,这里也可以使用腾讯云的高性能应用服务HAI,直接简单创建就可以使用

vn = MyVanna(config={'model': 'llama3.1:8b','ollama_host':'http://192.168.150.115:11434'})

完整代码 

from vanna.ollama import Ollama
from vanna.chromadb import ChromaDB_VectorStore
import pandas as pd

class MyVanna(ChromaDB_VectorStore, Ollama):
    def __init__(self, config=None):
        ChromaDB_VectorStore.__init__(self, config=config)
        Ollama.__init__(self, config=config)

vn = MyVanna(config={'model': 'llama3.1:8b','ollama_host':'http://192.168.150.115:11434'})
vn.connect_to_mysql(host='bj-cynosdbmysql-grp-80oh0z5q.sql.tencentcdb.com', dbname='school', user='root', password='oracle123!', port=25930)

vn.train(ddl="""

CREATE TABLE students (
    student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',
    name VARCHAR(50) NOT NULL COMMENT '学生姓名',
    age INT COMMENT '年龄',
    major VARCHAR(100) COMMENT '专业',
    email VARCHAR(100) UNIQUE COMMENT '电子邮件'
);

CREATE TABLE courses (
    course_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '课程ID',
    course_name	 VARCHAR(100) NOT NULL COMMENT '课程名称',
    credits INT COMMENT '学分',
    teacher_id INT COMMENT '教师ID'
);


CREATE TABLE enrollments (
    enrollment_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '选课记录ID',
    student_id INT NOT NULL COMMENT '学生ID',
    course_id INT NOT NULL COMMENT '课程ID',
    grade FLOAT COMMENT '成绩'
);

""")


from vanna.flask import VannaFlaskApp
VannaFlaskApp(vn,allow_llm_to_see_data=True).run()

2、运行环境

运行后会打印vanna登录地址

在浏览器打开地址(第一次比较慢等待一下)

3、ai分析数据库

可以愉快的ai来分析数据了,输入查询:每门课程名称最高分,vanna会先返回了正确的sql,同时会把结果以表格的形式展示,提供导出功能,最终还会根据结果的数据结构,选择适合的图表做展示。

五、遇到的报错及处理

1、安装Ollama遇到报错

WARNING: Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies.

解决:

安装如下两个包

yum install pciutils
yum install lshw

2、安装vanna遇到报错

执行pip install vanna[chromadb,ollama,mysql]安装vanna是

WARNING: vanna 0.0.33 does not provide the extra 'ollama'

解决:

python版本太低,开始安装时python 3.8,升级到3.12解决

3、环境运行时报错

环境运行时使用了chromadb,运行时出现错误:

Your system has an unsupported version of sqlite3. Chroma requires sqlite3 &

解决:

升级sqlite3

根据自己的操作系统 SQLite Download Page 下载最新的sqlite包,解压后是"sqlite3.def"和"sqlite3.dll"两个文件。将这两个文件覆盖到 "python安装目录/DLLs"下即可。

4、python环境报错

raise ResponseError(e.response.text, e.response.status_code) from None
ollama._types.ResponseError

解决:

装Ollama时,开了代理,虽然没有起到作用忘记关掉了,关掉代理,重新运行解决

在AI快速发展的当下,各行各业都面临着前所未有的变革,逆水行舟,不进则退

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值