Appearance
说明:当前文档升级内容为v2.4.2
升级到v2.5.1
版本升级
升级提示:在开始“版本升级”之前,我们强烈建议您在技术部门同事的指导下进行版本升级。 由于安装过程可能涉及到复杂的配置和系统环境要求,专业指导可以帮助您避免潜在的技术问题,确保升级过程顺利进行。 如果您有任何疑问或需要帮助,请随时联系我们的技术支持团队。
整个升级过程分别以下三步:
- 备份数据
- 升级
- 服务回退
1.备份数据
我们强烈建议以下两种备份数据方式都执行。
1.1 虚拟机快照备份
不同的虚拟机软件,使用快照功能不一样,以 vmware 为例,如下图所示,进行快照备份。
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
软件升级的图片:也可以通过容器方式执行升级,以下是通过容器升级方式加载 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版本,同时增加环境变量和挂卷信息,具体内容如下:
yamlimage: registry.cn-shenzhen.aliyuncs.com/nb-agent/chatbot-server:v2.5.1-community environment: # 新增以下环境变量 - MAX_HISTORY=5 # 每次聊天时携带的最大上下文消息
chatbot-agent 服务
更新镜像到 v2.5.1版本,增加可配置向量模型。
yamlimage: 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可配置地址:
yamlimage: 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,不同平台的地址均不一样。更为详细的配置,请参考【模型管理】 章节。
下面以线上阿里云百炼官网、Deepseek官网以及Ollama本地部署的模型进行配置讲解:
右上角是申请的API-key。点击进入创建自己的apikey, 选择任何一个模型,点击api调用示例:
如下图所示:找到模型名称,以及openai的调用示例中复制其调用地址。全部复制,包括域名和/v1. 将模型名称、apikey和调用地址填入即可。
Deepseek配置。访问官方文档:https://api-docs.deepseek.com/zh-cn/
依次点击
快速开始-->首次调用API
,如下图所示:申请apikey、查看openai的调用地址以及模型名称。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 模型不要带
配置已完成后就可能正常使用了。
服务回退
如遇到不可抗拒等因素,导致当前升级失败,可执行服务回退操作。
使用快照恢复旧版本服务。
停止相应的服务,执行数据恢复,然后重新恢复服务:
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