見出し画像

【初心者必見】Dify「ワークフロー」の使い方完全ガイド|公開の流れ・ナレッジ設定方法・活用シーン…etc.を一挙紹介!

「Dify」は、プログラミング不要で直感的に生成AI搭載アプリを作れるプラットフォーム。こちらはリコーやサイバーエージェント等の国内有名企業で実際に導入・活用されている、注目の生成AI系ソリューションです。

そんなDifyは、5種類あるアプリ作成用のひな形の1つとして「ワークフロー」を完備。こちらは複雑な手順のタスクを安定して自動化したい場合に最適です。

今回はそんなDifyのワークフローについて、アプリの作成・設定方法や活用シーンをご紹介します。

本noteは「面倒な作業を生成AIでまとめて自動化したい方」におすすめです。完読いただくことで、以下の内容が理解できます。

1️⃣ Difyのワークフローでのアプリ作成方法
ワークフローの作成・公開・使用方法からブロックの機能までわかりやすく解説します。

2️⃣ Difyのワークフローに関連する各種設定の方法
ナレッジの作成方法やエージェンティック戦略の導入方法も実演付きでお見せします。

3️⃣ 実際の業務におけるワークフローの最適な活用シーン
実際の業務を想定したワークフローの構築例・活用イメージをご紹介します。


📌 Noteをご覧になっている方へ
WEELでは、生成AIを業務や事業に取り入れたい方向けの各種セミナーを開催しています。
「どんな活用ができるのか知りたい」「自社でどう始めればいい?」という方に向けて、現場視点のノウハウや最新事例をご紹介しています。
セミナーに参加する


Difyの「ワークフロー」とは?

プログラミングの知識不要で生成AIアプリを作れるノーコードプラットフォーム「Dify」では、5種類のアプリ作成用ひな形(アプリタイプ)が用意されています。

ノーコードプラットフォーム「Dify」

「ワークフロー」はそんなDifyのアプリタイプの一種で、下記を特徴としています。

● 機能をもったブロックを工程順に連結・分岐させてアプリを作成可
● 双方向会話や記憶の機能を廃し、安定した処理を実現
● 数十〜数百件の処理を一括で実行可(バッチ処理)
● 外部ツールやスケジュールによる自動起動にも対応(トリガー)

このワークフローは複雑な手順のタスクを繰り返し安定して自動化できる点が魅力。SNS用コンテンツの作成・投稿や膨大な人物リストの処理等、「手順が決まりきっているものの面倒な作業」の自動化におすすめです。

なお、ワークフローの簡易版「テキストジェネレーター」について詳しく知りたい方は、下記の記事も併せてご確認ください。


Difyでのワークフローの作り方・使い方

ここからは、Dify(ローカル版)でのワークフローの作り方・使い方を実演形式で紹介します。

基本の作り方と完成したアプリの使い方

まずは、「SNSの投稿文を生成してくれるフロー」を例に、基本的なワークフローの組み方をお見せしていきます。それでは早速、Difyの「スタジオ」画面にて「最初から作成」を選んでみましょう。

「最初から作成」を選んでみましょう。

最初から作成を選ぶと、以下のアプリタイプ選択画面に移れます。今回はここで「ワークフロー」を選んで、アプリ名(必須)とアイコン・説明(任意)を設定します。設定後は「作成する」をクリックしましょう。

「ワークフロー」を選んで、アプリ名(必須)とアイコン・説明(任意)を設定

なお、アプリのアイコン欄はクリックで編集可。Dify側で用意されている絵文字または自分でアップロードした画像をアイコンに設定できます。

アプリのアイコン欄はクリックで編集可。

ワークフローを選んでアプリを作成すると、最初に開始ノードの選択画面(下記)が表示されるはずです。

ここではワークフローの起動方法を「ユーザー入力」か「トリガー(スケジュールや外部ツールに依存する自動起動)」の2種類から選べます。今回は基本の作り方の紹介ということで、「ユーザー入力」を選択しましょう。

開始ノードの選択画面

開始ノードを選ぶと、ワークフローの作成画面が表示されます。ここでは下記の操作を通して、ブロックが連なるフローチャート形式のアプリを作成可能です。

Difyでのブロックの操作方法

