最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Dify調(diào)用Java的三種實(shí)現(xiàn)方式

 更新時間:2025年06月06日 08:26:23   作者:Java中文社群  
在一些復(fù)雜的業(yè)務(wù)中,我們可能需要使用?Dify?調(diào)用外部程序(如?Java?程序),因?yàn)檫@樣才能滿足業(yè)務(wù)的特殊需求,那么問題來了,使用?Dify?調(diào)用?Java?程序的實(shí)現(xiàn)方式有哪些呢?今天我們就來盤點(diǎn)一下,需要的朋友可以參考下

引言

在一些復(fù)雜的業(yè)務(wù)中,我們可能需要使用 Dify 調(diào)用外部程序(如 Java 程序),因?yàn)檫@樣才能滿足業(yè)務(wù)的特殊需求。

例如,當(dāng)我們使用 Dify 實(shí)現(xiàn)“AI 簡歷自動篩選器”的時候,我們首先會使用 AI 篩選出符合招聘要求的簡歷,然后再將簡歷存放到公司的“人才庫”系統(tǒng)中,完成后續(xù)流程的招聘需要(預(yù)約面試、面試評價、發(fā)送 Offer 等操作),這個時候就需要讓 Dify 調(diào)用 Java 程序了。

那么問題來了,使用 Dify 調(diào)用 Java 程序的實(shí)現(xiàn)方式有哪些呢?今天我們就來盤點(diǎn)一下。

1.解決方案概述

Dify 調(diào)用 Java 程序的解決方案有以下幾種:

  • 通過 “HTTP 請求” 的方式調(diào)用 Java 程序。
  • 通過 “自定義工具” 的方式調(diào)用 Java 程序。
  • 通過 MCP 的方式調(diào)用 Java 程序。

接下來,我們分別來看。

2.HTTP請求

HTTP 請求允許通過 HTTP 協(xié)議發(fā)送服務(wù)器請求,適用于獲取外部數(shù)據(jù)、webhook、生成圖片、下載文件等情景。它讓你能夠向指定的網(wǎng)絡(luò)地址發(fā)送定制化的 HTTP 請求,實(shí)現(xiàn)與各種外部服務(wù)的互聯(lián)互通。

它的使用也很簡單,我們只需要在 Dify 的工作流中添加“HTTP 請求”節(jié)點(diǎn)即可,如下圖所示:

它的參數(shù)配置包含以下這些:

當(dāng)然,我們也可以利用它來發(fā)送文件給 Java 程序,并且可以自定義失敗重試配置和錯誤異常配置。

對于被調(diào)用方 Java 來說,只需要提供一個 HTTP 接口即可,當(dāng)然生成環(huán)境要考慮添加 APIKey 以保證調(diào)用的安全性,這里提供一個簡單的 Java 服務(wù)接口:

import com.ai.difyhttpserver.entity.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/it")
public class InterviewController {
    @RequestMapping("/add")
    public boolean add(User user) {
        // 執(zhí)行數(shù)據(jù)庫添加操作
        System.out.println(user.toString());
        return true;
    }
}

3.自定義工具

自定義工具的調(diào)用方式,需要先把 Java 程序發(fā)不成 Dify 中的自定義工具,才能正常調(diào)用,如下圖所示:

配置的 Schema 需要滿足 OpenAPI 協(xié)議,配置如下:

