DB-GPT系列(二):DB-GPT部署(镜像一键部署、源码部署)

news/2024/11/2 17:52:50/

一、简介

DB-GPT 是一个开源项目,其将大语言模型 LLM 与数据库紧密结合。该项目主要致力于探索如何让预训练的大规模语言模型(例如 GPT)能够直接与数据库进行交互,从而生成更为准确且信息丰富的回答。

DB-GPT部署后能否直接使用以下六大应用场景:

  • Chat Excel(Excel对话):可以围绕某个Excel数据文件进行快速分析,允许用户上传数据文件并直接对其进行分析;
  • Chat Dashboard(仪表盘对话):可以围绕某个数据库,针对某个问题进行多维度分析与可视化展示;
  • Chat Data(数据对话):可以连接本地各种不同类型关系型数据库,并围绕数据库中的某个库进行跨表问答;
  • Chat DB(数据库对话):通过对话,进行问询式SQL代码创建;(但是不运行)
  • Chat Normal(原生对话):与原生大模型进行对话
  • Chat Knowledge(知识库对话):借助RAG实现私有知识库问答,用户可以自定义传输企业业务说明文档、专家文档或数据字典等信息,并围绕相关问题进行问答,从而辅助用户快速了解企业业务,或辅助进行业务决策等;

除此之外,还能进行promopt管理、知识库应用、自定义智能体应用、Text2SQL微调等高阶应用

DB-GPT有多种部署方式,包括镜像一键部署、源码部署、Docker部署、小程序云部署等,可以适应于不同场景应用需求。下面介绍镜像一键部署、源码部署两种最方便的部署方式。

二、AutoDL镜像一键部署

1、登录AutoDL,选择DB-GPT镜像创建服务器实例

进入AutoDL官网AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL,进行注册登录,和充值

进入网址CodeWithGPU | 能复现才是好算法,codewithgpu.com是AutoDL公司对应的镜像仓库网站,放心使用。选择镜像版本,目前支持的DB-GPT最新版本是v0.5.10,点击AutoDL创建实例

然后自动跳转到AutoDL购买算力的页面,选择一个“RTX 4090”的型号即可满足DB-GPT的算力使用需求,选择好后点击立即创建

创建完成后如下图所示

2、登录服务器实例主机

复制登录指令和密码。例如我复制出来的登录指令复制出来是

ssh -p 45084 root@connect.nmb1.seetacloud.com

ssh登录的地址是connect.nmb1.seetacloud.com

用户名是root

端口是45084

找一个远程服务器连接工具,例如xshell、finalshell、MobaXterm都可以,输入对应的ssh地址、用户名、端口、密码即可登录主机。

下面是MobaXterm连接界面的图示。

登录主机后如下所示

3、启动DB-GPT服务

输入conda activate dbgpt命令,切换dbgpt运行环境

conda create -n dbgpt_env python=3.10
conda activate dbgpt_env# 安装依赖的包,需要等待几分钟
pip install -e ".[default]"

输入 cd /root/DB-GPT/命令,进入DB-GPT目录

输入bash ./scripts/examples/load_examples.sh创建一些示例数据

输入dbgpt start webserver --port 6006启动DB-GPT服务,启动完后如下图所示。保留该界面不要关闭。如果关系DB-GPT服务也会终止。

4、本地浏览器访问DB-GPT

在AutoDL的容器示例内,选择对应实例的自定义服务,下载桌面工具。

该工具的作用是将远程服务器运行的服务映射到本地。

下载解压后直接运行AutoDL.exe文件

输入之前复制的SSH指令、SSH密码,然后点击开始代理

点击下面出现的地址进行跳转访问

现在就可以使用DB-GPT了

三、阿里云ECS源码部署(CPU版)

前面AutoDL部署的DB-GPT部署,最新仅支持v0.5.10

下面通过源码部署,可以支持最新版本的DB-GPT

1、开通阿里云ECS服务器

进入阿里云官网阿里云-计算,为了无法计算的价值

在顶部栏目中找到”产品-计算-云服务器ECS“

碰上阿里云有云服务器ECS的免费试用活动,个人有3个月300元的免费额度。

因为我们本次部署是使用在线大模型,所以不需要依赖GPU环境。

CPU的话建议4C以上,内存的话建议8G以上,这个配置部署DB-GPT运行起来比较流畅。

其他选项的话,除了镜像选择Ubuntu以外,其他按默认选择即可。

2、连接ECS服务器

