Difyでのワークフローの作り方!ノードや変数についても徹底解説

アイキャッチ

Difyのワークフローは、LLMや外部ツールと連携して複雑な処理ができるアプリケーションです。

簡単なものであれば初心者でも作成が可能で、アプリケーションの公開まで達成できます。

ノードや変数などの複雑な設定をすれば応用の活用ができるので、Difyの上級ユーザーにおすすめです。

この記事では、ワークフローの作成方法や設定項目について詳しくお伝えします。

監修者
りょうすけさん

りょうちけ

生成AI活用の教科書

生成AIの専門家として、1000人以上が参加するAIセミナーを100回以上開催した実績を持つ。国会議事堂衆議院会館や三井物産株式会社などの一流機関でのAIセミナー主催、生成AIタスクフォースへの参画、Shift AIでの講師活動など幅広く活躍。5000名を超える「人生逃げ切りサロン」のAI講座監修や、上場企業におけるAI顧問・システム開発・研修なども手がける。総フォロワー数32万人を誇るAI情報発信アカウントを運営し、過去には3つの事業のM&A経験を持つなど、AIと経営の両面で豊富な知識と経験を有している。

目次

Difyのワークフロー作成画面について詳しく知ろう

Difyのワークフロー作成の画面構成について解説します。

ワークフローは、ノードごとの設定や構成が複雑になりやすいので作成画面の使い方を学ぶことが重要です。

基本をしっかり押さえてワークフローの編集作業を始めましょう。

ノードパネル

dify-workflow-18
dify-workflow-5

ワークフローの描画画面内の左下にあるノードパネルは、ワークフロー作成に欠かせません。

+のアイコンをクリックすると、ワークフローで利用するノード一覧が表示されます。

ノードとは、ワークフローにおけるステップのことです。

ノードは、カテゴリ別に様々な機能をもつノードが用意されています。

基本のノードはLLM、知識探索、エージェントなどがあります。

あとは、ロジックや変換の機能のノードがありますが、詳細は後述します。

ノード一覧の隣のツールタブを開くと、音声ファイルを扱うツールやスクレイピングのツールなどを挿入ができます。

ノードパネルの他の機能について触れていきます。

ノードの他機能
  • コメントを追加‥コメントを追加します
  • ポインターモード、ハンドモード‥ポインターの形状
  • 画像を出力‥ワークフローの図をエクスポートします
  • ノード整理‥ノードを整理します

メインキャンバス

dify-workflow-6

ワークフローのノードを描画するのが、メインキャンパスです。

処理の開始から終了までのノードの設計図を、メインキャンパスの画面内に作成します。

ノードをノードパネルからドラッグアンドドロップで配置します。

ノードは自由にノードの辺でクリックしながら動かすことで拡大、縮小が可能です。

各ノードの処理の流れが分かるように、処理順に左から右に並べるのがコツです。

ごちゃごちゃしてしまった場合は、ノードパネル内の□が3つあるアイコンの「ノードを整理する」ボタンを押下するときれいに整列、配置されます。

設定パネル

dify-workflow-17

Difyのワークフローの作成において重要なのは、各ノードの設定です。

ノードを描画画面に配置してノードをクリックすると、設定パネルが右側に表示されます。

ノードによって、入出力のインターフェースが決まっています。

設定の内容は、以下の通りです。

設定の内容
  • 開始ノード
  • 入力変数
  • LLM
  • AIエージェント
  • プロンプト
  • 例外処理
  • エージェント
  • エージェント戦略モデル
  • 知識探索
  • 検索変数
  • ナレッジベース
  • 終了ノード
  • 出力変数

項目の右側に赤い星印がついているものは必須項目です。

詳細は後述しますけど、入力変数は後続の全ノードにおいて自由に利用できます。

出力変数は次のノードのみで利用可能です。

初めてのDifyワークフロー作成!ステップバイステップで紹介

Difyでワークフローを作成します。

ファイルの作成から手順ごとに必要な作業を解説します。

今回は、サイト内のキーワードの数を数えるアプリケーションです。

空白からの作成とテンプレートの利用はどっちがいい?

Difyのワークフローの作成には、一から全部作成する方法とテンプレートを利用する方法があります。

それぞれのメリットをもとに、ワークフローの作成経験や目的に応じていずれかの方法を選択しましょう。

空白から新規作成

dify-workflow-16
新規作成のメリット
  • ノードの配置、プロンプトの書き方、構成を一から学べる
  • 変数の書き方や他ノードへの連携方法を自分で調べる必要がある
  • ワークフローの作成を学びたい方におすすめ

テンプレートを利用