それでは早速、先ほど選んだ起点のブロック「ユーザー入力」にカーソルを合わせて、後続のブロックを選択します。今回は「LLM」を追加してみましょう!

「ユーザー入力」にカーソルを合わせて、後続のブロックを選択

次に、追加したブロック「LLM」の設定を行っていきたいところ……ですが、その前にユーザー入力側での設定を済ませます。

ユーザー入力側での設定

はじめに設定したいブロック(今回はユーザー入力)をクリックして、画面右側に設定パネルを表示させます。続いて、今回は入力フィールドの「+」をクリックしてみましょう。

入力フィールドの「+」をクリック

すると以下のとおり、入力フィールドの編集画面が表示されます。ここではアプリが受け付けるユーザー入力の形式を定義できます。

今回は以下のとおり、シンプルに最大100文字までの短文を受け付ける設定にして、変数名(必須)も定義しておきましょう。

アプリが受け付けるユーザー入力の形式を定義

さて今度は、ブロック「LLM」の設定に移ります。まずは、画面右側に表示させた設定パネルからAIモデル欄をクリックして、使用したい生成AIモデルを選びましょう。

使用したい生成AIモデルを選びましょう。

次に、LLMに渡すプロンプトも設定していきます。ここではSYSTEM欄からLLMの大まかな役割を、USER欄からLLMにさせたい処理をそれぞれ定義可能です。

今回はSYSTEM欄に役割「SNSでバズる文章の考案」を、USER欄に先ほど設定したユーザー入力の変数をそれぞれ入力してみます。

USER欄に先ほど設定したユーザー入力の変数をそれぞれ入力

最後に、ブロック「LLM」が生成した文章をユーザーに出力するしくみも整えていきます。その第一歩として、ブロック「LLM」の後にブロック「出力」を追加してみましょう。

※今回は右クリックでブロックを追加後、前段のブロックからドラッグで接続しました。(下図)

ブロック「LLM」の後にブロック「出力」を追加

ブロック「出力」を追加・選択すると、以下の設定パネルが表示されるはずです。

今回はここで、「LLMが生成した文章」をユーザーに表示したいので、出力変数欄からLLMが生成したテキスト変数(text)を選択します。これでワークフロー自体は完成です。

出力変数欄からLLMが生成したテキスト変数(text)を選択

さて、ここからはワークフローの動作テストに移っていきましょう。

作ったワークフローを試すには、作成画面右上の「テスト実行」をクリックして、テスト用のパネルを開きます。続けて、「入力」タブの入力欄を埋めて「実行開始」をクリックしましょう。

ワークフローの動作テスト

少し待つと、以下のとおり「結果」タブにワークフローの処理結果が表示されるはずです。今回はうまく動作していますね。

なお、「詳細情報」タブからは消費トークン数や出力の原文等が、「実行追跡」タブからは各ブロックでの処理時間等がそれぞれ確認できます。

「結果」タブにワークフローの処理結果が表示される

テスト完了後は、そのまま作成したワークフローを公開(保存)していきます。

作成画面右上の「公開する」をクリックしたのち、「更新を公開」を選択しましょう。Dify側から「成功」と返ってくれば、無事ワークフローの保存は完了です。

「成功」と返ってくれば、無事ワークフローの保存は完了

Difyで作成したワークフローはスタジオで選択後、作成画面の「公開する」から「アプリを実行 / アプリを一括実行」のいずれかをクリックすることで利用可能です。

、作成画面の「公開する」から「アプリを実行 / アプリを一括実行」のいずれかをクリック

うち、「アプリを実行」からアプリを起動する、またはアプリ画面から「1回実行」を選択すると1回ずつ入出力を処理できるUIが表示されます。

「アプリを実行」からアプリを起動

そして、「アプリを一括実行」での起動orアプリ起動後に「一括実行」の選択で、複数の処理を入力1回でまとめて行えるバッチ処理用のUIが表示されます。

「アプリを一括実行」での起動orアプリ起動後に「一括実行」の選択で、複数の処理を入力1回でまとめて行えるバッチ処理用のUIが表示

このバッチ処理用のUIでは、複数回分の入力を下記形式のCSVファイルに記入して、まとめてアップロードが可能です。

● アプリ画面中の「CSV形式要件」を満たす配列・ヘッダー・要素

● UTF-8エンコード

CSV形式要件

