Skip to content

说明:当前文档升级内容为v2.4.2升级到v2.5.1

版本升级

升级提示:在开始“版本升级”之前,我们强烈建议您在技术部门同事的指导下进行版本升级。 由于安装过程可能涉及到复杂的配置和系统环境要求,专业指导可以帮助您避免潜在的技术问题,确保升级过程顺利进行。 如果您有任何疑问或需要帮助,请随时联系我们的技术支持团队。

整个升级过程分别以下三步:

  • 备份数据
  • 升级
  • 服务回退

1.备份数据

我们强烈建议以下两种备份数据方式都执行。

1.1 虚拟机快照备份

不同的虚拟机软件,使用快照功能不一样,以 vmware 为例,如下图所示,进行快照备份。

1733134361213

1.2 数据卷备份:

  • 在没有变更挂卷目录的情况下,只需要执行cp -r /home/chatbot /home/chatbot_back_2.4.2进行备份即可
  • 已经变更挂卷目录的情况下,需要将所有的卷目录进行备份。例如:Mysql 的挂卷目录变更为:/var/lib/data/mysql, 则需要执行命令:cp -r /var/lib/data/mysql /var/lib/data/mysql_back_2.4.2

1.3 docker-compose 文件备份

执行cp docker-compose.yaml docker-compose-v2.4.2.yaml.back备份当前文件

2. 升级

2.1 升级所需资源

在升级之前,需要确保服务器上的可用资源足够。以下是升级所需的资源

可用cpu >=4C  memory>=8G 可选:GPU>=8G
剩余磁盘空间>40G

2.2 下载更新所需的文件

下载所需的 docker-compose.yaml 文件以及升级的 sql 文件

wget http://nbagent.ai/api/docs/v2.4.2-v2.5.1-upgrade.sql

2.3 更新数据库

更新 Mysql 服务可以通过多种方式进行更新,以下介绍两种常用的方式进行数据库的更新。

  • 可以通过 Mysql 管理工具如HeiDiSQL等软件,连接 Mysql,通过导入v2.4.2-v2.5.1-upgrade.sql脚本,执行升级。如下图所示,通过HeiDiSQL软件升级的图片:

    1733135853572

  • 也可以通过容器方式执行升级,以下是通过容器升级方式加载 sql 语句升级。

    bash
    # 1.copy 升级脚本到 mysql 容器中
    docker cp v2.4.2-v2.5.1-upgrade.sql mysql:/
    
    #2. 进入到容器中
    docker exec -it mysql bash
    
    #3.设置本次的字符串,并进入到 mysql 命令行中。如果mysql容器本身是utf-8格式则无需设置
    echo "export LANG='C.UTF-8'" >> ~/.bashrc ; bash ;echo $LANG
    mysql -uroot -pyourchatbotpassword
    
    #4.在命令行中执行
    source /v2.4.2-v2.5.1-upgrade.sql

    当脚本执行全部都 ok,即可说明本次 Mysql 的数据库层面已经升级成功。

2.4 更新服务配置

通过下载最新版本的 docker-compose 文件,对比两个 docker-compose 文件的内容,从而手动修改,进行更新。通过下面的命令下载最新版本的 docker-compose 文件。

wget http://nbagent.ai/api/docs/docker-compose-v2.5.1.yaml

也可以直接按下面的方式更新 docker-compose.yaml 文件,以下是各个服务更新的具体内容。

  • chatbot-server 服务

    更新镜像到v2.5.1版本,同时增加环境变量和挂卷信息,具体内容如下:

    yaml
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-server:v2.5.1-community
    environment:
    # 新增以下环境变量
      - MAX_HISTORY=5  # 每次聊天时携带的最大上下文消息
  • chatbot-agent 服务

    更新镜像到 v2.5.1版本,增加可配置向量模型。

    yaml
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/agent:v2.5.1-community
    environment:
      # 删除下列环境变量
      AZURE_OPENAI_API_VERSION: ""  # 版本,例如2024-02-15-preview
      AZURE_OPENAI_DEPLOYMENT_NAME: ""   # 模型名称,例如gpt-4
      AZURE_OPENAI_ENDPOINT: "" # 模型访问地址,例如https://example.openai.azure.com/
      AZURE_OPENAI_API_KEY: ""  # 秘钥
      AZURE_OPEN_AI_TEXT_EMBEDDING_DEPLOYMENT_NAME: "" # 检索增强模型型号
      AZURE_OPEN_AI_IMAGE_DEPLOYMENT: ""
      API_TYPE: ""   # 模型类别,azure或者openai。为azure时,上面以AZURE开头的环境变量生效。为openai时,下面OPEN开头的环境变量生效
      OPEN_AI_CHAT_COMPLETION_MODEL_ID: ""   # 模型型号,例如qwen-max,qwen2-72b-instruct
      OPENAI_BASE_URL: ""
      OPENAI_API_KEY: ""
      OPEN_AI_TEXT_EMBEDDING_MODEL_ID: ""
      RAG_TYPE: ""  # 向量模型类别
      RAG_BASE_URL: ""   # 向量模型地址
      RAG_API_KEY: ""    # 向量模型访问秘钥
      # 增加下列环境变量
      MINILM_L12V2_PATH: "/app/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"
      FLASH_RERANK_MODEL_NAME: "ms-marco-MiniLM-L-12-v2"  # 系统内置重排序模型,请勿删除
      EMBEDDING_BATCH_SIZE: "25"  # 当次请求向量模型携带的文本块数量。公有云模型的大部分都会限制调用api携带的文本块数量
    volumes:
      # 新增下列挂卷信息
      - /home/chatbot/chatbot-agent/nvidia:/usr/local/lib/python3.10/site-packages/nvidia   # 挂卷nvidia pip包
  • chatbot-web服务更新

    更新镜像到 v2.5.1版本,增加mockserver可配置地址:

    yaml
    image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-ui:v2.5.1
    environment:
      # 新增以下环境变量
      NEXT_PUBLIC_GPUSTACK_URL: ""  # 仅企业版需配置