进入ECS控制台,可以在右上角点击“控制台”,或者在搜索框里面输入ECS搜索进入。

进入对应的ECS服务器实例界面,在操作中点击“远程连接”即可

3、下载DB-GPT源码

输入以下命令安装git和下载DB-GPT源码

# 安装git
sudo apt update
sudo apt install gitgit clone https://github.com/eosphoros-ai/DB-GPT.git
# 进入DB-GPT目录
cd /DB-GPT

4、Miniconda环境安装

输入以下命令安装Miniconda环境

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh

更详细的可以参见Miniconda安装教程:https://docs.anaconda.com/miniconda/

5、创建Python虚拟环境

conda create -n dbgpt_env python=3.10
conda activate dbgpt_env# 安装依赖的包,需要等待几分钟
pip install -e ".[default]"

6、修改DB-GPT配置文件

配置模板文件.env.template为配置正式文件.env

cp .env.template .env

添加大模型API的接口参数,下面以智谱清言为例:

LLM_MODEL=zhipu_proxyllm
PROXY_SERVER_URL=https://open.bigmodel.cn/api/paas/v4/chat/completions
ZHIPU_MODEL_VERSION=glm-4
ZHIPU_PROXY_API_KEY=YOUR_API_KEY

7、安装在线大模型对应的python

安装对应在线大模型的python

#通义千问
pip install dashscope
# 智谱
pip install zhipuai

8、ECS服务器增加安全组访问规则

9、运行DB-GPT服务

python dbgpt/app/dbgpt_server.py

10、打开浏览器访问

本地浏览器打开网址http://ECS服务器公网网址:5670,访问DB-GPT网页应用


http://www.ppmy.cn/news/1543928.html

相关文章

Linux特种文件系统--tmpfs文件系统

tmpfs类似于RamDisk(只能使用物理内存),使用虚拟内存(简称VM)子系统的页面存储文件。tmpfs完全依赖VM,遵循子系统的整体调度策略。说白了tmpfs跟普通进程差不多,使用的都是某种形式的虚拟内存&a…

git入门教程4:git工作流程

一、初始化仓库 新建或选择项目目录:首先,你需要在你的计算机上创建一个新的项目目录,或者选择一个已有的项目目录作为Git仓库的根目录。初始化仓库:打开终端(在Windows上可以是Git Bash),切换…

如何封装一个可取消的 HTTP 请求?

前言 你可能会好奇什么样的场景会需要取消 HTTP 请求呢? 确实在实际的项目开发中,可能会很少有这样的需求,但是不代表没有,比如: 假如要实现上述这个公告栏,每点击一个 tab 按钮就会切换展示容器容器中…

Java 集合一口气讲完!(中)d=====( ̄▽ ̄*)b

Java 队列 Java集合教程 - Java队列 队列是只能在其上执行操作的对象的集合两端的队列。 队列有两个末端,称为头和尾。 在简单队列中,对象被添加到尾部并从头部删除并首先删除首先添加的对象。 Java Collections Framework支持以下类型的队列。 简单…

9.4 PIN definitions

9.4 PIN定义 9.4.0 引言 第9.4节定义了UICC上应存在的PIN类型,即通用PIN和应用程序PIN,以及UICC/应用程序所需的其他类型的访问条件。 9.4.1 通用PIN 通用PIN是在多应用环境中使用的PIN,允许多个应用程序共享一个公共PIN。通用PIN是一个全局…

RabbitMQ的解耦、异步、削峰是什么?

RabbitMQ在分布式系统和微服务架构中起到了重要的作用,其特性可以实现解耦、异步以及削峰,下面是对这三个概念的详细解释: 1. 解耦 解耦是指使系统的不同组件间的依赖关系减少或消失。在使用RabbitMQ时,生产者(发送消…

【Java】设计模式——单例设计模式

1.什么是设计模式 设计模式是一种被广泛认可的、可复用的解决方案,用于在软件开发中解决常见的问题。它们是对软件设计中常见问题的总结与提炼,提供了一套可遵循的标准和最佳实践,帮助开发人员构建高效、可维护和灵活的系统。 2.设计模式的分…

计算机网络八股文个人总结

1.TCP/IP模型和OSI模型的区别 在计算机网络中,TCP/IP 模型和 OSI 模型是两个重要的网络协议模型。它们帮助我们理解计算机通信的工作原理。以下是它们的主要区别,以通俗易懂的方式进行解释: 1. 模型层数 OSI 模型:有 7 层&#…