2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DifyAdvent Calendar 2024

Day 24

インターネットにつながらない環境でDifyを使用するメモ (APIサーバとの連携編)

Last updated at Posted at 2024-12-23

はじめに

インターネットにつながらない環境でDifyを使用するメモです。
インターネットにつながらない環境でDifyの基本的な使い方のメモはこちらです。

今回はインターネットにつながらない環境の中でDifyと外部(APIサーバ)を連携させる方法について説明します。
APIサーバにはNode-REDを使用する前提で説明します。

スクリーンショット 2024-12-23 17.25.31.png

環境準備

インターネットにつながらない環境にDifyを構築するメモはこちらです。

インターネットにつながらない環境にNode-REDを構築するメモはこちらです。

Node-REDをDifyと同じサーバ(またはVM)の上で起動することも可能です。
その場合、Node-REDを起動する時にDifyと同じdockerネットワーク(docker_default)を指定します。

sudo docker run -d -v /home/ユーザー名/.node-red:/data -p 1880:1880 --net=docker_default --name node-red nodered/node-red:latest

API接続

DifyとNode-REDをREST APIで接続します。

Node-RED

サンプルとしてシステムの状態をOKまたはNGで応答するフローを作成します。
フローの全体像です。

30.jpg

以下のノードを使用します。

  • http in
  • change
  • http response

「http in」ノードのURLに名前(パス)を入力します。例として「/node-red」とします。

33.jpg

「change」ノードはシステムの状態を設定します。
対象の値はJSONata式(ランダムで「OK」または「NG」を応答する例)で設定します。

JSONata
$shuffle(["OK","NG"])[0]

31.jpg

32.jpg

「http response」ノードはそのままで、設定する必要はありません。

Dify

サンプルとしてAPIサーバへシステムの状態を問い合わせて、応答結果(OKまたはNG)に応じてシステムの状態を回答するワークフローを作成します。
ワークフローの全体像です。

40.jpg

以下のノードを使用します。
「開始」ノードの右側に「HTTPリクエスト」「LLM」「終了」ノードを追加します。

「開始」ノードはそのままで、設定する必要はありません。

「HTTPリクエスト」はAPIのURLにNode-REDのURLを入力します。

51.jpg

Node-REDをDifyと同じサーバ(またはVM)の上でコンテナを起動した場合の例です。

http://node-red:1880/node-red

「LLM」ノードはコンテキストのSYSTEMにプロンプトを入力します。

52.jpg

システム状態がOKの場合は正常です。
システム状態がNGの場合は異常です。
システム状態を回答してください。

#システム状態
/HTTPリクエストの変数{x}body

「終了」ノードは出力変数にLLMの変数{x}textを選択します。

https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_72479_756ef3ae-ee77-fab7-e843-97420a1bd950.jpeg

実行結果

「実行」を選択します。
システム状態がOKの場合の応答例です。

41.jpg

システム状態がNGの場合の応答例です。

42.jpg

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?