本来以为只要调试通过就好了,后面打包还不是一句命令的事,事实证明我想多了。折腾了好长时间,终于稀里糊涂的
注意事项:
- 注意实时查看插件日志,虽然没什么用(
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,vscodedify服务器环境:linux ubuntu24.02
允许DIfy安装非认证的插件
打开dify后端服务,
cd difycd docker # 打开.env文件,文件末尾添加:FORCE_VERIFYING_SIGNATURE=falseecho "FORCE_VERIFYING_SIGNATURE=false" >> .env# 关闭移除Dify容器docker compose downdocker compose up -d
打包
检查插件
requirements.txt
文件和实际依赖是否一致?uv pip list > requirements.txt虚拟环境文件夹(.venv
)是否添加进.difyignore文件中打包
我下的Dify-Cli是dify-plugin-windows-amd64.exe
# 退出项目目录,回到上级目录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插件实际地址给删了,慎用!容易会出现意想不到的问题
操作过程:
# 进入容器docker exec -it dify-plugin-daemon bashcd /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自己变好的。( ̄ε(# ̄)