{
  "openapi": "3.1.0",
  "info": {
    "title": "html to image tools",
    "description": "Generate image files based on HTML code",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "http://192.168.3.94:8080"
    }
  ],
  "paths": {
    "/html2img/gen": {
      "get": {
        "description": "Generate image files based on HTML code",
        "operationId": "html2image",
        "parameters": [
          {
            "name": "html",
            "in": "query",
            "description": "HTML code",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {

    }
  }
}

同樣,Java 服務(wù)器端只需要提供一個可以使用 HTTP 協(xié)議訪問的接口即可。

4.MCP通訊

這種通訊方式實(shí)現(xiàn)最麻煩,有點(diǎn)大炮打蚊子的感覺,但也可以實(shí)現(xiàn) Dify 調(diào)用 Java 程序,此時要求先試用 Java 程序,例如 Spring AI 實(shí)現(xiàn)一個 MCP 服務(wù)器端,然后再使用 Dify 添加支持 MCP 調(diào)用的 Agent 策略,來調(diào)用 Java 的 MCP 服務(wù),如下圖所示:

安裝 Agent 策略(支持 MCP 工具)如下圖所示:

MCP SSE 選裝,非必須,可以為后續(xù) Agent 提供 MCP 工具列表,方便 LLM 正確理解和調(diào)用工具。

配置MCP服務(wù)地址

Dify 只支持 HTTP 協(xié)議的 MCP 服務(wù)調(diào)用,它的配置格式如下:

{
  "server_name1": {
    "transport": "sse",
    "url": "http://127.0.0.1:8000/sse",
    "headers": {},
    "timeout": 50,
    "sse_read_timeout": 50
  },
  "server_name2": {
    "transport": "sse",
    "url": "http://127.0.0.1:8001/sse"
  },
  "server_name3": {
    "transport": "streamable_http",
    "url": "http://127.0.0.1:8002/mcp",
    "headers": {},
    "timeout": 50
  },
  "server_name4": {
    "transport": "streamable_http",
    "url": "http://127.0.0.1:8003/mcp"
  }
}

支持配置多個 MCP 服務(wù),或者是以下 JSON 格式也支持:

{
  "mcpServers": {
      "server_name1": {
        "transport": "sse",
        "url": "http://127.0.0.1:8000/sse",
        "headers": {},
        "timeout": 50,
        "sse_read_timeout": 50
      },
      "server_name2": {
        "transport": "sse",
        "url": "http://127.0.0.1:8001/sse"
      },
      "server_name3": {
        "transport": "streamable_http",
        "url": "http://127.0.0.1:8002/mcp",
        "headers": {},
        "timeout": 50
      },
      "server_name4": {
        "transport": "streamable_http",
        "url": "http://127.0.0.1:8003/mcp"
      }
    }
}

配置Agent

Agent 需要配置的項(xiàng)目比較多,首先是 Agent 策略:

然后是 LLM,選擇合適的大模型即可,之后配置 MCP 工具和 HTTP 地址,如下圖所示:

之后配置指令和查詢問題:

測試MCP調(diào)用

我們創(chuàng)建的是一個 ChatFlow,執(zhí)行效果如下:

執(zhí)行符合預(yù)期。

Spring AI 實(shí)現(xiàn) MCP 服務(wù)器端參考我之前發(fā)的文章,這里就不再贅述。

小結(jié)

Dify 調(diào)用 Java 程序的實(shí)現(xiàn)方式有 3 種:HTTP 請求、自定義工具、MCP 通訊方式。其中最簡單、最靈活的實(shí)現(xiàn)方式為 HTTP 請求方式;自定義工具適合偏工具性質(zhì)(而非業(yè)務(wù)性質(zhì))的調(diào)用;MCP 適合一次性注入多個工具方法給 Dify 使用的場景。

以上就是Dify調(diào)用Java的三種實(shí)現(xiàn)方式的詳細(xì)內(nèi)容,更多關(guān)于Dify調(diào)用Java方式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JDBC增刪改查和查唯一的完整代碼解析

    JDBC增刪改查和查唯一的完整代碼解析

    這篇文章主要介紹了JDBC增刪改查和查唯一的完整代碼解析,代碼分為第四部分,每部分代碼都不錯,對jdbc增刪改查操作感興趣的朋友一起學(xué)習(xí)吧
    2016-12-12
  • Springboot快速入門教程

    Springboot快速入門教程

    今天給大家?guī)淼氖顷P(guān)于Springboot基礎(chǔ)的相關(guān)知識,文章圍繞著Springboot的基礎(chǔ)知識及用法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • SpringBoot使用Mybatis-Generator配置過程詳解

    SpringBoot使用Mybatis-Generator配置過程詳解

    這篇文章主要介紹了SpringBoot使用Mybatis-Generator配置過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • SpringMVC 如何使用注解完成登錄攔截

    SpringMVC 如何使用注解完成登錄攔截

    這篇文章主要介紹了SpringMVC 如何使用注解完成登錄攔截,幫助大家更好的理解和學(xué)習(xí)使用springMVC,感興趣的朋友可以了解下
    2021-03-03
  • MyBatis中映射文件的使用案例代碼

    MyBatis中映射文件的使用案例代碼

    這篇文章主要介紹了MyBatis中映射文件的使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Java實(shí)現(xiàn)五子棋游戲

    Java實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 解析 MyBatis 中 Mapper 生效的來龍去脈

    解析 MyBatis 中 Mapper 生效的來龍去脈

    這篇文章主要介紹了解析 MyBatis 中 Mapper 生效的前因后果,介紹了mybatis基本使用及源碼分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • idea中的Maven導(dǎo)包失敗問題解決方案匯總

    idea中的Maven導(dǎo)包失敗問題解決方案匯總

    這篇文章主要介紹了idea中的Maven導(dǎo)包失敗問題解決總結(jié),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Mybatis操作Clickhouse數(shù)組的最佳實(shí)踐分享

    Mybatis操作Clickhouse數(shù)組的最佳實(shí)踐分享

    ClickHouse 的 Array(T) 數(shù)據(jù)類型支持任意有效數(shù)據(jù)類型作為元素,包括基本類型、嵌套數(shù)組和可空類型,本文給大家分享了Mybatis操作Clickhouse數(shù)組的最佳實(shí)踐,需要的朋友可以參考下
    2025-09-09
  • Spring boot2基于Mybatis實(shí)現(xiàn)多表關(guān)聯(lián)查詢

    Spring boot2基于Mybatis實(shí)現(xiàn)多表關(guān)聯(lián)查詢

    這篇文章主要介紹了Spring boot2基于Mybatis實(shí)現(xiàn)多表關(guān)聯(lián)查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論

芦山县| 晋中市| 杭锦旗| 保定市| 扶绥县| 武胜县| 奉化市| 深泽县| 阿克陶县| 修武县| 平舆县| 澄江县| 阿图什市| 新丰县| 东乡族自治县| 灵寿县| 石阡县| 古田县| 凉山| 武隆县| 启东市| 翼城县| 大渡口区| 巴彦县| 沛县| 山丹县| 南投市| 灵丘县| 正安县| 同仁县| 高雄县| 荥经县| 龙里县| 宿州市| 托里县| 平舆县| 漠河县| 比如县| 北流市| 读书| 庄河市|