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

打印 上一主题 下一主题

主题 902|帖子 902|积分 2706

前安装这玩意可累死我了,官方文档语嫣不详的,探索加班好几天可算搞出来了,我的评价安装不如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" #指定模型存储位置
  1. [Unit]
  2. Description=Ollama Service
  3. After=network-online.target
  4. [Service]
  5. ExecStart=/usr/bin/ollama serve
  6. User=root
  7. Group=root
  8. Restart=always
  9. RestartSec=3
  10. 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"
  11. Environment="OLLAMA_HOST=0.0.0.0"
  12. Environment="CUDA_VISIBLE_DEVICES=0,1"
  13. Environment="OLLAMA_MODELS=/data/ollama/models"
  14. [Install]
  15. WantedBy=default.target
复制代码
(4)启动服务

  1. systemctl start ollama
复制代码
二.mysql安装

(1)修改ubuntu的源

vim /etc/apt/sources.list
  1. deb http://cn.archive.ubuntu.com/ubuntu jammy main restricted
  2. deb http://cn.archive.ubuntu.com/ubuntu jammy-updates main restricted
  3. deb http://cn.archive.ubuntu.com/ubuntu jammy universe
  4. deb http://cn.archive.ubuntu.com/ubuntu jammy-updates universe
  5. deb http://cn.archive.ubuntu.com/ubuntu jammy multiverse
  6. deb http://cn.archive.ubuntu.com/ubuntu jammy-updates multiverse
  7. deb http://cn.archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
  8. deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted
  9. deb http://security.ubuntu.com/ubuntu/ jammy-security universe
  10. deb http://security.ubuntu.com/ubuntu/ jammy-security multiverse
复制代码
apt update #进行更新
(2)下载mysql