dify-workflow-7
テンプレートのメリット
  • 同じような処理をするワークフローをもとに既存のプロンプトなどを少し編集して利用できる
  • 自分で、テンプレートの中から同じような処理を行うワークフローを探す必要がある
  • 特定のユースケースを素早く作成したい場合はこちらの方法がおすすめ

シンプルなQ&Aワークフローを作ってみよう!

①アプリ作成の開始

Difyにアカウントでログインします。

最初の画面から「アプリを作成する」メニュー➡︎「最初から作成する」を選びます。

dify-workflow-16

そのまま「ワークフロー」を選択するか、もう一つの方法が以下の通りです。

STEP
「チャットボット」または「エージェント」を選択してアプリ名、概要を入力する
dify-workflow-4
STEP
アプリ一覧の中からアプリケーションの右下の‥を開く
dify-workflow-20
STEP
「ワークフローオーケストレートに変更する」を選択

プロンプトに入力必須

STEP
元のアプリを削除するをチェックして「切り替えを開始する」を押下

②開始ノードの設定

dify-workflow-8

最初に開始ノードが編集画面に表示されます。

開始ノードは、ワークフローの起点であり、最初の変数や処理に必要な定義を定めるステップです。

開始ノードで、使用する変数は二つあります。

ユーザー独自の変数

入力フィールドを追加して処理に必要な変数を定義します。

変数のデータ型は次の中から選択です。

変数のデータ型
  • テキスト
  • 段落
  • ドラッグアンドドロップオプション
  • 数字
  • 単一ファイル
  • ファイルリスト

システム変数

システムで決まれられている変数で、開発者向けの変数

ここで、URLという名前の変数を定義します。

+を押下して「変数を追加する」を選択すると、入力画面が立ち上がります。

短文を選択して変数名、表示名、最大長を選択します。

最大長は、URLを扱うため200と長目です。

必要な変数をこのように設定していきます。

③LLMノードの追加と設定

開始ノードの編集画面の一番下から「次のノードを編集します」というメニュー➡︎LLMを選択します。

もしくは、描画画面の+からLLMを選択すると、描画画面にLLMノードが配置されます。

LLMのプロンプトを編集します。

コンテキスト

  • USER
    ➡︎ユーザーがAIに指示する内容
  • SYSTEM
    ➡︎具体的にAIが行う処理を箇条書きで記します。
  • ASSISTANT
    ➡︎ユーザー入力への応答

例のように

1.{{URL}}{{Keyword}}が何回現れるかを数えてください
2.{{KEYWORD}}の漢字ひらがなカタカナの表記が異なるものはカウントしません

という手順です。

コンテキストに、プロンプトで利用する変数を記述することが必須です。

④終了ノードの設定

dify-workflow-21

LLMノードの設定から「次ノードを選択する」メニューで終了ノードを選びます。

+から終了ノードを選択することもできます。

出力結果の変数を追加する方法です。

STEP
編集画面の出力変数の右のプラスを押下
STEP
変数値を設定を選択すると変数の一覧が表示される
STEP
一覧からLLMの出力変数textを選択
STEP
変数が複数ある場合は1~3の手順を繰り返す

以上で、終了ノードの設定は完了です。

⑤ノードの接続

dify-workflow-9

ノード同士を接続します。

今回は、開始ノードから次のノードを追加する形にしたので、接続された状態です。

各ノードをそれぞれ追加して編集した場合は接続を次のように行います。

STEP
ノードにカーソルをあてると左右にプラスの形が表示されます
STEP
右のプラスにカーソルを充てるとポインタがプラスの形になる
STEP
クリックして接続するノードの左の辺にあてるとコネクタで接続される

1~3を繰り返して開始ノードから終了ノードを接続します。

⑥テスト実行とデバッグ

dify-workflow-3
dify-workflow-14
dify-workflow-22

テスト実行をしてみます。

右上のメニューの▷実行のボタンを押下すると入力欄が現れます。

変数などを入力して実行すると、開始ノードから始まり実行しているステップのノードがアクティブになります。

数秒で結果が出て、詳細情報、実行追跡を確認できます。

各ステップの実行にかかった時間や使用トークン数が分かります。

予期しない結果となった場合は、プロンプトなどの見直しを行い再度実行しましょう。

⑦保存と公開

作成したアプリケーションを保存、公開する方法です。

右上の公開するというボタンを押下して、「更新を公開」を選択すると最新の状態で保存ができます。

また、左のアプリケーションのアイコンを押下すると、アプリケーションの公開URLとバックエンドAPIが表示されます。

公開URLを共有することで、他ユーザーがアプリケーションにアクセス、使用が可能です。

また、APIのアドレスを用いて他アプリケーションに直接埋め込むことができるので便利です。

ワークフロー作成に必要なノードと変数

ワークフローの作成に必要なノードや変数についてお伝えします。

