Dify 插件開發筆記

Dify 插件開發

開發流程

選擇插件類型
編寫清單文件
manifest.yaml
安裝依賴
實現插件功能
測試調試
打包發布

開發準備

安裝 Dify 插件開發腳手架工具參考

[初始化開發工具 | Dify](https://docs.dify.ai/zh-hans/plugins/quick-start/develop-plugins/initialize-development-tools)

創建項目,選擇插件類型

dify-plugin-windows-amd64.exe plugin init

在這里插入圖片描述
以Tool工具為例,假如名稱為table2json

創建完成后,修改tools目錄下table2json.py,實現具體的業務邏輯

在table2json.yaml定義輸入參數

parameters:- name: tablestype: filesrequired: truelabel:en_US: input fileszh_Hans: 輸入文件pt_BR: input fileshuman_description:en_US: convert table to json formatzh_Hans: convert table to json formatpt_BR: convert table to json formatllm_description: convert table to json formatform: llm

修改代碼

import json
from collections.abc import Generator
from typing import Any
from dify_plugin import Tool
from dify_plugin.entities.tool import ToolInvokeMessage
from dify_plugin.file.file import File
import xxx # 與業務相關的包class Table2jsonTool(Tool):def _invoke(self, tool_parameters: dict[str, Any]) -> Generator[ToolInvokeMessage]:# 獲取輸入參數if 'tables' not in tool_parameters or not tool_parameters['tables']:yield self.create_text_message("No files provided")returnfile_obj: File = tool_parameters['tables'][0]print("---1---類型")print(file_obj)# 具體的業務邏輯# 輸出格式定義yield self.create_json_message({"result": json_str})

安裝依賴

自己導入的包,需寫入requirements.txt
執行下面的命令

pip install -r requirements.txt

調試

在這里插入圖片描述

請添加圖片描述

發布

請添加圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76957.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76957.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

行星際激波在日球層中的傳播:Propagation of Interplanetary Shocks in the Heliosphere (第二部分)

行星際激波在日球層中的傳播:Propagation of Interplanetary Shocks in the Heliosphere (第一部分)- Chapter 1: Introduction & Chapter 2: Basics of Magnetohydrodynamics 行星際激波在日球層中的傳播:Propagation of In…

巴法云平臺-TCP設備云-微信小程序實時接收顯示數據-原理

微信小程序通過WebSocket或HTTP長輪詢連接平臺(而非直接使用TCP)!!! 物聯網平臺對協議層的一種封裝設計——將底層通信協議(如TCP)與應用層業務邏輯(如主題路由)解耦&am…

QT Sqlite數據庫-教程002 查詢數據-上

【1】DQL語句: DQL語句(數據查詢語言),用來查詢數據記錄。DQL 基本結構由 SELECT FROM、WHERE、JOIN 等子句構成。DQL 語句并不會改變數據庫,而是讓數據庫將查詢結果發送結果集給客戶端,返回的結果是一張虛…

基礎數學:線性代數與優化理論

本篇文章簡單帶您復習線性代數與優化理論(主要是我發表的文章中涉及過的或相關聯的) 微積分和概率與統計由此進:基礎數學:微積分和概率與統計-CSDN博客 圖論與信息論由此進:基礎數學:圖論與信息論-CSDN博…

java android持久化數據

1. SQLite 數據庫(Android 內置) 1.1 創建數據庫幫助類 public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME "MyDatabase.db";private static final int DATABASE_VERSION 1;// 表名和列名…

鴻蒙動畫與交互設計:ArkUI 3D變換與手勢事件詳解

大家好,我是 V 哥。 在鴻蒙 NEXT 開發中,ArkUI 提供了豐富的 3D 變換和手勢事件功能,可用于創建生動且交互性強的用戶界面。下面詳細介紹 ArkUI 的 3D 變換和手勢事件,并給出相應的 ArkTS 案例代碼。 1. ArkUI 3D 變換 ArkUI 支…

HTTP 和 HTTPS 協議的區別及使用場景

在互聯網的世界里,HTTP 和 HTTPS 是我們經常接觸到的兩種網絡協議,它們在數據傳輸、安全性等方面存在諸多差異,適用的場景也各有不同。? 一、HTTP 和 HTTPS 的基本概念? HTTP,即超文本傳輸協議(Hyper - Text Transfer Protocol),是一種用于分布式、協作式和超媒體信息…

【微服務管理】注冊中心:分布式系統的基石

在分布式系統日益普及的當下,如何高效地管理眾多服務實例成為關鍵問題。注冊中心應運而生,它猶如分布式系統的 “指揮中樞”,承擔著服務注冊、發現等核心任務,為整個系統的穩定運行和高效協作提供堅實保障。本文將深入探討注冊中心…

高并發短信系統設計:基于SharingJDBC的分庫分表、大數據同步與實時計算方案

高并發短信系統設計:基于SharingJDBC的分庫分表、大數據同步與實時計算方案 一、概述 在當今互聯網應用中,短信服務是極為重要的一環。面對每天發送2000萬條短信的需求,我們需要一個能夠處理海量數據(一年下來達到數千萬億級別&…

2025最新系統 Git 教程(七)(完結)

第4章 分布式Git 4.1 分布式 Git - 分布式工作流程 你現在擁有了一個遠程 Git 版本庫,能為所有開發者共享代碼提供服務,在一個本地工作流程下,你也已經熟悉了基本 Git 命令。你現在可以學習如何利用 Git 提供的一些分布式工作流程了。 這一…

OpenCV 圖像旋轉

一、OpenCV 圖像旋轉介紹 在計算機視覺和圖像處理領域,圖像旋轉是指將圖像圍繞某個中心點按照一定的角度進行轉動。旋轉操作會改變圖像中像素的位置,從而得到新的圖像布局。這一操作在很多場景中都有重要應用,比如文檔矯正、目標檢測時對圖像…

<C#>在 .NET 開發中,依賴注入, 注冊一個接口的多個實現

在 .NET 開發里,有時一個接口會有多個實現類,此時就需要向依賴注入容器注冊多個實現。下面會詳細介紹不同場景下如何注冊多個實現,以及怎樣從容器中解析這些實現。 1. 注冊多個實現 在 .NET 中,依賴注入容器可以通過不同方式注冊…

idea 保存格式化 但是不格式化 Xml

xml- 其他 - 保持空格勾選上 https://blog.csdn.net/m0_65724734/article/details/128378290?spm1001.2101.3001.6650.8&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-128378290-blog-135147277.235%5Ev43%5Epc_blog_bo…

如何在C++中優雅地繪制圖表

如何在C項目中優雅地繪制圖表 matplotlibpreparematplotlibcpp.hpython3vs configuretest Gnuplotpreparegnuplotgnuplot-iostream.hboostvs configuretest MathGL 在C項目中,在進行一些數據分析時往往不夠直觀,若能借助圖表進行分析可以達到事半功倍的效…

vue3使用keep-alive緩存組件與踩坑日記

目錄 一.了解一下KeepAlive 二.使用keep-alive標簽緩存組件 1.聲明Home頁面名稱 三.在路由出口使用keep-alive標簽 四.踩坑點1:可能需要配置路由(第三點完成后有效可忽略) 五.踩坑點2:沒有找到正確的路由出口 一.了解一下Kee…

ros通信機制學習——latched持久化機制

點云的地圖的發送邏輯中,我發現每次使用rostopic echo 時只會打印一次,然后就不會再打印了。并且rviz中也是始終都會顯示的,這里面其實就是用到了latched持久話機制,可以接受這最后一次發布的消息。 我們通過一個具體的項目來學習…

力扣每日打卡 1922. 統計好數字的數目 (中等)

力扣 1922. 統計好數字的數目 中等 前言一、題目內容二、解題方法1. 暴力解法(會超時,此法不通)2. 快速冪運算3. 組合計數的思維邏輯分析組合計數的推導例子分析思維小結論 4.官方題解4.1 方法一:快速冪 三、快速冪運算快速冪運算…

如何使用通義靈碼玩轉Docker - AI助手提升開發效率

一、引言 Docker 作為一種流行的虛擬化技術,能夠幫助開發者快速搭建所需的運行環境。然而,對于初學者來說,掌握 Docker 的基本概念和使用方法可能會遇到一些挑戰。本文將介紹如何利用通義靈碼這一智能編碼助手,幫助你更高效地學習…

從一到無窮大 #45:InfluxDB MCP Server 構建:從工程實踐到價值重構

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。 本作品 (李兆龍 博文, 由 李兆龍 創作),由 李兆龍 確認,轉載請注明版權。 文章目錄 工程實踐遇到的問題MCP Host選擇開發流程 結果展現可能性展望工作生活帶來的變化 MCP…

JAVA SDK通過proxy對接google: GCS/FCM

前言:因為國內調用google相關api需要通過代理訪問(不想設置全局代理),所以在代理這里經常遇到問題,先說一下結論 GCS 需要設置全局代理或自定義代理選擇器, FCM sdk admin 在初始化firebaseApp時是支持設置的。 GCS: 開始時嘗試在…