美食家大橙子 发表于 2025-3-3 12:30:28

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两个显卡
https://i-blog.csdnimg.cn/direct/91578382763b4cf4b1d7b7b8466847bd.png
第二处,修改启动文件
Environment="OLLAMA_HOST=0.0.0.0" #服务启动后对外的地址 Environment="CUDA_VISIBLE_DEVICES=0,1" #指定显卡使用的显卡块 Environment="OLLAMA_MODELS=/data/ollama/models" #指定模型存储位置

Description=Ollama Service
After=network-online.target


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"


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 pullnomic-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 "."
等待安装完毕
(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 "." 无法安装的标题可以通过启动命令让服务报出缺少那个依靠包后再进行单独安装
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端口
https://i-blog.csdnimg.cn/direct/fce43cdb2e3340a389fc69ee2147d1d1.png
https://i-blog.csdnimg.cn/direct/1b0a791578a84a728b7267d942212d05.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: DB-GPT的源码安装,使用mysql库并链接ollama