こちらを実行してみると、以下のとおり複数回分の結果が表示されます。実行結果は一括ダウンロードにも対応しています。

一括ダウンロードにも対応

さて、ワークフローでの各処理の結果は、作成画面左側から遷移できる「ログ」にて確認も可能です。(下図赤枠)

作成画面左側から遷移できる「ログ」にて確認も可能

ワークフローのログ画面を開くと、以下のとおり各処理の詳細が閲覧できます。

各処理の詳細

気になる処理についてはその列をクリックして、さらなる詳細を確認することも可能です。

さらなる詳細を確認

高度な作り方

続いては、Dify・ワークフローの発展編。「ナレッジとWeb検索結果をもとにSNSやメルマガの文章を作成するフロー」を例に、条件分岐ありの複雑なワークフローを作っていきます。

それではまず、今回作成するワークフローの処理の流れと外観を以下でお見せします。

  1. ユーザー入力:文章のテーマとスタイル(SNS / メルマガ)を受付け

  2. コード実行:テーマが70文字を超える否かを判別

  3. IF/ELSE:文字数の判別結果で分岐

    1. (処理なし)

    2. LLM:テーマに関係するテキストを生成

  4. 変数集約器:テーマと生成テキストを統合

    1. 知識検索:入力&生成テキストに関係するナレッジを検索

    2. Tavily Search:入力&生成テキストに関係する情報をWeb検索

  5. 変数集約器:ナレッジとWeb検索結果を統合

  6. IF/ELSE:指定したスタイルがSNSかメルマガかで条件分岐

    1. LLM→出力:ナレッジ&Web検索結果をもとにSNS投稿文を生成

    2. LLM→出力:ナレッジ&Web検索結果をもとにメルマガ本文を生成

ワークフローの処理の流れと外観

以下、各ブロックの細かな仕様もみていきましょう!

まず、ワークフローの起点となるブロック「ユーザー入力」については下記のとおり、記事のテーマとスタイルを受け付けるようにしました。 

● 記事のテーマ / theme:フィールドタイプ「短文」で、120文字以内の自由記述形式
● 記事のスタイル / style:フィールドタイプ「選択」で、SNS / メルマガの二択形式

記事のテーマとスタイル

続いて、ブロック「コード実行」では、入力された記事のテーマが70文字を超えるか否かをPythonコードに判定させています。

Pythonコードに判定させています。

さらに、後続のブロック「IF/ELSE」では、コード実行の判定結果をもとにフローが分岐します。

コード実行の判定結果をもとにフローが分岐

そして、記事のテーマが70文字以下の場合にのみ、ブロック「LLM」がテーマに関係するテキストを生成。ナレッジ・Webの検索時に関連する情報が見つけやすいように工夫しています。

記事のテーマが70文字以下の場合にのみ、ブロック「LLM」がテーマに関係するテキストを生成

最後に、ブロック「変数集約器」で、入力した記事のテーマとLLMが生成したテーマ関連の文章を1つにまとめます。

ブロック「変数集約器」で、入力した記事のテーマとLLMが生成したテーマ関連の文章を1つに

次に、フローはブロック「知識検索」とブロック(ツール)「Tavily Search」へと分岐。ナレッジ検索とWeb検索を同時並行で行っていきます。

うち、ブロック「知識検索」については、WEELの生成AIずかん全記事からなるナレッジベースを先ほど集約した記事テーマ&LLM生成文で検索するしくみです。

ナレッジベースを先ほど集約した記事テーマ&LLM生成文で検索

そしてブロック「Tavily Search」でも、同じ記事テーマ&LLM生成文を使って、Webを検索するしくみを採用しています。

同じ記事テーマ&LLM生成文を使って、Webを検索するしくみを採用

このナレッジ検索&Web検索の結果については、再度ブロック「変数集約器」で1つの変数にまとめています。

再度ブロック「変数集約器」で1つの変数

さて、残るは文章生成と出力の工程です。

今回は文章生成の前に、ブロック「IF/ELSE」を設置。ユーザー入力で指定したスタイル(SNS / メルマガ)をもとに後続の処理が変わるようにしました。

。ユーザー入力で指定したスタイル(SNS / メルマガ)をもとに後続の処理

