返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

手把手教你从0开发一款dify plugin 插件

[复制链接]
链载Ai 显示全部楼层 发表于 5 小时前 |阅读模式 打印 上一主题 下一主题

在当今迅速发展的人工智能领域,dify 作为开源的大语言模型(LLM)应用开发平台,为开发者提供了丰富的工具和插件支持,使得构建强大的 AI 应用变得更加高效。通过为 Dify 开发工具插件,您可以扩展 LLM 的能力,例如实现联网搜索、科学计算或绘制图片等功能,从而增强 AI 应用与外部世界的交互性。

在接下来的内容中,我们将深入探讨如何为 Dify 开发工具插件,帮助您充分利用平台的潜力,构建出色的 AI 应用。


开发 Dify 插件需要进行以下准备。

Dify 插件脚手架工具

Python 环境,版本号 ≥ 3.12

Dify 插件开发脚手架工具又称为 dify-plugin-daemon,可以被视作插件开发 SDK。

安装Dify插件开发脚手架工具



访问 Dify Plugin CLI(https://github.com/langgenius/dify-plugin-daemon/releases) 项目地址,下载并安装最新版本号和对应操作系统的工具。

下载脚手架

初始化 Python 环境

大家借助用conda 生成 ,具体可以网上百度

创建新项目

赋予可执行权限

初始化项目 输入插件名称、作者、描述信息

初始化项目 选择tool

在终端内使用方向键选择权限,使用 “Tab” 按钮授予权限。 勾选所有权限项后,轻点回车完成插件的创建。 系统将自动生成插件项目代码。

用pycharm打开项目,选择python环境

开发插件

在生成的项目文件中有两个比较重要的文件夹

1.provider 插件供应商,在一个项目中可以有多个

2.tools 供应商对应的工具

安装dify_plugin 插件 python包

provider配置

provider代码

DifyPluginExampleProvider 里面实现的主要是一些验证功能,比如你的工具需要API Key就可以在这里实现

tools配置

tools代码

importjsonfromcollections.abcimportGeneratorfromtypingimportAnyimportrequestsfromdify_pluginimportToolfromdify_plugin.entities.toolimportToolInvokeMessageclassHtmlToMarkdownTool(Tool):def_invoke(self,tool_parameters:dict[str,Any])->Generator[ToolInvokeMessage]:print(json.dumps(tool_parameters,indent=4))query=tool_parameters["query"]print(f"fetch{query}")try:j_query=f"https://r.jina.ai/{query}"print(f"jinaqueryurl{j_query}")response=requests.get(j_query)response.raise_for_status()content=response.textexceptrequests.RequestExceptionase:content=str(e)yieldself.create_json_message({"result":content})


可以看出,这个工具作用是提供一个url,返回一个markdown给其他节点使用(https://r.jina.ai是一个将网页转markdown的网页,可以在浏览器试试https://r.jina.ai/https://www.baidu.com)

调试

插件开发完成后,接下来需要测试插件是否可以正常运行。Dify 提供便捷地远程调试方式,帮助你快速在测试环境中验证插件功能。 前往“插件管理”页获取远程服务器地址和调试 Key。

回到插件项目,拷贝 .env.example 文件并重命名为 .env,将获取的远程服务器地址和调试 Key 等信息填入其中。 .env 文件:

允许项目的main.py 函数 启动成功

在项目的插件页面可以看到我们的插件,接下来可以进行调试了

配置工作流测试插件

在工作流中添加你自己的插件

最终的工作流

允许工作流

查看程序打印日志

工作流运行结果

成功运行

打包插件

确认插件能够正常运行后,可以通过以下命令行工具打包并命名插件。

./dify-plugin-darwin-amd64 plugin package ./html-to-markdown

打包生成包名: html-to-markdown.difypkg

恭喜,你已完成一个工具类型插件的完整开发、调试与打包过程!

发布插件

如果想要将插件发布至 Dify Marketplace,请确保你的插件遵循了插件发布规范。审核通过后,代码将合并至主分支并自动上线至 Dify Marketplace。

总结

通过为 Dify 开发工具插件,我们不仅能够扩展 AI 应用的能力,还能提升系统的灵活性和可扩展性。无论是接入外部 API、执行复杂计算,还是增强交互体验,插件都能让 Dify 更加强大


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