Docker镜像准备

准备Docker镜像有两种方式。1. 从官方镜像拉取 2. 本地构建, 在实际使用过程中任意选择一种即可。

  1. 从官方镜像仓库拉取, Eosphoros AI Docker Hub
  1. docker pull eosphorosai/dbgpt:latest
  1. (可选) 本地构建
  1. bash docker/build_all_images.sh

检查Docker镜像

  1. docker images | grep "eosphorosai/dbgpt"
  2. --------------------------------------------------------------------------------------
  3. eosphorosai/dbgpt-allinone latest 349d49726588 27 seconds ago 15.1GB
  4. eosphorosai/dbgpt latest eb3cdc5b4ead About a minute ago 14.5GB
eosphorosai/dbgpt是基础镜像,其中包含项目依赖以及sqlite数据库, eosphorosai/dbgpt-allinone镜像是构建自eosphorosai/dbgpt,其中包含一个MySQL数据库。当然除了拉取Docker镜像之外,项目也提供了Dockerfile文件,可以直接通过DB-GPT中的脚本进行构建。下面是构建命令: :::color2 docker/build_all_images.sh

:::

在使用时,需要指定具体的参数,如下是一个指定参数构建的样例:

  1. bash docker/build_all_images.sh \
  2. --base-image nvidia/cuda:11.8.0-runtime-ubuntu22.04 \
  3. --pip-index-url https://pypi.tuna.tsinghua.edu.cn/simple \
  4. --language zh

:::warning 可以通过命令bash docker/build_all_images.sh —help来查看具体的使用方法

:::

运行Docker容器

通过Sqlite数据库运行

  1. docker run --ipc host --gpus all -d \
  2. -p 5000:5000 \
  3. -e LOCAL_DB_TYPE=sqlite \
  4. -e LOCAL_DB_PATH=data/default_sqlite.db \
  5. -e LLM_MODEL=vicuna-13b-v1.5 \
  6. -e LANGUAGE=zh \
  7. -v /data/models:/app/models \
  8. --name dbgpt \
  9. eosphorosai/dbgpt
打开浏览器访问 http://localhost:5000 + -e LLM_MODEL=vicuna-13b-v1.5, 意思是基座模型使用 vicuna-13b-v1.5, 更多模型使用可以查看/pilot/configs/model_config.LLM_MODEL_CONFIG 中的配置。 + -v /data/models:/app/models, 指定挂载的模型文件,目录 /data/models 挂在到容器的 /app/models, 当然可以替换到其他路径。 :::success 容器启动之后,可以通过如下命令查看日志 ::: python docker logs dbgpt -f

通过MySQL数据库运行

  1. docker run --ipc host --gpus all -d -p 3306:3306 \
  2. -p 5000:5000 \
  3. -e LOCAL_DB_HOST=127.0.0.1 \
  4. -e LOCAL_DB_PASSWORD=aa123456 \
  5. -e MYSQL_ROOT_PASSWORD=aa123456 \
  6. -e LLM_MODEL=vicuna-13b-v1.5 \
  7. -e LANGUAGE=zh \
  8. -v /data/models:/app/models \
  9. --name db-gpt-allinone \
  10. db-gpt-allinone

打开浏览器访问** http://localhost:5000**

  • -e LLM_MODEL=vicuna-13b-v1.5, 意思是基座模型使用 vicuna-13b-v1.5, 更多模型使用可以查看/pilot/configs/model_config.LLM_MODEL_CONFIG 中的配置。
  • -v /data/models:/app/models, 指定挂载的模型文件,目录 /data/models 挂在到容器的 /app/models, 当然可以替换到其他路径。

:::success 容器启动之后,可以通过如下命令查看日志

:::

  1. docker logs db-gpt-allinone -f

通过OpenAI代理模型运行

  1. PROXY_API_KEY="You api key"
  2. PROXY_SERVER_URL="https://api.openai.com/v1/chat/completions"
  3. docker run --gpus all -d -p 3306:3306 \
  4. -p 5000:5000 \
  5. -e LOCAL_DB_HOST=127.0.0.1 \
  6. -e LOCAL_DB_PASSWORD=aa123456 \
  7. -e MYSQL_ROOT_PASSWORD=aa123456 \
  8. -e LLM_MODEL=proxyllm \
  9. -e PROXY_API_KEY=$PROXY_API_KEY \
  10. -e PROXY_SERVER_URL=$PROXY_SERVER_URL \
  11. -e LANGUAGE=zh \
  12. -v /data/models/text2vec-large-chinese:/app/models/text2vec-large-chinese \
  13. --name db-gpt-allinone \
  14. db-gpt-allinone
  • -e LLM_MODEL=proxyllm, 通过设置模型为第三方模型服务API, 可以是openai, 也可以是fastchat interface.
  • -v /data/models/text2vec-large-chinese:/app/models/text2vec-large-chinese, 设置知识库embedding模型为text2vec

:::success 打开浏览器访问: http://localhost:5670

注⚠️: v0.5.4之前版本端口为5000, http://localhost:5000

具体端口配置查看.env文件中WEB_SERVER_PORT=5670配置

:::