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 工具遷移為插件
該步驟的目的:將此前社區版本所使用的工具及模型供應商,自動進行數據遷移並安裝至新版本的插件環境中。
- 運行 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 平台,輕點右上角 “插件” 查看此前所使用的工具是否被正確安裝。隨機使用某個插件,驗證是否能夠正常運行。如果無誤,説明你已完成版本升級和數據遷移。