処理の内容によって適切なノードを利用することが重要です。

ワークフローの主要ノードについて解説

dify-workflow-2

ワークフローの主要ノードについて解説します。

知識探索

ナレッジベースのドキュメントを検索する

IfElse

条件分岐

例:ユーザーからの入力内容が自社の関連に関することならAの処理、他のことならBの処理をする

イテレーション

リスト変数を対象に繰り返し処理

例:テキストの行ごとに特定の列に対応するデータを抜き出す

ループ

条件を達成するまで繰り返し処理をする

例:特定の情報が見つかるまでページ内のリンクを検索する

質問分類器

質問の内容を分類して処理を分ける

例:質問の内容がサービスに関することならA、社員からの問い合わせはB、クレームならC、その他はD

コード実行

PythonやJsonコードを実行する

テンプレート

jinjaテンプレートでデータを文字列に変換する

https://jinja.palletsprojects.com/en/stable

上記のjinjaテンプレートに基づいて文字列生成のコードを入力します

変数集約

複数の分岐を集約して下層ノードの設定を統一する

例:LLMのモデルによる処理を複数行って結果を集約する

テキスト抽出

文章をLLMに読み込み可能なテキスト形式に変換する

ワードやテキスト形式のファイルを指定して文書内のテキストを出力します

変数代入

変数に値の受け渡しをする

例:前ノードから受け渡されたinfo_flgという変数に特定の処理が終わったらinfo_flg=9とする

パラメータ抽出

文章から、特定の単語をパラメータとして抽出する

例:「昨日デパートに行った」という文章からdate(日付)を昨日、place(場所)をデパートとする

HTTPリクエスト

外部APIをHTTPリクエストとして送信する

URLを指定して、GETメソッドで呼び出すという方法でリクエスト情報を定義します

変数の基本について知っておこう!入力・出力・参照

Difyのワークフローにおいては、変数の受け渡しが発生します。

変数の基本知識及び参照方法などをお伝えします。

dify-workflow-23
dify-workflow-13
dify-workflow-12
dify-workflow24

入力変数

ワークフローにおいて、ノードにおいて指示の内容として利用する変数です。

開始ノードでは、ユーザーからの入力変数を定義できます。

ワークフロー内の後続の全ノードで利用可能(グローバル変数)です。

出力変数

各ノードで処理を行った結果を格納する変数です。

ノードによって形式、変数名が決められています。

次のノードの入力変数としてのみ利用可能(ローカス変数)です。


各ノードで定義した変数を参照する方法です。

各ノードによって入力変数、検索変数、コンテキストなどの変数を定義する場合、以下の方法で行います。

STEP
ノードをクリックすると編集画面が立ち上がる
STEP
変数を入力するフィールドを選択すると変数一覧が表示されます
STEP
利用する変数を選択

検索フィールドに変数名を直接入力することも可能

複数ある場合は、1~3の手順を繰り返して変数を追加します。

作成したワークフローの活用方法

Difyで作成したワークフローを活用します。

ワークフローは、ノードを複雑に組み合わせることにより高度な処理を実現できます。

ツールやナレッジベースとの連携もDifyのワークフローの特徴です。

APIとして利用する

Difyで作成したワークフローを、APIとして外部システムと連携することが可能です。

既存のシステムに簡単にワークフローを組み込むことができます。

更新の反映も自動で行われるので便利です。

APIキーについては前述したとおりですが、スタジオメニューで編集する画面においてアプリケーションのアイコンを押下するとAPIバックエンドキーを参照できます。

このURLはデフォルトでAPIキーとして、自由に利用可能となっています。

もし、外部参照を希望しない場合はURLの右の稼働中のトグルボタンを左にしておきましょう。

さらに高度なワークフローを作成する

応用版として、より複雑な処理を行うワークフローを作成します。

例としては、次のような処理を実現可能です。

実現可能な処理
  • 入力した場所の情報をもとに、1日の日帰り旅行コースを作成して場所の画像付きで出力する
  • WEBの問い合わせフォームにてチャットボットが行った処理の統計を取ってエクセルにまとめる
  • 社内のシステムにおけるプログラムの更新状況を定期的に取得してバックアップをとって外部媒体に格納する

難しそうに見えますけど、ほとんどの処理がノーコード、ローコードで実装できます。

Difyでの開発における上級者におすすめです。

ワークフローを作成してみよう!

Difyのワークフローは、AIの機能を利用してユーザーの入力をもとに、アルゴリズムに基づいた処理を行うアプリケーションです。

Difyの編集画面は分かりやすいインターフェースで、初心者でも作成ができます。

アプリケーションの作成に慣れた方でしたら応用の開発を推奨します。

AI機能を活用して業務やプライベートをより便利でクリエイティブに実践できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次