成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

超實用!Dify調用Java的三種實現方式!

人工智能
Dify 調用 Java 程序的實現方式有 3 種:HTTP 請求、自定義工具、MCP 通訊方式。其中最簡單、最靈活的實現方式為 HTTP 請求方式;自定義工具適合偏工具性質(而非業務性質)的調用;MCP 適合一次性注入多個工具方法給 Dify 使用的場景。

在一些復雜的業務中,我們可能需要使用 Dify 調用外部程序(如 Java 程序),因為這樣才能滿足業務的特殊需求。

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

那么問題來了,使用 Dify 調用 Java 程序的實現方式有哪些呢?今天我們就來盤點一下。

1.解決方案概述

Dify 調用 Java 程序的解決方案有以下幾種:

  1. 通過“HTTP 請求”的方式調用 Java 程序。
  2. 通過“自定義工具”的方式調用 Java 程序。
  3. 通過 MCP 的方式調用 Java 程序。

接下來,我們分別來看。

2.HTTP請求

HTTP 請求允許通過 HTTP 協議發送服務器請求,適用于獲取外部數據、webhook、生成圖片、下載文件等情景。它讓你能夠向指定的網絡地址發送定制化的 HTTP 請求,實現與各種外部服務的互聯互通。

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

圖片圖片

它的參數配置包含以下這些:

圖片圖片

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

對于被調用方 Java 來說,只需要提供一個 HTTP 接口即可,當然生成環境要考慮添加 APIKey 以保證調用的安全性,這里提供一個簡單的 Java 服務接口:

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) {
        // 執行數據庫添加操作
        System.out.println(user.toString());
        return true;
    }
}

3.自定義工具

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

圖片圖片

配置的 Schema 需要滿足 OpenAPI 協議,配置如下:

{
  "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 服務器端只需要提供一個可以使用 HTTP 協議訪問的接口即可。

4.MCP通訊

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

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

圖片圖片

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

配置MCP服務地址

Dify 只支持 HTTP 協議的 MCP 服務調用,它的配置格式如下:

{
  "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 服務,或者是以下 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 需要配置的項目比較多,首先是 Agent 策略:

圖片圖片

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

圖片圖片

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

圖片圖片

測試MCP調用

我們創建的是一個 ChatFlow,執行效果如下:

圖片圖片

執行符合預期。

Spring AI 實現 MCP 服務器端參考我之前發的文章,這里就不再贅述。

小結

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


責任編輯:武曉燕 來源: 磊哥和Java
相關推薦

2024-08-13 08:25:16

C#外部程序方式

2024-05-27 00:20:00

2018-04-02 14:29:18

Java多線程方式

2010-03-12 17:52:35

Python輸入方式

2021-11-05 21:33:28

Redis數據高并發

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點登錄代碼前端

2022-11-03 08:44:24

代理模式Java設計模式

2024-07-01 12:42:58

2023-12-04 09:31:13

CSS卡片

2012-07-17 09:16:16

SpringSSH

2022-01-17 08:19:51

Javascript 接口前端

2024-07-08 09:03:31

2022-01-20 08:38:02

Java接口Lambda

2010-09-07 16:31:27

CSS

2020-11-01 17:10:46

異步事件開發前端

2019-11-20 18:52:24

物聯網智能照明智能恒溫器

2021-03-07 10:17:40

RDMA網絡傳輸網絡協議

2025-06-12 10:27:02

2022-03-16 14:27:49

CSS三角形前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品网站 | 国产精品久久久久一区二区三区 | 淫片一级国产 | 亚洲精品国产成人 | 久草精品在线 | 人人澡人人射 | 刘亦菲国产毛片bd | 久久国产三级 | 久久精品成人 | 国产一二区视频 | 一区福利视频 | 天天操操| 成人影院网站ww555久久精品 | 红桃成人在线 | 狠狠色综合久久婷婷 | 亚洲aⅴ精品| 91大神xh98xh系列全部 | 国产精品美女久久久久aⅴ国产馆 | 日韩三级电影一区二区 | 欧美福利视频 | 亚洲成人自拍 | 日韩精品一区二区久久 | 一区二区三区国产在线观看 | 国产精品视频久久久 | 亚洲欧美在线观看 | 欧美成人一区二区三区 | 日日夜夜天天 | 2018天天干天天操 | 日韩在线免费电影 | 国产电影一区二区在线观看 | 国产毛片毛片 | 亚洲一区二区av在线 | 午夜寂寞福利视频 | 亚洲一区二区三区久久 | 日本久久网 | 亚洲欧美精 | 欧美精品一区二区三区在线 | 神马久久久久久久久久 | 99国产精品视频免费观看一公开 | 久久九九99 | 国产成人网 |