我这里是将mysql的数据存储到/opt/mysql下
  1. apt install mysql-server -y
  2. service mysql stop
  3. mkdir /opt/mysql
  4. chown -R mysql.mysql /opt/mysql
  5. chmod 755 /opt/mysql
  6. cp -arp /var/lib/mysql/* /opt/mysql
  7. -----------------------------------------------------
  8. vim /etc/mysql/mysql.conf.d/mysqld.cnf  编辑配置文件
  9. # 修改指定选项(注意备份)
  10. datadir=/opt/mysql
  11. # 修改配置文件
  12. sudo vim /etc/apparmor.d/usr.sbin.mysqld
  13. # 修改指定选项(注意备份)
  14. # Allow data dir access
  15.   /opt/mysql/ r,
  16.   /opt/mysql/** rwk,
  17.   
  18. # 重启apparmor服务
  19. sudo service apparmor restart
  20. -----------------------------------------------------
  21. systemctl start mysql
  22. 登录
  23. mysql -u root -p
  24. #没有密码再次回车进入
  25. 注意如果报错显示没有mysql.socket则执行这个命令再进入
  26. ln -s /run/mysqld/mysqld.sock /tmp/mysql.sock
复制代码
(3)更改密码

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mysql2023';
复制代码
三.conda安装

(1)安装底子环境

  1. mkdir -p /opt/miniconda3
  2. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  3. mv Miniconda3-latest-Linux-x86_64.sh miniconda.sh
  4. chmod +x miniconda.sh
  5. ./miniconda.sh -b -u -p /opt/miniconda3
  6. /opt/miniconda3/bin/conda init bash
  7. source ~/.bashrc
复制代码
(2)配置conda的国内源

  1. conda config --set show_channel_urls yes
  2. vim ~/.condarc
  3. channels:
  4.   - defaults
  5. show_channel_urls: true
  6. default_channels:
  7.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  8.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  9.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
  10. custom_channels:
  11.   conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  12.   msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  13.   bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  14.   menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  15.   pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  16.   pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  17.   simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  18.   deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
复制代码
(3)创建DB-GPT的底子环境

  1. conda create -n dbgpt_env python=3.10
  2. conda activate dbgpt_env
  3. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
四.DB-GPT安装

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

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

(2)模型安装

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

(3)DB-GPT底子环境编译

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

(4)配置文件编写

cp .env.template .env #将配置文件复制并修改为生效配置文件
  1. ollama部分
  2. #*******************************************************************#
  3. #**                         LLM MODELS                            **#
  4. #*******************************************************************#
  5. LLM_MODEL=ollama_proxyllm
  6. PROXY_SERVER_URL=http://127.0.0.1:11434
  7. PROXYLLM_BACKEND="qwen2:7b"
  8. PROXY_API_KEY=not_used
  9. EMBEDDING_MODEL=proxy_ollama
  10. proxy_ollama_proxy_server_url=http://127.0.0.1:11434
  11. proxy_ollama_proxy_backend="nomic-embed-text:latest"
  12. MODEL_SERVER=http://172.29.32.15:8000
  13. LIMIT_MODEL_CONCURRENCY=5
  14. MAX_POSITION_EMBEDDINGS=4096
  15. QUANTIZE_QLORA=True
  16. QUANTIZE_8bit=True
  17. 数据库部分
  18. #*******************************************************************#
  19. #**                  DB-GPT METADATA DATABASE SETTINGS            **#
  20. #*******************************************************************#
  21. ### SQLite database (Current default database)
  22. #LOCAL_DB_TYPE=sqlite
  23. ### MYSQL database
  24. LOCAL_DB_TYPE=mysql
  25. LOCAL_DB_USER=root
  26. LOCAL_DB_PASSWORD=Mysql2023
  27. LOCAL_DB_HOST=127.0.0.1
  28. LOCAL_DB_PORT=3306
  29. LOCAL_DB_NAME=dbgpt
复制代码

(5)故障整理

在第(3)步调的时间可能会碰到pip install -e ".[default]" 无法安装的标题可以通过启动命令让服务报出缺少那个依靠包后再进行单独安装
  1. python dbgpt/app/dbgpt_server.py #启动命令
  2. 如果启动失败会报错并返回缺少的依赖包,这时再使用pip安装依赖包
  3. pip install 依赖包名
  4. 反复操作直到正常启动
复制代码

(8)数据库表数据导入

  1. mysql -u root -p #进入数据库
  2. create database dbgpt
  3. 退出数据库
  4. 导入数据
  5. mysql -h127.0.0.1 -uroot -pMysql2023 < ./assets/schema/dbgpt.sql
复制代码

(7)都必要安装的包

  1. Package                  Version     Editable project location
  2. ------------------------ ----------- -------------------------
  3. ollama                   X.X.X
  4. aiofiles                 24.1.0
  5. aiohttp                  3.8.4
  6. aiosignal                1.3.1
  7. alembic                  1.13.3
  8. annotated-types          0.6.0
  9. anyio                    4.6.2
  10. async-timeout            4.0.3
  11. attrs                    24.2.0
  12. Bottleneck               1.3.7
  13. cachetools               5.5.0
  14. certifi                  2024.8.30
  15. cffi                     1.17.1
  16. chardet                  5.1.0
  17. charset-normalizer       3.4.0
  18. click                    8.1.7
  19. contourpy                1.2.0
  20. cryptography             43.0.3
  21. cycler                   0.11.0
  22. dbgpt                    0.6.0       /opt/DB-GPT-0.6.0
  23. exceptiongroup           1.2.0
  24. fastapi                  0.112.2
  25. filelock                 3.16.1
  26. fonttools                4.51.0
  27. frozenlist               1.5.0
  28. fsspec                   2024.10.0
  29. greenlet                 3.0.1
  30. h11                      0.14.0
  31. httpcore                 1.0.6
  32. httpx                    0.27.2
  33. huggingface-hub          0.26.1
  34. idna                     3.10
  35. importlib-resources      5.12.0
  36. Jinja2                   3.1.4
  37. joblib                   1.4.2
  38. kiwisolver               1.4.4
  39. Mako                     1.3.6
  40. markdown-it-py           3.0.0
  41. MarkupSafe               3.0.2
  42. matplotlib               3.9.2
  43. mdurl                    0.1.2
  44. mkl_fft                  1.3.10
  45. mkl_random               1.2.7
  46. mkl-service              2.4.0
  47. mpmath                   1.3.0
  48. msgpack                  1.1.0
  49. multidict                6.1.0
  50. mypy-extensions          1.0.0
  51. networkx                 3.4.2
  52. numexpr                  2.8.7
  53. numpy                    1.26.4
  54. nvidia-cublas-cu12       12.4.5.8
  55. nvidia-cuda-cupti-cu12   12.4.127
  56. nvidia-cuda-nvrtc-cu12   12.4.127
  57. nvidia-cuda-runtime-cu12 12.4.127
  58. nvidia-cudnn-cu12        9.1.0.70
  59. nvidia-cufft-cu12        11.2.1.3
  60. nvidia-curand-cu12       10.3.5.147
  61. nvidia-cusolver-cu12     11.6.1.9
  62. nvidia-cusparse-cu12     12.3.1.170
  63. nvidia-nccl-cu12         2.21.5
  64. nvidia-nvjitlink-cu12    12.4.127
  65. nvidia-nvtx-cu12         12.4.127
  66. packaging                24.1
  67. pandas                   2.2.2
  68. pillow                   10.4.0
  69. pip                      24.2
  70. ply                      3.11
  71. propcache                0.2.0
  72. pycparser                2.22
  73. pydantic                 2.8.2
  74. pydantic_core            2.20.1
  75. Pygments                 2.18.0
  76. Pympler                  1.1
  77. PyMySQL                  1.1.1
  78. pyparsing                3.1.2
  79. PyQt5                    5.15.10
  80. PyQt5-sip                12.13.0
  81. python-dateutil          2.9.0.post0
  82. python-dotenv            1.0.0
  83. python-multipart         0.0.12
  84. pytz                     2024.1
  85. PyYAML                   6.0.2
  86. regex                    2024.9.11
  87. requests                 2.32.3
  88. rich                     13.9.3
  89. safetensors              0.4.5
  90. schedule                 1.2.2
  91. scikit-learn             1.5.2
  92. scipy                    1.14.1
  93. seaborn                  0.13.2
  94. sentence-transformers    3.2.1
  95. setuptools               75.2.0
  96. shortuuid                1.0.13
  97. sip                      6.7.12
  98. six                      1.16.0
  99. sniffio                  1.3.0
  100. snowflake-id             1.0.2
  101. SQLAlchemy               2.0.34
  102. sqlparse                 0.5.1
  103. starlette                0.38.2
  104. sympy                    1.13.1
  105. threadpoolctl            3.5.0
  106. tokenizers               0.20.1
  107. tomli                    2.0.1
  108. tomlkit                  0.13.2
  109. torch                    2.5.0
  110. tornado                  6.4.1
  111. tqdm                     4.66.5
  112. transformers             4.46.0
  113. triton                   3.1.0
  114. typeguard                4.3.0
  115. typing_extensions        4.11.0
  116. typing-inspect           0.9.0
  117. tzdata                   2023.3
  118. unicodedata2             15.1.0
  119. urllib3                  2.2.3
  120. uvicorn                  0.32.0
  121. wheel                    0.44.0
  122. yarl                     1.16.0
复制代码

五.启动脚本配置

(1)目次创建

  1. mkdir -p /opt/DB-GPT-0.6.0/log
复制代码

(2)启动文本创建

  1. #!/bin/bash
  2. # Python 可执行文件路径
  3. PYTHON_BIN=/opt/miniconda3/envs/dbgpt_env/bin/python
  4. # Python 应用程序文件路径
  5. APP_SCRIPT=/opt/DB-GPT-0.6.0/dbgpt/app/dbgpt_server.py
  6. # 日志文件路径
  7. LOG_FILE=/opt/DB-GPT-0.6.0/log/dbgpt_server.log
  8. # 启动命令
  9. start() {
  10.     echo "Starting your Python application..."
  11.     nohup $PYTHON_BIN $APP_SCRIPT > $LOG_FILE 2>&1 &
  12.     echo "Python application started. Log file: $LOG_FILE"
  13. }
  14. # 停止命令
  15. stop() {
  16.     echo "Stopping your Python application..."
  17.     pid=$(ps aux | grep "$APP_SCRIPT" | grep -v grep | awk '{print $2}')
  18.     if [ -n "$pid" ]; then
  19.         kill -9 $pid
  20.         echo "Python application stopped."
  21.     else
  22.         echo "Python application is not running."
  23.     fi
  24. }
  25. # 检查命令
  26. status() {
  27.     pid=$(ps aux | grep "$APP_SCRIPT" | grep -v grep | awk '{print $2}')
  28.     if [ -n "$pid" ]; then
  29.         echo "Python application is running with PID $pid."
  30.     else
  31.         echo "Python application is not running."
  32.     fi
  33. }
  34. # 命令行参数处理
  35. case "$1" in
  36.     start)
  37.         start
  38.         ;;
  39.     stop)
  40.         stop
  41.         ;;
  42.     restart)
  43.         stop
  44.         start
  45.         ;;
  46.     status)
  47.         status
  48.         ;;
  49.     *)
  50.         echo "Usage: \$0 {start|stop|restart|status}"
  51.         exit 1
  52.         ;;
  53. esac
  54. exit 0
复制代码

(3)启动服务

./python.sh start

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



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表