続く2種類の処理については、基本的にほぼ同じ。ブロック「LLM」で与えられたテーマとナレッジ検索&Web検索の結果をもとに文章を生成したのち、ブロック「出力」でユーザー側に表示する流れとなっています。

まず、SNS選択時の各ブロックの設定は、以下のとおりです。

ブロック「LLM」で与えられたテーマとナレッジ検索&Web検索の結果をもとに文章を生成

そして、メルマガ選択時については、以下のようになっています。

メルマガ選択時

さて、ここからは今ご紹介したワークフローのテスト結果を駆け足でお届けします。

それではまず、テーマが70文字以下かつスタイル「SNS」を選択した場合について、入力内容と結果をどうぞ!

テーマが70文字以下かつスタイル「SNS」を選択した場合 入力
テーマが70文字以下かつスタイル「SNS」を選択した場合 出力

品質はさておき、SNSっぽい文体でかつナレッジの内容(SDXL Turbo)が反映された文章が返ってきています。これはいい感じなんじゃないでしょうか。

次に、同じ70文字以下のテーマでスタイル「メルマガ」を選択した場合についても、入力内容&結果をみていきましょう!

70文字以下のテーマでスタイル「メルマガ」を選択した場合 入力
70文字以下のテーマでスタイル「メルマガ」を選択した場合 出力

こちらも指定したとおり、5つの見出しからなるメルマガ風の文章になっています。ナレッジについても同じものが反映されていますね。

最後に、テーマが70文字以下&スタイル「SNS」選択時についても、入力内容と結果をお見せします。

テーマが70文字以下&スタイル「SNS」選択 入力
テーマが70文字以下&スタイル「SNS」選択 出力

内容はイマイチですが、こちらもSNS風の文章が返ってきました。

以上のとおり、ワークフローは入力フィールドと条件分岐を駆使することで、処理の流れを変えられるのが魅力です。

ワークフローをツールとして公開する方法

Difyで作成したワークフローは、ツールとして公開することで、Dify内の他アプリへの埋め込みが可能です。

作成したワークフローをツールとして公開するにはまず、作成画面を開いて右上の「公開する」をクリック。そこから「ワークフローをツールとして公開する」を選択してください。

「ワークフローをツールとして公開する」を選択

次に、以下の設定画面が表示されますので、ツールコールの名前を記入します。

そして、ツールとして公開したワークフローをLLMやエージェントに使用させたい場合はメソッド欄で「LLM入力」を指定しましょう。設定後は、そのまま「公開」ボタンをクリックすれば、ツール化完了です。

ツールコールの名前を記入

あとは、Difyのアプリ作成画面からツールとして公開したワークフローを組み込むだけ。ワークフロー / チャットフローでの組み込み方は以下のとおりで、ブロックとほぼ同じ流れで追加できます。

Difyのアプリ作成画面からツールとして公開したワークフローを組み込む

なお、ツール化したワークフローの処理結果例は以下のとおりです。

ツール化したワークフローの処理結果例

「トリガー」起点のワークフローの作り方

冒頭で触れたとおり、Difyのワークフローでは作成時に開始ノードを選択できます。

この開始ノードについては、ここまででお見せした「ユーザー入力」のほかに、外部アプリやスケジュールに連動して起動する「トリガー」も選択可。以下、トリガーで起動するワークフローの作り方についてもみていきましょう!

まずは、スタジオから新規のワークフローを作成。開始ノードの選択画面で「スケジュールトリガー」を選んでみます。

開始ノードの選択画面で「スケジュールトリガー」を選んでみます。

次に起点のブロック「スケジュールトリガー」を選択して、起動の頻度を設定しましょう。

「スケジュールトリガー」を選択して、起動の頻度を設定

開始ノード「ユーザー入力」と「トリガー」は同じワークフロー内で両立できません。間違えて選んでしまった場合は、その開始ノードを選択・削除してから再度、任意のものを選び直しましょう。

あとは、残るブロック「LLM」と「出力」を設定します。今回は、以下のとおり「指定した時間になると自動で川柳を読んでくれるフロー」を作成してみました。

「指定した時間になると自動で川柳を読んでくれるフロー」を作成
「指定した時間になると自動で川柳を読んでくれるフロー」を作成2

最後は、いつも通り作成画面右上の「公開する」からワークフローを保存すればOKです。保存後、しばらく待つと以下のとおり実行結果がログに表示されます。

