DB-GPT的源码安装,使用mysql库并链接ollama

部署运行你感兴趣的模型镜像

前安装这玩意可累死我了,官方文档语嫣不详的,摸索加班好几天可算搞出来了,我的评价安装不如dify方便,不多逼逼下面看安装步骤

本次使用ubuntu的GPU服务器进行安装

本次需求为DB-GPT+ollama

基础环境准备

1.ollama

2.mysql

3.conda

4.DB-GPT以上

一.ollama安装

(1)官方地址

https://ollama.com/

(2)官方提供脚本安装,直接使用脚本进行安装

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

(3)安装完毕后需要进行更改

第一处,查看想要使用的显卡编号 ,我这里使用0,1两个显卡

第二处,修改启动文件

Environment="OLLAMA_HOST=0.0.0.0" #服务启动后对外的地址 Environment="CUDA_VISIBLE_DEVICES=0,1" #指定显卡使用的显卡块 Environment="OLLAMA_MODELS=/data/ollama/models" #指定模型存储位置

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
Environment="PATH=/root/.pyenv/shims:/root/.pyenv/bin:/root/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="CUDA_VISIBLE_DEVICES=0,1"
Environment="OLLAMA_MODELS=/data/ollama/models"

[Install]
WantedBy=default.target

(4)启动服务

systemctl start ollama

二.mysql安装

(1)修改ubuntu的源

vim /etc/apt/sources.list


deb http://cn.archive.ubuntu.com/ubuntu jammy main restricted
deb http://cn.archive.ubuntu.com/ubuntu jammy-updates main restricted
deb http://cn.archive.ubuntu.com/ubuntu jammy universe
deb http://cn.archive.ubuntu.com/ubuntu jammy-updates universe
deb http://cn.archive.ubuntu.com/ubuntu jammy multiverse
deb http://cn.archive.ubuntu.com/ubuntu jammy-updates multiverse
deb http://cn.archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted
deb http://security.ubuntu.com/ubuntu/ jammy-security universe
deb http://security.ubuntu.com/ubuntu/ jammy-security multiverse

apt update #进行更新

(2)下载mysql

我这里是将mysql的数据存储到/opt/mysql下

