本来以为只要调试通过就好了,后面打包还不是一句命令的事,事实证明我想多了。折腾了好长时间,终于稀里糊涂的
注意事项:
- 注意实时查看插件日志,虽然没什么用(
docker logs -f --tail 100 dify-plugin-daemon
); - dify插件安装过程中,实质上是执行
pip install -r requirements.txt
命令,因此一定要确保requirements.txt文件的依赖库跟项目实际依赖库保持一致,由于我的项目是通过uv构建的,因此仅需要和pyproject.toml
的dependencies 保持一致; - dify插件在工作流中,是实时更新的。换言之,打包完成后,上传,重新安装插件,项目中的对应的插件工具也会实时更新,不用删除重新加载;
- 开发环境和实际环境中,上传文件的url是不一致的,开发环境中
url
或remote_url
没有IP地址 (http://IP
),实际环境中则有IP地址,开发时需要着重处理一下。
环境说明
- 插件开发环境:window10,python3.12,vscode
- dify服务器环境:linux ubuntu24.02
允许DIfy安装非认证的插件
打开dify后端服务,
bash
cd dify
cd docker
# 打开.env文件,文件末尾添加:FORCE_VERIFYING_SIGNATURE=false
echo "FORCE_VERIFYING_SIGNATURE=false" >> .env
# 关闭移除Dify容器
docker compose down
docker compose up -d
打包
检查插件
requirements.txt
文件和实际依赖是否一致? uv pip list > requirements.txt- 虚拟环境文件夹(
.venv
)是否添加进.difyignore文件中
打包
我下的Dify-Cli是dify-plugin-windows-amd64.exe
bash
# 退出项目目录,回到上级目录
cd ..
# 打包 my_text_exector_tool 为项目名
.\dify-plugin-windows-amd64.exe plugin package ./my_text_exector_tool
# 此时,上级目录下会出现 my_document_exector_tools.difypkg
安装
安装插件->本地插件
常见问题
-
plugin verification has been enabled, and the plugin you want to install has a bad signature
允许DIfy安装非认证的插件就可以了
-
始终显示在安装中
暂时没发现解决办法,无论是重启DIFY,还是容器
dify-plugin-daemon
都没用; -
日志显示查看在疯狂报错,虽然在界面中已经移除了,但后台日志仍在展示插件报错信息。
可以考虑把docker插件实际地址给删了,慎用!容易会出现意想不到的问题
操作过程:
bash# 进入容器 docker exec -it dify-plugin-daemon bash cd /app/storage/cwd/ ls -a # 删除作者文件下的所有文件,慎用 rm -r 作者名称 # Ctrl+D 退出 # 重启 docker restart dify-plugin-daemon
-
如何授权DIFY_API_KEY
每个项目都有一个专门的API
-
插件启用后,运行时,插件本身运行正常,但后面节点运行错误,提示:
PluginDaemonInternalServerError
github.com/langgenius/dify/issues/14649
找不到有效解决办法,最后是DIFY自己变好的。( ̄ε(# ̄)