掘金 人工智能 07月08日 16:27
Dify 插件非正式打包
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文分享了在Dify平台上进行插件打包和部署的经验,针对实际操作中遇到的问题和解决方案进行了总结。内容涵盖了插件开发环境配置、依赖管理、打包流程、安装方法以及常见问题的处理。文章强调了在开发过程中需要注意的关键点,例如实时查看插件日志、确保依赖库一致性、处理开发环境与实际环境的URL差异等。通过这些经验分享,帮助开发者更顺利地完成Dify插件的部署。

💡 **环境配置与依赖管理**:插件开发环境为Windows 10,Python 3.12,以及VSCode。在打包前,务必确保`requirements.txt`文件中的依赖库与项目实际依赖库(如`pyproject.toml`中的dependencies)保持一致。

📦 **打包流程**:使用`dify-plugin-windows-amd64.exe`工具进行打包。打包前,需要退出项目目录,回到上级目录,然后执行打包命令。打包完成后,会生成`.difypkg`文件。

✅ **安装与更新**:Dify插件在工作流中是实时更新的,打包完成后,上传并重新安装插件,插件工具会实时更新,无需删除重新加载。安装插件时选择“本地插件”进行安装。

⚠️ **常见问题及解决方案**:针对“plugin verification has been enabled, and the plugin you want to install has a bad signature”问题,可以通过允许Dify安装非认证的插件解决。对于插件安装中始终显示“安装中”的问题,以及插件运行错误等问题,文章提供了相应的排查方法和注意事项。

本来以为只要调试通过就好了,后面打包还不是一句命令的事,事实证明我想多了。折腾了好长时间,终于稀里糊涂的

注意事项:

    注意实时查看插件日志,虽然没什么用(docker logs -f --tail 100 dify-plugin-daemon );dify插件安装过程中,实质上是执行pip install -r requirements.txt命令,因此一定要确保requirements.txt文件的依赖库跟项目实际依赖库保持一致,由于我的项目是通过uv构建的,因此仅需要和pyproject.toml的dependencies 保持一致;dify插件在工作流中,是实时更新的。换言之,打包完成后,上传,重新安装插件,项目中的对应的插件工具也会实时更新,不用删除重新加载;开发环境和实际环境中,上传文件的url是不一致的,开发环境中urlremote_url没有IP地址(http://IP),实际环境中则有IP地址,开发时需要着重处理一下。

环境说明

允许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自己变好的。( ̄ε(# ̄)

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Dify 插件开发 打包部署 依赖管理
相关文章