4. 启动并更新服务

在 docker-compose.yaml 文件所在目录,使用以下命令启动所有服务 注意mysql的更新,需要先停止

docker rm -f mysql
docker-compose up -d

5. 访问服务

5.1 打开浏览器:首先,请确保您的计算机已经连接到互联网。

5.2 输入地址:在浏览器的地址栏中输入以下格式的网址来访问服务:

http://{ip地址或者域名}:{chatbot-web的监听端口}

例如,如果您的服务器IP地址是 10.10.0.4,并且服务监听在端口3000上,那么您应该输入:

http://10.10.0.4:3000

5.3 登录:在服务页面上,您将看到一个登录界面。请使用以下默认账号和密码进行登录:

账号:chatbot
密码:yourchatbotpassword

请确保在输入 IP 地址、域名和端口时保持准确无误。 如果遇到无法访问的情况,请检查网络连接,并确认服务器是否已经启动且监听在正确的端口上。 如果问题依旧,请尝试重启服务或联系技术支持获取帮助。

6. 配置模型和相关初始数据

服务启动后,对话功能、知识库等功能暂时是不可使用的,需要配置模型和nvidia安装包才可以使用。配置完成后本次升级完成。

6.1 挂卷pip nvidia安装包

运行一下命令,下载和安装nvidia包。

bash
docker exec chatbot-agent pip install -i https://mirrors.aliyun.com/pypi/simple \
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

由于该安装包较大,下载完之后进行挂卷。使用以下命令将容器的nvidia安装包copy到宿主机并进行挂卷。

bash
docker cp chatbot-agent:/usr/local/lib/python3.10/site-packages/nvidia  /home/chatbot/chatbot-agent/
vi docker-compose.yaml
# 检查挂卷信息是否正确,如果是下面信息,则无需修改直接重启chatbot-agent
# - /home/chatbot/chatbot-agent/nvidia:/usr/local/lib/python3.10/site-packages/nvidia

重启chatbot-agent服务.docker-compose up -d chatbot-agent

6.2 配置语言模型和向量模型等

登录后,在模型管理页面,点击模型接入,例如选择大语言模型,接口类型选择Generic OpenAI,其中api访问地址以及API-key,不同平台的地址均不一样。更为详细的配置,请参考【模型管理】 章节。

img

下面以线上阿里云百炼官网、Deepseek官网以及Ollama本地部署的模型进行配置讲解:

  • 阿里云百炼官网:https://bailian.console.aliyun.com/?spm=5176.29619931.J__Z58Z6CX7MY__Ll8p1ZOR.1.ad2a521cA8LYfi#/model-market

    img

    右上角是申请的API-key。点击进入创建自己的apikey, 选择任何一个模型,点击api调用示例:

    img

    如下图所示:找到模型名称,以及openai的调用示例中复制其调用地址。全部复制,包括域名和/v1. 将模型名称、apikey和调用地址填入即可。

    img

  • Deepseek配置。访问官方文档:https://api-docs.deepseek.com/zh-cn/

    依次点击快速开始-->首次调用API,如下图所示:申请apikey、查看openai的调用地址以及模型名称。

    img

  • ollama的配置。

    模型名称:可通过ollama list命令查看,docker部署的可以通过 sudo docker exec ollama ollama list 如下图所示:

    img

    • 大语言模型:

      img

      api key如果没有配置则填写任意值。

      调用地址:填写http://ollmahost:port/v1, 例如ollama所在的ip为10.10.10.6,端口为11434,则调用地址填写:http://10.10.10.6:11434/v1

    • Embedding (向量)模型:

      img

      api key如果没有配置则填写任意值。

      调用地址:填写http://ollmahost:port, 例如ollama所在的ip为10.10.10.6,端口为11434,则调用地址填写:http://10.10.10.6:11434. 注意大语言模型需要带上/v1,但是Embedding 模型不要带

配置已完成后就可能正常使用了。

服务回退

如遇到不可抗拒等因素,导致当前升级失败,可执行服务回退操作。

  1. 使用快照恢复旧版本服务。

  2. 停止相应的服务,执行数据恢复,然后重新恢复服务:

    bash
    # 停止服务
    docker-compose down
    
    # 将备份数据恢复
    cp -r  /home/chatbot_back_2.4.2 /home/chatbot
    cp docker-compose-v2.4.2.yaml.back  docker-compose.yaml
    
    # 重新启动服务
    docker-compose up -d