apt install mysql-server -y 
service mysql stop
mkdir /opt/mysql
chown -R mysql.mysql /opt/mysql
chmod 755 /opt/mysql
cp -arp /var/lib/mysql/* /opt/mysql

-----------------------------------------------------
vim /etc/mysql/mysql.conf.d/mysqld.cnf  编辑配置文件
# 修改指定选项(注意备份)
datadir=/opt/mysql

# 修改配置文件
sudo vim /etc/apparmor.d/usr.sbin.mysqld 

# 修改指定选项(注意备份)
# Allow data dir access
  /opt/mysql/ r,
  /opt/mysql/** rwk,
  
# 重启apparmor服务
sudo service apparmor restart
-----------------------------------------------------
systemctl start mysql
登录
mysql -u root -p
#没有密码再次回车进入
注意如果报错显示没有mysql.socket则执行这个命令再进入
ln -s /run/mysqld/mysqld.sock /tmp/mysql.sock

(3)更改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mysql2023';

三.conda安装

(1)安装基础环境

mkdir -p /opt/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
mv Miniconda3-latest-Linux-x86_64.sh miniconda.sh
chmod +x miniconda.sh
./miniconda.sh -b -u -p /opt/miniconda3
/opt/miniconda3/bin/conda init bash
source ~/.bashrc

(2)配置conda的国内源

conda config --set show_channel_urls yes
vim ~/.condarc

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

(3)创建DB-GPT的基础环境

conda create -n dbgpt_env python=3.10
conda activate dbgpt_env
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

四.DB-GPT安装

(1)拉取官方DB-GPT的代码

因为官网在0.5.6版本后才允许连接ollama所以本次使用v0.6.0版本进行安装
地址:https://github.com/eosphoros-ai/DB-GPT/releases
wget https://github.com/eosphoros-ai/DB-GPT/archive/refs/tags/v0.6.0.tar.gz

(2)模型安装

本次部署属于本地部署类型,使用ollama所以需要ollama下载模型
ollama pull  nomic-embed-text
ollama pull qwen2:7b
然后本地也得下载一个语音文本模型放到目录中
https://hf-mirror.com/GanymedeNil/text2vec-large-chinese-onnx #这个是其的git地址
mkdir /opt/DB-GPT-0.6.0/models
cd  /opt/DB-GPT-0.6.0/models
git lfs install
git clone https://hf-mirror.com/GanymedeNil/text2vec-large-chinese-onnx

(3)DB-GPT基础环境编译

说是编译其实是下载DB-GPT启动的py文件所需要的python依赖包
tar zxvf v0.6.0.tar.gz
cd DB-GPT-0.6.0/
pip install -e ".[default]"
等待安装完毕

(4)配置文件编写

cp .env.template .env #将配置文件复制并修改为生效配置文件

ollama部分
#*******************************************************************#
#**                         LLM MODELS                            **#
#*******************************************************************#
LLM_MODEL=ollama_proxyllm
PROXY_SERVER_URL=http://127.0.0.1:11434
PROXYLLM_BACKEND="qwen2:7b"
PROXY_API_KEY=not_used
EMBEDDING_MODEL=proxy_ollama
proxy_ollama_proxy_server_url=http://127.0.0.1:11434
proxy_ollama_proxy_backend="nomic-embed-text:latest"

MODEL_SERVER=http://172.29.32.15:8000
LIMIT_MODEL_CONCURRENCY=5
MAX_POSITION_EMBEDDINGS=4096
QUANTIZE_QLORA=True
QUANTIZE_8bit=True


数据库部分
#*******************************************************************#
#**                  DB-GPT METADATA DATABASE SETTINGS            **#
#*******************************************************************#
### SQLite database (Current default database)
#LOCAL_DB_TYPE=sqlite

### MYSQL database
 LOCAL_DB_TYPE=mysql
 LOCAL_DB_USER=root
 LOCAL_DB_PASSWORD=Mysql2023
 LOCAL_DB_HOST=127.0.0.1
 LOCAL_DB_PORT=3306
 LOCAL_DB_NAME=dbgpt

(5)故障整理

在第(3)步骤的时候可能会遇到pip install -e ".[default]" 无法安装的问题可以通过启动命令让服务报出缺少那个依赖包后再进行单独安装

python dbgpt/app/dbgpt_server.py #启动命令
如果启动失败会报错并返回缺少的依赖包,这时再使用pip安装依赖包
pip install 依赖包名
反复操作直到正常启动

(8)数据库表数据导入

mysql -u root -p #进入数据库
create database dbgpt
退出数据库
导入数据
mysql -h127.0.0.1 -uroot -pMysql2023 < ./assets/schema/dbgpt.sql

(7)都需要安装的包

Package                  Version     Editable project location
------------------------ ----------- -------------------------
ollama                   X.X.X
aiofiles                 24.1.0
aiohttp                  3.8.4
aiosignal                1.3.1
alembic                  1.13.3
annotated-types          0.6.0
anyio                    4.6.2
async-timeout            4.0.3
attrs                    24.2.0
Bottleneck               1.3.7
cachetools               5.5.0
certifi                  2024.8.30
cffi                     1.17.1
chardet                  5.1.0
charset-normalizer       3.4.0
click                    8.1.7
contourpy                1.2.0
cryptography             43.0.3
cycler                   0.11.0
dbgpt                    0.6.0       /opt/DB-GPT-0.6.0
exceptiongroup           1.2.0
fastapi                  0.112.2
filelock                 3.16.1
fonttools                4.51.0
frozenlist               1.5.0
fsspec                   2024.10.0
greenlet                 3.0.1
h11                      0.14.0
httpcore                 1.0.6
httpx                    0.27.2
huggingface-hub          0.26.1
idna                     3.10
importlib-resources      5.12.0
Jinja2                   3.1.4
joblib                   1.4.2
kiwisolver               1.4.4
Mako                     1.3.6
markdown-it-py           3.0.0
MarkupSafe               3.0.2
matplotlib               3.9.2
mdurl                    0.1.2
mkl_fft                  1.3.10
mkl_random               1.2.7
mkl-service              2.4.0
mpmath                   1.3.0
msgpack                  1.1.0
multidict                6.1.0
mypy-extensions          1.0.0
networkx                 3.4.2
numexpr                  2.8.7
numpy                    1.26.4
nvidia-cublas-cu12       12.4.5.8
nvidia-cuda-cupti-cu12   12.4.127
nvidia-cuda-nvrtc-cu12   12.4.127
nvidia-cuda-runtime-cu12 12.4.127
nvidia-cudnn-cu12        9.1.0.70
nvidia-cufft-cu12        11.2.1.3
nvidia-curand-cu12       10.3.5.147
nvidia-cusolver-cu12     11.6.1.9
nvidia-cusparse-cu12     12.3.1.170
nvidia-nccl-cu12         2.21.5
nvidia-nvjitlink-cu12    12.4.127
nvidia-nvtx-cu12         12.4.127
packaging                24.1
pandas                   2.2.2
pillow                   10.4.0
pip                      24.2
ply                      3.11
propcache                0.2.0
pycparser                2.22
pydantic                 2.8.2
pydantic_core            2.20.1
Pygments                 2.18.0
Pympler                  1.1
PyMySQL                  1.1.1
pyparsing                3.1.2
PyQt5                    5.15.10
PyQt5-sip                12.13.0
python-dateutil          2.9.0.post0
python-dotenv            1.0.0
python-multipart         0.0.12
pytz                     2024.1
PyYAML                   6.0.2
regex                    2024.9.11
requests                 2.32.3
rich                     13.9.3
safetensors              0.4.5
schedule                 1.2.2
scikit-learn             1.5.2
scipy                    1.14.1
seaborn                  0.13.2
sentence-transformers    3.2.1
setuptools               75.2.0
shortuuid                1.0.13
sip                      6.7.12
six                      1.16.0
sniffio                  1.3.0
snowflake-id             1.0.2
SQLAlchemy               2.0.34
sqlparse                 0.5.1
starlette                0.38.2
sympy                    1.13.1
threadpoolctl            3.5.0
tokenizers               0.20.1
tomli                    2.0.1
tomlkit                  0.13.2
torch                    2.5.0
tornado                  6.4.1
tqdm                     4.66.5
transformers             4.46.0
triton                   3.1.0
typeguard                4.3.0
typing_extensions        4.11.0
typing-inspect           0.9.0
tzdata                   2023.3
unicodedata2             15.1.0
urllib3                  2.2.3
uvicorn                  0.32.0
wheel                    0.44.0
yarl                     1.16.0

五.启动脚本配置

(1)目录创建

mkdir -p /opt/DB-GPT-0.6.0/log

(2)启动文本创建

#!/bin/bash
# Python 可执行文件路径
PYTHON_BIN=/opt/miniconda3/envs/dbgpt_env/bin/python

# Python 应用程序文件路径
APP_SCRIPT=/opt/DB-GPT-0.6.0/dbgpt/app/dbgpt_server.py

# 日志文件路径
LOG_FILE=/opt/DB-GPT-0.6.0/log/dbgpt_server.log

# 启动命令
start() {
    echo "Starting your Python application..."
    nohup $PYTHON_BIN $APP_SCRIPT > $LOG_FILE 2>&1 &
    echo "Python application started. Log file: $LOG_FILE"
}

# 停止命令
stop() {
    echo "Stopping your Python application..."
    pid=$(ps aux | grep "$APP_SCRIPT" | grep -v grep | awk '{print $2}')
    if [ -n "$pid" ]; then
        kill -9 $pid
        echo "Python application stopped."
    else
        echo "Python application is not running."
    fi
}

# 检查命令
status() {
    pid=$(ps aux | grep "$APP_SCRIPT" | grep -v grep | awk '{print $2}')
    if [ -n "$pid" ]; then
        echo "Python application is running with PID $pid."
    else
        echo "Python application is not running."
    fi
}

# 命令行参数处理
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: \$0 {start|stop|restart|status}"
        exit 1
        ;;
esac

exit 0

(3)启动服务

./python.sh start

打开后访问IP地址加5670端口

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值