版本升级注意事项

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

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

  • 备份数据
  • 升级
  • 服务回退【针对升级失败的情况下】

1、v2.6.1 -> v2.7.0

1. 备份数据

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

1.1 虚拟机快照备份

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

1.2 数据卷备份

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

1.3 docker-compose 文件备份

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

2. 升级

2.1 升级所需资源

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

可用cpu >=4C  memory>=8G
剩余磁盘空间>20G

2.2 下载更新所需的文件

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

wget http://nbagent.ai/api/docs/v2.6.1-v2.7.0-upgrade.sql

2.3 更新数据库

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

  • 可以通过 Mysql 管理工具如 HeiDiSQL 等软件,连接 Mysql,通过导入 v2.6.1-v2.7.0-upgrade.sql 脚本,执行升级。

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

# 1.copy 升级脚本到 mysql 容器中
docker cp v2.6.1-v2.7.0-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.6.1-v2.7.0-upgrade.sql

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

2.4 更新服务配置

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

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

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

chatbot-server 服务

SECRET_KEYchatbot-server、NebulaAIflow【环境变量 LANGFLOW_NBAI_SECRET_KEY】以及 pageplug【环境变量 PAGEPLUG_CHATBOT_BASE64_ENCODED_SECRET_KEY】公用。如果修改这个值,这三个服务一起修改。

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

  • FLOW_HOST:NebulaAIflow【工作流服务】地址
  • ACCESS_TOKEN_EXPIRE_MINUTES:自定义 token 过期时间,单位分钟
image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-server:v2.7.0-community
environment:
# 新增以下环境变量
    - FLOW_HOST=http://10.4.0.4:7860    # 工作流服务的地址
    - ACCESS_TOKEN_EXPIRE_MINUTES=240    # 自定义token过期时间,单位分钟. 推荐120-240
chatbot-agent 服务

更新镜像到 v2.7.0 版本,增加环境变量 NebulaAIflow【工作流服务】地址。

image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-agent:v2.7.0-community
environment:
  # 增加下列环境变量
  FLOW_HOST: "http://10.10.13.166:7860"   # 工作流服务的访问地址
chatbot-web 服务

更新镜像到 v2.7.0 版本,增加工作流、pageplug 的可配置地址:

image: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-ui:v2.7.0
environment:
  # 新增以下环境变量
  NEXT_PUBLIC_WORKFLOW_URL: "http://10.10.13.166:7860"  # 工作流服务地址
  NEXT_PUBLIC_PAGEPLUG_URL: "http://10.10.13.166:30080"   #  支持pageplug使用其他域名访问
新增服务

新增 NebulaAIflow 服务和 postgres 服务:

nebula-ai-flow:
  container_name: nebula-ai-flow
  image: registry.cn-shenzhen.aliyuncs.com/nb-agent/nebulaai-flow:v1.3.2-20250522185026
  privileged: true
  ports:
    - "7860:7860"
  depends_on:
    - postgres
  environment:
    - LANGFLOW_DATABASE_URL=postgresql://nebulaai:Nebuxxl^T11@postgres:5432/nebulaai
    - LANGFLOW_AUTO_LOGIN=true
    - LANGFLOW_SECRET_KEY=iaTca1Z-j2laYLkfbGCyGjIVYlQusIqWrvvJgaNGJDE
    - LANGFLOW_NEW_USER_IS_ACTIVE=True
    - LANGFLOW_NBAI_SECRET_KEY=8hW691DzKSHrEG222qYCv1m4rcHRQRbqr4KlaFkjZa0c1   # 该值与chatbot-server的SECRET_KEY的值一致。
    - LANGFLOW_WORKERS=3
    - LANGFLOW_LOG_LEVEL=INFO
    - LANGFLOW_LOG_ENV=container_csv
  volumes:
    - /home/chatbot/langflow-data:/app/langflow

postgres:
  container_name: postgres
  image: registry.cn-shenzhen.aliyuncs.com/nb-agent/postgres:15.10-bullseye
  privileged: true
  environment:
    POSTGRES_USER: nebulaai
    POSTGRES_PASSWORD: Nebuxxl^T11
    POSTGRES_DB: nebulaai
  ports:
    - "15432:5432"
  volumes:
    - /home/chatbot/langflow-postgres:/var/lib/postgresql/data

4. 启动并更新服务

docker-compose.yaml 文件所在目录,使用以下命令启动所有服务:

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. 配置模型和相关初始数据

服务启动后,对话功能、知识库等功能暂时是不可使用的,需要配置模型才可以使用。如果已经配置了模型,则本次升级完成。未配置模型按下面方式进行配置,配置完成后本次升级完成。

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

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

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

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

注意:Deepseek-R1 模型不支持函数调用,将会影响知识库、数据库、插件、工作流的使用。请使用 Deepseek-v3 模型,且版本必须是 2025-03-24 以上版本。

  • Ollama 的配置

模型名称可通过 ollama list 命令查看,docker 部署的可以通过 sudo docker exec ollama ollama list

大语言模型:

  • api key 如果没有配置则填写任意值。
  • 调用地址填写 http://ollmahost:port/v1,例如 Ollama 所在的 ip 为 10.10.10.6,端口为 11434,则调用地址填写:http://10.10.10.6:11434/v1

Embedding(向量)模型:

  • api key 如果没有配置则填写任意值。
  • 调用地址填写 http://ollmahost:port,例如 Ollama 所在的 ip 为 10.10.10.6,端口为 11434,则调用地址填写:http://10.10.10.6:11434
  • 注意大语言模型需要带上 /v1,但是 Embedding 模型不要带。

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

服务回退

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

  1. 使用快照恢复旧版本服务。
  2. 停止相应的服务,执行数据恢复,然后重新恢复服务:
# 停止服务
docker-compose down

# 将备份数据恢复
cp -r  /home/chatbot_back_2.6.1 /home/chatbot
cp docker-compose-v2.6.1.yaml.back  docker-compose.yaml

# 重新启动服务
docker-compose up -d

2、v2.6.0 -> v2.6.1

3、v2.5.1 -> v2.6.0