実行結果

Difyのワークフローのブロック早見表

以下、Difyのワークフローで使えるブロックについて、名称と機能を表にまとめました。アプリ作成時にお役立てください!


Difyのワークフローに関連するその他設定の方法

ここでは、Difyのワークフローに関係する「ナレッジ」と「エージェンティック戦略」の設定方法をそれぞれご紹介します。

ナレッジ

Difyには、テキストファイル・Notion・Webサイト上の独自情報をLLMの回答に反映(RAG)させる「ナレッジ」機能が備わっています。こちらを活用することで、社内ドキュメントや自社メディアの情報に基づいて処理を行うワークフローが作成可能です。以下、そんなナレッジの作成方法をみていきましょう!

Difyでナレッジを作成するにはまず、画面上部の「ナレッジ」を選択したのち「+ナレッジベースを作成」をクリックします。

「+ナレッジベースを作成」をクリック

次に、ナレッジに使用するデータソース(情報源)をテキストファイル・Notion・Webサイトのいずれかから選択してください。テキストファイルを使用する場合は、そのアップロードについてもこの画面で済ませます。設定完了後は「次へ」をクリックしましょう。

テキストファイル・Notion・Webサイトのいずれかから選択

続いては、ナレッジベース作成時のオプションを選んでいきます。今回はチャンク設定(テキスト分割の方法)とインデックス方法(検索の方法)のみを設定し、「保存して処理」をクリックしましょう。

「保存して処理」をクリック

あとは、しばらく待って以下の画面が表示されればナレッジベースの完成です。

ナレッジベースの完成

完成したナレッジベースについては、Difyの各種アプリで組み込みが可能。ワークフローの場合はブロック「知識検索」からナレッジベースを実装できます。

エージェンティック戦略

Difyのワークフロー / チャットフローは、LLMに自律動作やツール使用をさせられるブロック「エージェント」を完備。

このエージェントでは、以下のような「エージェンティック戦略」を選択して、LLMの挙動を指定できます。

● ReAct:LLMが回答・行動とその反省・改善を自律的に繰り返してくれる
● Function Calling:LLMがツールの選択・使用を自動で行ってくれる

ただ、このエージェンティック戦略を使うにあたっては事前の設定が必要です。以下、その流れもみていきましょう!

エージェンティック戦略を設定するにはまず、Difyの画面右上にある「プラグイン」をクリックします。

「プラグイン」をクリック

次に、プラグインの画面から「マーケットプレイスを探索する」タブを選択。続けて、検索窓に「agent」と入力して、エージェンティック戦略を表示させます。

今回はこの中から、Dify公式の「Dify Agent Strategies」にカーソルを合わせてインストールしてみましょう。

「Dify Agent Strategies」にカーソルを合わせてインストール

しばらく待ってインストールが完了すると、ブロック「エージェント」の設定パネルからエージェンティック戦略が選べるようになります。

ブロック「エージェント」の設定パネルからエージェンティック戦略

Difyのワークフローの活用シーン

ここからは、実際の業務におけるDifyのワークフローの使い所・活用シーンをお見せしていきます。

社内・顧客向けのFAQシステム

Difyのワークフローなら、社内・顧客の質問に自動で答えてくれるFAQシステムが簡単に作れます。

こちらは社内マニュアル・契約書・過去問い合わせ等のナレッジをもとに回答を提供できるほか、回答をチャットアプリやメールから送信することも可能。

さらには、条件分岐や質問分類器を活用することで、難しい質問だけ人間が対応するといったこともできます。

コンテンツ作成・公開の自動化

Difyのワークフローは、SNSやメルマガ、Web記事等のコンテンツの制作にも最適。

お題や草案を用意するだけで、ナレッジ・Web検索による下調べから本制作、各プラットフォームでの公開まで一気通貫での自動化が可能です。

また、アプリの一括実行機能を活用することで、数十〜数百単位のコンテンツを一気に量産することもできちゃいます。

顧客・応募者等のリスト確認自動化

マーケティングや人事の領域でもDifyのワークフローは大活躍。各顧客・応募者・社員・案件…etc.の要約や評価をアプリの一括実行機能でまとめて行えるのが魅力です。

また、ワークフローでの処理結果を社内システムやデータベースに反映するといったことも自動化できます。

