0 前言

如未曾安裝過 Dify 社區版,可以直接克隆 Dify 項目,並切換至 1.0.0 分支。參考文檔執行安裝命令。

如需在社區版體驗插件功能,需將版本號升級≥ v1.0.0。本文將為你介紹如何從舊版本升級至 v1.0.0 以體驗插件生態功能。

開始升級吧!分步驟:

1 備份數據

1.1 新建備份分支

運行 cd 命令至你的 Dify 項目路徑,新建備份分支。

1.2 備份docker-compose YAML

運行以下命令,備份你的 docker-compose YAML 文件(可選)。

cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak

1.3 停止服務

運行命令停止服務,在 Docker 目錄中執行備份數據命令。

javaedge@JavaEdgedeMac-mini docker % docker compose down

tar -cvf volumes-$(date +%s).tgz volumes

2 升級版本

v1.0.0 支持通過 Docker Compose 部署。運行 cd 命令至你的 Dify 項目路徑,運行以下命令升級 Dify 版本:

git fetch origin
git checkout 1.10.1 # 切換至 1.0.0 分支
cd docker
nano .env # 修改環境配置文件同步 .env.example 文件
docker compose -f docker-compose.yaml up -d

3 工具遷移為插件

該步驟的目的:將此前社區版本所使用的工具及模型供應商,自動進行數據遷移並安裝至新版本的插件環境中。

  1. 運行 docker ps 命令,查看 docker-api 容器 id 號。

示例:

docker ps
CONTAINER ID   IMAGE                                       COMMAND                  CREATED       STATUS                 PORTS                                                                                                                             NAMES
417241cd****   nginx:latest                                "sh -c 'cp /docker-e…"   3 hours ago   Up 3 hours             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp                                                          docker-nginx-1
f84aa773****   langgenius/dify-api:1.0.0                   "/bin/bash /entrypoi…"   3 hours ago   Up 3 hours             5001/tcp                                                                                                                          docker-worker-1
a3cb19c2****   langgenius/dify-api:1.0.0                   "/bin/bash /entrypoi…"   3 hours ago   Up 3 hours             5001/tcp                                                                                                                          docker-api-1

運行命令 docker exec -it a3cb19c2**** bash 進入容器終端,在容器內運行

poetry run flask extract-plugins --workers=20

如果提示報錯,建議參考前置準備,先在服務器內安裝 poetry 環境;運行命令後,若終端出現待輸入項,點擊 “回車” 跳過輸入。

此命令將提取當前環境中使用的所有模型和工具。workers 參數將決定提取過程中的所使用的並行進程數,可根據需要進行調整。命令運行完成後將生成 plugins.jsonl 文件保存結果,該文件包含了當前 Dify 實例中所有工作區的插件信息。

確保你的網絡正常訪問公網,並支持訪問:https://marketplace.dify.ai。在 docker-api-1 容器內繼續運行以下命令:

poetry run flask install-plugins --workers=2

此命令將下載並安裝所有必要的插件到最新的社區版本中。

最後遷移插件數據。運行以下命令更新 provider name,並在其後附加 langgenius/{provider_name}/{provider_name}

poetry run flask migrate-data-for-plugin

當終端出現以下標識時,遷移完成。

Migrate [tool_builtin_providers] data for plugin completed, total: 6
Migrate data for plugin completed.

驗證結果

訪問 Dify 平台,輕點右上角 “插件” 查看此前所使用的工具是否被正確安裝。隨機使用某個插件,驗證是否能夠正常運行。如果無誤,説明你已完成版本升級和數據遷移。

Dify數據遷移和版本升級_docker