本文适用对象:高级水平
目标:能学会开发Dify的插件,来满足实际业务的工作流使用。
往期回顾
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
今天我们继续学习Dify的插件开发。
04.
代码开发
我们先来写一个非常简单的插件练练手。这个插件的功能是将Markdown的内容转换为PDF文件。
因为没有需要授权的地方,所以provider下的\_validate\_credentials方法只需要简单处理一下。即工具方法全部填写空的授权参数。如下图:
主要功能代码在tools下的\_invoke方法内,且方法内使用了第三方的依赖库markdown-pdf,所以回到上一篇中将requirements.txt中填入一行依赖。
dify_plugin>=0.2.0,<0.3.0
markdown-pdf==1.7
这个插件的输入为Markdown的内容,所以需要定义一个输入参数。需要将对应方法的yaml的内容修改一下,如parameters的name表示参数名,修改为content。
在代码里使用这个参数时,按下面代码处理:
markdown\_content = tool\_parameters["content"]
经过PDF生成之后,插件需要将PDF的内容按blob的方式传出。所以需要创建一个blob message,如下:
yield self.create_blob_message(
blob=result_file_bytes,
meta=get_meta_data(
mime_type=MimeType.PDF,
output_filename=output_file.name
),
)
好了,我们已经完成了所以代码的开发。如果需要完整项目,可以访问github去获得。
https://github.com/Macking/markdown2pdf.git
05.
部署测试
代码开发完成之后,就是需要编译打包,再上传Dify了。
运行下列命令,会在当前目录得到一个压缩包markdown2pdf.difypkg。
dify-plugin-windows-amd64.exe plugin package markdown2pdf
打开自己的Dify控制台,点右上角"插件"按钮,切换到插件功能模块,点击"安装插件",选择"本地插件"。打开的对话框选择刚才生成的文件markdown2pdf.difypkg,稍等安装成功。
现在我们就可以来测试一下这个插件是否能按预期执行了。创建一个简单的chatflow,添加"LLM"和"工具"两个节点。
运行后在结果处,就得到了一个可以下载的pdf链接,下载后打开能看到结果。
如果有问题,可以进一步检查每个节点的输入和输出,重点检查参数名是否正确。
如果在安装本地插件时,系统报错。那是因为安全机制的原因,可以去dify/docker目录下,修改.env文件,在最后一行添加参数如下:
FORCE\_VERIFYING\_SIGNATURE=false
总结
今天我们完成了Dify的插件开发的主体,如果还想进一步学习更为复杂的插件开发,请一定记得关注后续文章,以便获得完整的指南。
当全部学习之后,一定可以完成属于自己的插件开发,让Dify系统变得更加的得心应手。
如果你对AI的发展感兴趣,欢迎一键三连。有任何问题可以扫码添加好友,我们共同探讨。