フィードバックの効率化

Difyのワークフローなら、授業や研修等でのフィードバックも自動化できます。

こちらは各生徒・スタッフのテスト回答や発話の文字起こしを一括で評価して、改善点をメールやチャットアプリで送信するといった使い方が可能です。


Difyのワークフローに関するよくある質問・FAQ

最後に、Difyのワークフローについてのよくある質問・FAQにお答えしていきます。

Q.Difyの料金は?無料で使える?

A.Dify自体はWeb版 / ローカル版ともに無料でも利用できます。うち、Web版については無料プラン1種と有料プラン2種が用意されていて、高額なプランほど月々のアプリ利用回数やストレージの制限が緩和されるしくみです。

また、ローカル版については無料で無制限にアプリを作成・利用できます。作成したワークフローを高頻度で使用する予定の方には、Web版の有料プランまたはローカル版がおすすめです。

料金表
参考:https://dify.ai/jp/pricing

※Web版 / ローカル版ともに、Difyでは生成AIモデルの利用料金や通信費が別途必要です。

Q.Difyのワークフローとチャットフローの違いは?

A.ワークフローは「手順が決まっているタスクの自動化」に、チャットフローは「人との会話」にそれぞれ特化しています。両者の具体的な違いについては、下表をご覧ください。

ワークフローとチャットフローの主な違い

Q.Difyではどのような生成AIモデルが使えますか?

A.Difyでは、ChatGPT等のAPIモデルから国産のローカルモデルまで、多種多様な生成AIモデルが使えます。Difyで使える生成AIモデルの例は下記のとおりで、作りたいワークフローに合わせて最適なモデルが選択可能です。

● OpenAI
● Anthropic
● Gemini
● Llama
● Ollamaモデル
● Hugging Faceモデル 等

Q.Difyはプログラミングの知識が全くなくても使えますか?

A.基本的にはプログラミングの知識不要で利用可能です。

Difyではドラッグ&ドロップで複雑なアプリが組めるワークフローのほか、テキストを入力するだけの「初心者向けアプリタイプ」も選べて、誰でも簡単に生成AIアプリが作れます。

ただ、Difyに生成AIモデルを導入する際や作成したアプリを外部ツールと連携させる際には、APIやWebhook等の知識が必要です。

Difyの活用イメージとしては「PoC検証を現場スタッフ側で、システム・DB連携をエンジニア側で行う」といったものになります。

Q.Dify活用時の注意点は?

A.Dify活用時の注意点は以下のとおりです。

● 入力された個人情報については、マスキング・定期的な削除を行う
● アプリの出力を鵜呑みにせず、人間によるチェックも実施する
● 生成AIの利用コストは、入力の要約や廉価モデルの選定などで節約する

特に、ワークフローの一括実行時には、大量のトークン消費が予想されます。選ぶ生成AIモデル等を工夫して、対処しましょう。


Difyのワークフローで面倒な作業をまとめて消化しよう!

本noteでは、Difyのアプリタイプ「ワークフロー」について、使い方・活用例などをご紹介しました。

Difyのワークフローは、複雑な処理を安定して自動化できる点を強みとしています。コンテンツの量産・投稿やリストの確認等、「手順自体は決まりきっているが面倒な作業」の自動化にうってつけです。

Difyのワークフローを使いこなして、社内に散らばる面倒な作業を一気通貫で片付けちゃいましょう!

なお、ノーコードツールのn8nの事を知りたい場合は以下の記事をご覧ください。


WEELでは、生成AIを業務や事業に取り入れたい方向けの各種セミナーを開催しています。

「どんな活用ができるのか知りたい」「自社でどう始めればいい?」という方に向けて、現場視点のノウハウや最新事例をご紹介しています。
セミナーに参加する

生成AIの最新ニュース・事例・イベント情報をいち早く知りたい方は、ぜひWEELの無料メルマガをご購読ください!
✉️ メルマガに登録する

💡 AI活用、どこから始めればいいかお悩みの方へ
「AIエージェントって実際にどう使うの?」
「チャットボット作ってみたいけど何から始めれば…?」

そんな方向けに、無料の個別相談をやってます!
現場での事例も交えて、わかりやすくお話しします。
今すぐAIの専門家と話す


いいなと思ったら応援しよう!