Difyは、AIアプリケーションを作成するための強力なツールであり、そのワークフロー機能を使えば、複雑なタスクを簡単に自動化できます。
本記事では、Difyの使い方やワークフロー作り方について、初心者にもわかりやすく解説し、実際のワークフロー例も紹介します。
プログラミングの知識がなくても、直感的に操作できるため、Difyを使って業務の効率化を図りたい方にぴったりの内容です。
Difyのワークフロー機能とは
Difyは、AIを活用して簡単にアプリケーションを作れるプラットフォームです。
その中でも「ワークフロー機能」は、複雑な作業を自動化して効率を上げるための便利なツールです。
ワークフローは、一つ一つの作業(ノードやブロックと呼ばれる部分)をつなげて、処理の流れを設定します。
そして、AIがその流れに従って作業を進めてくれます。
Difyには、「チャットフロー」と「ワークフロー」の2種類があります。
チャットフローは、ユーザーとのやり取りを自動化したい時に使うもので、例えばカスタマーサポートのような場面に役立ちます。
一方、ワークフローはデータ処理や繰り返しの多い作業を自動化するための機能で、業務を効率よく進めたい時に最適です。
これを使えば、AIが自動でデータを整理したり、情報を検索したりして、日々の作業がぐっと楽になります。
Difyのワークフローにある全ブロックの使い方を解説
Difyのワークフローでは、作業を自動化するためにいくつかの「ブロック」を使って、流れを作ります。
それぞれのブロックには役割があり、どのように使うかを理解すれば、作業をスムーズに自動化できます。
ここでは、その主要なブロックを一つずつ見ていきましょう。
開始
「開始」ブロックは、ワークフローの一番最初に配置するブロックです。
このブロックを使って、「どんな条件でワークフローをスタートさせるのか?」を決めます。
例えば、次のようなシーンで使います。
- ユーザーがボタンを押した時にスタートする
- 特定の時間に自動で始まる(例:毎朝9時にデータを集計する)
ここで設定したトリガーに応じて、ワークフロー全体が動き始めます。
いわば、作業の「合図」を決める場所です。
これがないとワークフローがいつスタートするか分からなくなるので、必ず最初に配置しましょう。
LLM
「LLM」ブロックは、AIが本領発揮する場所です。
このブロックを使うと、Difyに搭載されたAI(たとえばGPT-3やGPT-4など)が、入力された情報をもとに文章を作ったり、質問に答えたり、情報を要約したりします。
具体的な活用例を見てみましょう。
- 文章作成:たとえば「このデータを元にレポートを作って」と依頼することで、AIが自動で文章を作成してくれる
- 質問応答:ユーザーの質問に対して、「AIが自動で回答する」仕組みを組み込むことも可能
- 要約:長い文章を短くしてくれる要約機能も使える
このブロックでは、「どんなタスクをAIにやらせるのか?」を決めます。
プロンプト(AIへの指示文)を工夫することで、AIが行う作業の内容をカスタマイズできます。
知識取得
「知識取得」ブロックは、AIが持っていない外部の情報を取り込むために使います。
このブロックを使うと、たとえば以下のようなことができます。
- ナレッジベースを参照:自分が用意したデータベースや資料(ナレッジベース)を参照して、AIに正確な情報を基にした回答をさせることができる
- 外部データを取得:Webサイトやその他のデータソースから最新の情報を引っ張ってくることも可能。これにより、AIの応答がより信頼性のあるものになる
「知識取得」ブロックをうまく使うと、AIが特定のテーマについてもっと深く理解し、それに基づいて回答することができるようになります。
これにより、たとえば社内データや特定の業界知識を使ったカスタマイズされた回答が可能です。
終了
「終了」ブロックは、ワークフローのゴール地点です。
ここでは、ワークフロー全体の結果をまとめてユーザーに表示したり、次の処理へ進めたりします。
いくつかの例を見てみましょう。
- 結果を表示:AIが生成したテキストや処理結果を、ユーザーにそのまま表示する
- 次のステップへ進める:結果を保存して、他のワークフローやアプリケーションに引き継ぐこともできる
「終了」ブロックがあることで、ワークフローがいつ終わり、どんな結果を返すのかがはっきりします。
これを最後に配置することで、全体の流れがスムーズに完結します。
質問分類器
質問分類器は、ユーザーの質問を自動的に分類するブロックです。
例えば、ユーザーが「商品の返金方法を教えて」と質問した際、その質問を「返金カテゴリ」に分類し、適切な対応へと導くことができます。
- ユーザーの質問を自動分類:例、「配送遅れの理由は?」を「配送カテゴリ」に分類
- カテゴリごとに対応策を自動案内:ユーザーが特定の質問をすると、FAQやサポート記事を自動で表示
この機能により、問い合わせ内容が自動で適切なカテゴリに振り分けられ、サポート業務を効率化できます。
IF/ELSE
IF/ELSEブロックは、特定の条件に基づいてワークフローの分岐を決める重要な要素です。
これを使うと、異なる状況に応じた処理が自動で行えます。
例えば、ユーザーの入力や特定の値に応じて異なるアクションを実行できます。
- 条件が真の場合の処理:入力が「Yes」のとき、次のステップへ進める
- 条件が偽の場合の処理:入力が「No」のとき、別の対応を実行
このブロックは、柔軟にワークフローの動きを制御できるので、複雑な判断を簡単に自動化できます。
条件分岐をしっかり設定することで、スムーズな業務フローを実現できます。
イテレーション
イテレーションブロックは、特定の処理を繰り返し実行するためのものです。
このブロックを使うことで、同じアクションを複数回行うことができます。
たとえば、大量のデータや複数の項目に対して、同じ操作を一括で適用したい場合に役立ちます。
- 配列内の要素に対する処理:リストにあるデータを1つずつ処理する
- 特定の範囲での繰り返し:指定した回数だけアクションを実行する
イテレーションを使うと、大量のデータや繰り返し作業を効率よく自動化でき、手作業の負担を大幅に減らすことができます。
たとえば、顧客リストに対して同じメッセージを送信する際などに、このブロックは非常に便利です。
コード
コードブロックは、PythonやJavaScriptなどのコードを直接ワークフロー内で実行できるブロックです。
これにより、柔軟なカスタマイズや特定のデータ処理が可能になります。
たとえば、既存のツールでは対応できない複雑なロジックや外部APIとの連携などを実現できます。
- Pythonスクリプトの実行:数値計算やデータのフィルタリング
- 外部APIとの連携:外部サービスからデータを取得し、ワークフローに組み込む
このブロックは、技術的なニーズがあるときに非常に強力です。
特にカスタマイズされた業務プロセスや、複雑なデータ分析が必要な場合には重宝します。
テンプレート
テンプレートブロックは、事前に設定されたテンプレートに動的なデータを挿入してテキストを作成する機能です。
このブロックを使うと、統一されたフォーマットで文書やメッセージを簡単に生成できます。
- メールのテンプレート化:動的なデータを差し込んだ自動メールを作成
- 報告書の生成:一定のフォーマットに従ったドキュメント作成
テンプレート機能を使えば、毎回同じ内容を手動で入力する必要がなくなり、一貫性のある文章やレポートを効率的に作成できます。
これにより、業務全体の生産性が向上します。
変数集約器
変数集約器ブロックは、ワークフロー内の複数の変数を一つにまとめる役割を果たします。
これにより、後続の処理で一度に複数のデータを使用する際に便利です。
- 複数の入力データを集約:異なるソースから取得した情報を一つにまとめる
- データの整理と統合:後続処理で使いやすいように変数を一元管理
このブロックを使うと、複雑なデータフローが整理され、次の処理がスムーズに行えるようになります。
たとえば、顧客情報や注文情報を一つにまとめてレポートを作成する場合に効果的です。
変数代入
変数代入ブロックは、特定の値を変数に割り当てるために使用されます。
これにより、ワークフロー内で特定の情報を保存し、後のステップで利用することが可能です。
- 数値や文字列の代入:計算結果や取得したデータを変数に保存
- 動的なデータの管理:異なる処理の中で使われる変数を一時的に保管
このブロックは、ワークフロー全体の情報管理を効率化します。
特に、途中で取得したデータを後の処理に使いたい場合や、条件に応じてデータを変化させる必要がある場合に有効です。
パラメーター抽出
パラメーター抽出ブロックは、ユーザーの入力や外部データから特定の情報を抽出するために使います。
たとえば、文章やリクエストの中から日付や金額、名前などを取り出すのに役立つでしょう。
- 日付や数値の抽出:文章から特定の形式のデータを自動で抽出
- 名前や場所の特定:入力データから名前や場所などのパラメーターを取得
パラメーター抽出を活用することで、ユーザーが入力したデータから必要な情報を素早く取り出し、後続の処理で活用することができます。
たとえば、予約システムでユーザーが入力した日付や人数を自動で取得し、処理に利用する場合などに効果的です。
HTTPリクエスト
HTTPリクエストブロックを使うと、外部のAPIやウェブサービスと連携してデータのやり取りができます。
これにより、外部の情報をワークフローに組み込んだり、他のシステムと連携したりすることが可能です。
- 外部APIとの通信:Webサービスからデータを取得
- データの送信:入力データを外部システムに送信して処理
HTTPリクエストを使用することで、他のシステムとシームレスに連携でき、業務プロセスを拡張することができます。
例えば、顧客管理システムから最新の顧客情報を取得してワークフローに取り込む際に役立ちます。
【初心者向け】Difyで実際にワークフローを作る方法
今回は、Wikipediaで調べた情報をLLMで小学生にもわかるように簡単に解説してくれるAIアプリを作成する手順を例に、ワークフローを作る方法を紹介します。
以下のステップに沿って、実際にワークフローを構築してみましょう。
「最初から作成」をクリックします。
「ワークフロー」を選択し、「アプリのアイコンと名前」や「説明」を入力し、「作成する」をクリックしましょう。
開始ブロックの横にブロックの項目が表示されるので、「ツール」を選択して「Wikipedia」と検索し、「Wikipedia Search」を選択しましょう。
「Wikipedia Search」ブロックの右側の「+」マークを押し、「LLM」ブロックを選択します。
同様に、「LLM」ブロックの右側の「+」マークを押し、「終了」ブロックを選択しましょう。
続いて、ブロックの細かい設定をしないと正しく動作しないので行なっていきます。
「開始」ブロックをクリックして画面右の「入力フィールド」の「+」マークをクリックしましょう。
「フィールドタイプ」選択して、「変数名」「ラベル名」「最大長」の項目を入力し「保存」をクリックします。
- フィールドタイプ
-
「フィールドタイプ」は、ユーザーが入力するデータの形式を決めるものです。
例えば、以下のような選択肢があります。
- 短文:1行の短いテキスト(名前や質問など)
- 段落:複数行の長いテキスト(説明やフィードバックなど)
- 選択:用意した選択肢の中から選ぶ形式
- 数値:数字だけを入力する場合
何を入力してほしいかに応じて、適切なフィールドタイプを選びます。
- 変数名
-
「変数名」は、入力されたデータをAIに渡す際に使う一意の名前です。
次の点に注意しましょう。
- 英語で入力します(日本語は使えません)
- アプリ内でそのデータを呼び出すための名前
- 他の変数と名前が重ならないようにする
- 簡単で意味がわかる名前をつける(例:「user_question」など)
- ラベル名
-
「ラベル名」は、ユーザーに見せる名前です。
これがユーザーに表示されるので、わかりやすく設定します。
- 日本語でOK
- ユーザーが何を入力するべきかがはっきりわかる名前をつける
- 使いやすさに影響するので、丁寧に考える
たとえば、「質問を入力してください」というラベル名にすれば、ユーザーにとって親切です。
- 最大長
-
「最大長」は、入力できる文字数の上限を設定します。
- 数字で入力
- 「ショートテキスト」や「ロングテキスト」のフィールドで使う
- 文字数制限をかけることで、過剰なデータ入力を防ぐ
例えば、名前の入力なら「50文字」、説明のフィールドなら「1000文字」など、状況に合わせた制限を設けるのがベストです。
「Wikipedia Search」ブロックを選択し、「Query String(クエリの文字)」には、「/」を入力すると下に「開始」で設定した変数が出てくるので、「question」を選択しましょう。
「Language(言語)」には日本語で質問するので、「ja」と入力します。
LLMの「コンテキスト」は、Wikipedia Searchの「text」を選択しましょう。
「SYSTEM」の項目に、プロンプトを入力します。
「/」を入力し、Wikipedia Searchの「text」を選択し、今回は画像のようなプロンプトを入力しました。
「終了」ブロックでは、「変数の設定」でLLMのtextを選択しましょう。
正しく動作するのか確認するために、画面右上の「実行」をクリックして、作成したアプリで使うであろう文章や単語を入力し「実行を開始」をクリックしましょう。
今回は「人工知能」と入力してみました。
作成したアプリの機能通りに、わかりやすく説明した文章を生成してくれました。
【応用編】Difyのワークフローはナレッジやツールを組み合わせる
Difyのワークフロー機能は、基本的なタスクの自動化だけでなく、外部データやツールを活用することで、より高度で多機能なAIアプリケーションを作成できます。
ここでは、ナレッジベースや外部ツールを組み込む方法について詳しく解説します。
Difyのワークフローでナレッジを組み込む方法
ナレッジを組み込むことで、ワークフローがより専門的で深い知識を活用できるようになります。
本記事の見出し「【初心者向け】Difyで実際にワークフローを作る方法」で作成したワークフローにナレッジを加えて説明します。
今回は、Wikipediaで検索した「プログラミング」についての情報に加え、事前に準備したナレッジを活用して説明の精度を高める例を見てみましょう。
例えば、ユーザーが「プログラミングとは?」と質問すると、まずWikipediaで基本的な情報を取得します。
それに加えてナレッジに保存された「プログラミング教育」という資料から詳細な説明を行います。
画面上部の「ナレッジ」から、「ナレッジを作成」をクリックします。
ファイルをアップロードして、「次へ」をクリックしましょう。
テキストの前処理とクリーニングの設定をします。
特にこだわりがない場合は、「おすすめ」と表示されているもの選択し、「保存して処理」をクリックしましょう。
先ほど作成したWikipediaとLLMにカーソルを置くと+マークが表示されるのでクリックし、「知識取得」をクリックします。
ナレッジの「+」をクリックして、ファイルを選択しましょう。
次は「LLM」のブロックをクリックし、コンテキストで「知識取得」を選択し、SYSTEMにプロンプトを入力します。
終了ブロックの「出力変数」にはLLMのtextを選択しましょう。
ここからは、作ったアプリが正常に動作するかを確かめていく作業になります。
「実行」をクリックします。
本記事で作成したアプリを確認するために、プログラミングと入力して「実行を開始」をクリックます。
自分の理想とするような回答が出力されたら完成です。
Difyのワークフローでツールを組み合わせる方法
次に、Difyのワークフローに外部ツールを組み合わせる方法を紹介します。
ツールを使うことで、外部のサービスやデータベースからリアルタイムの情報を取得したり、AIアプリケーションの機能を拡張することが可能です。
外部のサービスには、例えば以下のようなものがあります。
- Google検索ツール:リアルタイムの情報を取得し、最新のニュースやデータを含んだ回答をユーザーに提供
- 翻訳ツール:多言語対応のAIアシスタントを作成し、世界中のユーザーに対応可能なアプリを構築できる
- 画像生成ツール:ユーザーの入力に基づいて画像を生成し、視覚的に魅力的なコンテンツを提供
ツールをワークフローで導入する手順は以下の通りです。
「ツール」ブロックを追加 ワークフローに「ツール」ブロックを追加します。
たとえば、Google検索ツールを使いたい場合、「Google Search」を選択しましょう。
「Google Search」の「承認するには」をクリックします。
「SerpApi API key」の部分にAPIキーを入力し保存しましょう。
APIキーの取得は「取得方法」をクリックして確認します。
これらの手順を通じて、ナレッジやツールを組み合わせた高度なAIワークフローを構築できるようになるでしょう。
これにより、単なる情報提供だけでなく、より詳細で実用的な情報をユーザーに提供できる強力なアプリケーションを作成することが可能になります。
まとめ
Difyは、複雑なタスクを自動化し、効率的に処理できる強力なAIプラットフォームです。
この記事では、ワークフローの基本的な作成手順から、ナレッジやツールを組み込んだ応用編までをわかりやすく解説しました。
プログラミングの知識がなくても直感的な操作で、業務の効率化や自動化が簡単に実現できます。
ナレッジや外部ツールを活用することで、さらに高度なアプリケーションを作成し、ビジネスの生産性を向上させることが可能です。