news 2025/12/14 8:26:04

【Python大语言模型系列】新版Dify 开发自定义工具插件在工作流中直接调用(完整步骤)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python大语言模型系列】新版Dify 开发自定义工具插件在工作流中直接调用(完整步骤)

这是我的第441篇原创文章。

一、引言

“工具插件”指的是一个完整的项目,其中包含工具供应商文件、功能代码等结构。之前写过一个旧版dify开发自定义工具:

【Python大语言模型系列】Dify 开发一个自定义工具并在工作流中直接调用(完整案例)

新版dify遵循插件化原则,自定义工具的开发流程和步骤略有不同。基于官方文档和实战经验,以下是 Dify Tools 插件的从零到上线完整开发流程。

二、实现过程

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

访问 Dify Plugin CL 项目地址,下载并安装最新版本号和对应操作系统的工具。

运行以下命令检查安装是否成功。

./dify-plugin-darwin-arm64 version # macOS ./dify-plugin-windows-arm64 version # windows

运行命令后,终端若返回类似v0.0.1-beta.15的版本号信息,则说明安装成功。

如果你已将该二进制文件重命名为dify并拷贝至 系统路径下(如:/usr/local/bin路径)下,配置完成后,在终端输入dify version命令后将输出版本号信息。可以运行以下命令创建新的插件项目:

dify plugin init

2.2 初始化插件项目

使用脚手架工具创建插件项目:

/dify-plugin plugin init

输入插件名称、作者信息,选择插件类型(如tool工具插件)。配置权限(如 Tools、Apps、Endpoints 等),完成后生成标准目录结构:

my-plugin/ ├── main.py # 插件入口文件 ├── manifest.yaml # 插件元数据配置,一般可以不管 ├── tools/ # 功能实现代码 ├── provider/ # 服务商凭证与验证,一般可以不管 └── requirements.txt # Python 包依赖 └── .env.example # 配置文件

2.3 功能开发

在tools/my-plugin.py中实现核心逻辑:继承Tool基类并实现_invoke方法。例如:

from difyplugin import Tool, ToolInvokeError class MyTool(Tool): def _invoke(self, tool_parameters: dict) -> str: try: param = tool_parameters['input'] result = f"Processed: {param}" return self.create_text_message(result) except Exception as e: raise ToolInvokeError(f"Error: {str(e)}")

配置参数:在tools/my-plugin.yaml文件中定义插件参数和描述。

2.4 配置 Python 环境

确保 Python 版本 ≥ 3.12,建议使用虚拟环境:

python -m venv .venv source .venv/bin/activate # Linux/macOS \.venv\Scripts\activate # Windows pip install -r requirements.txt # 安装核心包

2.5 测试与验证

复制模板

cp .env.example .env

配置.env文件,填写调试 Key 和服务器地址:

INSTALL_METHOD=remote REMOTE_INSTALL_URL=10.0.x.5 REMOTE_INSTALL_PORT=5003 REMOTE_INSTALL_KEY=xxxx

启动插件进行测试:

python -m main

在 Dify 平台中运行工作流,验证插件输出是否符合预期。

2.6 打包与发布

打包插件为.difypkg文件:

/dify-plugin plugin package ./my-plugin

可选择签名插件以提高安全性,并上传到 Dify 平台或 Marketplace。

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/11 18:41:34

SG-PNh750-MOD-221(Profinet 转 Modbus RTU 网关)特点与功能介绍

一、核心定位与工作模式SG-PNh750-MOD-221 是工业级协议转换网关,核心功能是实现 Modbus RTU 设备与 Profinet 网络的互联互通。设备在 Profinet 侧作为 IO 从站,对接西门子 S7-1200/1500 等 PLC;在 Modbus 侧支持主站或从站模式,…

作者头像 李华
网站建设 2025/12/11 18:40:54

手把手教你用VSCode远程调试量子程序,10分钟快速上手

第一章:手把手教你用VSCode远程调试量子程序,10分钟快速上手 在现代量子计算开发中,使用本地环境直接运行和调试量子程序存在资源限制。结合 VSCode 的远程开发能力与主流量子计算框架(如 Qiskit),开发者可…

作者头像 李华
网站建设 2025/12/11 18:40:33

PC小说阅读器终极免费版:打造个性化数字阅读体验

PC小说阅读器终极免费版:打造个性化数字阅读体验 【免费下载链接】Reader-v2.0.0.4-x64PC端小说阅读器工具下载 Reader是一款专为小说爱好者设计的绿色、开源、免费的阅读神器,致力于提供极致的阅读体验。本版本为v2.0.0.4,发布时间为2023年9…

作者头像 李华
网站建设 2025/12/11 18:39:48

2025全新IDM使用方案:小白也能轻松掌握的终极指南

还在为IDM试用到期而头疼?面对复杂的操作流程不知所措?别担心!本文将从用户角度出发,为你提供最实用、最简单的IDM使用解决方案,让下载管理变得无忧无虑! 【免费下载链接】IDM-Activation-Script IDM Activ…

作者头像 李华