27.7K Views
May 31, 25
スライド概要
Dify Studio ハッカソン イベントで行った、Dify講座の資料です!
株式会社エクスプラザ 生成AIエバンジェリスト / リードAIプロデューサー
Dify講座 超入門編 まだチャットでポン出し? ワークフローで生成AIが本領発揮! 講師:宮田大督(みやっち) 株式会社エクスプラザ 生成AIエバンジェリスト 🎯 実践ハンズオン講座(2時間)/ 📱 Difyを使って実際にワークフローを作成 / 🚀 「ポン出し卒業」への完全ガイド 2025年 | Dify Workshop 1
本日のゴール 前半(1時間) 後半(1時間) ChatGPTのポン出しの限界を理解 マルチステップワークフローの威力を理解 Difyの基本機能をマスター Chain of Thought (CoT) の重要性を学習 シンプルなワークフローを実際に作成 複雑な処理を段階的に分解する手法 テンプレート化の価値を体験 議事録自動化のワークフローを構築 サイドバー常駐で効率UP 実用的なアプリケーションを完成 → 2時間後には「もうポン出しには戻れない」状態になっています! 2
自己紹介 宮田大督(みやっち) 株式会社エクスプラザ 生成AIエバンジェリスト・リードAIプロデューサ ー Twitter: @miyatti 経歴 楽天・メルカリでのPdM経験 Gaudy・令和トラベルでのAI実装・企画経験 SNSエージェント実装・大規模コンテンツ生成を 手がける 専門領域 生成AI技術の社会実装と普及 企業のAI導入支援 AIxPM領域での知見発信 ノーコードツールでの実装支援 今日のキーワード 「ポン出し卒業」の伝道師 AIと人間が共生する未来の実現を目指し、技術と社会 の架け橋となることを使命としています 3
そもそも、ChatGPTをどう使ってますか? よくあるシーン 「ちょっと翻訳したい」 「会議のメモを要約したい」 「SNS投稿文を作りたい」 チャットでポン出し とりあえず聞けば何か返ってくる気軽さ 単発タスクなら確かに便利 4
ポン出しの限界と課題 よくある困りごと 根本的な問題 同じパターンの業務で毎回同じプロンプトを打ち 毎回品質がバラつく 込む手間 設定や条件を毎回指定が必要 前回はどんな指示だっけと履歴を探す作業 複雑な指示は忘れがち 前はうまくいったのに今回はの試行錯誤 効率が悪い もっと宣伝ぽくして → 再チャット ハッシュタグを追加して → また再チャット → 繰り返し作業なら「ワークフロー化」が圧倒的に便利! 5
Difyとは? 簡単に言うと... ChatGPTのような生成AIとのやり取りを「ワークフロ ー」として事前に用意しておいて、ボタン一発で後か ら起動できる便利ツール 特徴 ノーコードでLLMワークフロー構築 マルチモデル対応 一度設定したら何度でも使える URLで簡単共有 6
要は「テンプレート」 メールや契約書のテンプレートと同じ あらかじめ雛形を作っておく 必要な部分だけ差し替える 7
Difyでのテンプレート仕組み 毎回使いたいプロンプト(指示)をテンプレート として登録しておく 変更したいところだけ差し替える方式 実際に使うときは、空欄に必要な情報を入れるだ け あらかじめ定義しておいたプロンプトが完成する 完成したプロンプトに従ってChatGPTが動作 毎回ブレのないクオリティの出力を返してくれる 8
テンプレート化の具体例 繰り返しのプロンプト入力作業がラクに 前回のプロンプトを毎回コピペする必要なし クオリティのバラつきを防止 シンプルな構成でも十分効果的 「毎回プロンプトを打ち直す手間」から解放 週次集計のプロンプトとかを、コピペして、期間だけ 変えてーとか、やりません? 9
前半:テンプレートワークフロー作成 10
前半で作るもの:SNS投稿ジェネレーター 今回の課題:キャンペーン告知投稿 企画書の内容をSNS投稿文に変換 毎回同じ作業の繰り返し 品質のバラつきが課題 よくあるBeforeシーン ChatGPTに企画書をコピペして... 11
Before(ポン出し)の面倒な現実 最初のお願い 「これをX (旧Twitter) 用の投稿文にして」 でも... 文字数制限を毎回忘れがち 絵文字の有無、トーンの指定も忘れる 結果的に何度も再チャット... 典型的な追加要求パターン 1. 「もっと宣伝ぽくして!」 → 再チャット 2. 「ハッシュタグを追加して!」 → また再チャット 3. 「絵文字を入れて!」 → さらに再チャット 4. 「140文字以内にして!」 → またまた再チャット さらに次回... 「あれ?前回はうまくいったのに、今回はいうこ と聞いてくれない…」 「同じような企画なのに、毎回クオリティがブレ る…」 → 毎回キャンペーンのたびにChatGPTを開いて何度も試行錯誤を繰り返す日々... 12
After(Difyワークフロー)の理想状態 1回の設定で永続利用 今後の活用イメージ 企画書を入力するだけ ブックマーク1クリックでアクセス 文字数制限、絵文字、ハッシュタグなど全て自動 企画書コピペ → 実行 → 完成 適用 再チャット不要 毎回同じクオリティで出力 品質安定 前半の成果物 キャンペーン告知ジェネレーター URLでいつでもアクセス サイドバーで常駐可能 チーム共有も簡単 → これから実際に作ってみましょう! 13
Step1: Difyアカウント設定 実践ステップ 1. ブラウザで cloud.dify.ai にアクセス 2. アカウント登録・ログイン(Gmail等で簡単登録) 3. APIキー設定(オプション) Settings → Model Providers OpenAI APIキー追加(持っている方のみ) Free Trialモデルも利用可能 Tips: うまくいかない方は講師がサポートします 14
Step2: SNS投稿ジェネレーター作成 Step2-1: アプリケーション作成 Difyにログイン後、左上の「最初から作成」をク リック 「チャットフロー」を選択 アプリケーション名を入力: 「キャンペーン告知ジェネレーター」 15
Step2-2: プロンプト設計 赤で囲まれたところに「LLM」のテンプレート(プロンプト)を書いていく 16
プロンプトテンプレート例 あなたはSNSマーケティングの専門家です。 以下の企画情報をもとに、魅力的なキャンペーン告知投稿文を作成してください。 【企画内容】 {{sys.query}} 【出力要件】 - X(旧Twitter)向けの投稿文 - 140文字以内 - 絵文字を3-5個使用 - ハッシュタグを3-5個含める - わくわくする魅力的なトーン - キャンペーンへの参加を促す文章 【出力フォーマット】 投稿本文: ハッシュタグ: 17
変数の設定方法 sys.queryってところに、チャットで入力されたテ キストが挿入される まさにこれが契約書のテンプレートみたいなかん じ やっていることは、ただただ、文章を流し込んで いるだけ sys.queryというプログラミングっぽい言葉にひる まないでください 18
/ と入力すると、挿入できる候補がでてくる 「sys.query」を探して挿入してください ほかの変数は一旦おいといてOK 簡単な操作で変数を挿入できる 19
豆知識:プロンプトジェネレーターを使ってみよう すらっと、プロンプトをうまく書けない人はプロンプトジェネレーターという便利機能がDifyにはついてるので 使ってみましょう 20
このDifyの「Prompt Generator」を使えば、こん な感じの雑なおねがいからプロンプトを自動生成 できます 注意:生成されたプロンプトは結構難しい書き方 されてるから、修正しづらいかも 割とプロンプトは直感的に書いてもうまく動いて くれるので、雑でもいいから自分でかいたほうが 後から試行錯誤はしやすい 21
Step3: プロンプトテスト Step3-1: プレビューでテスト 右上にあるプレビューというボタンをクリック 作成したプロンプトの動作を確認できる リアルタイムで結果を確認可能 問題があれば修正して再テスト 22
テスト用企画情報を入力: 「春の新商品キャンペーン」 対象:新しく発売するオーガニック化粧品 期間:3月1日〜31日 特典:先着100名に限定サンプルセットプレゼント 目的:ブランド認知向上と新規顧客獲得 23
実際にやってみる 企画書をチャットに入れると無事に生成でき た! うまくいかない場合はプロンプト調整を行いま す 24
Step4: アプリ公開とアクセス設定 Step4-1: 公開設定 公開ボタンをクリック 問題がなければ公開される URLが自動的に設定される このURLでアプリにアクセス可能 25
URLは左メニューの上から4つ目のボタンをタップ して確認可能 プレビューボタンで実際のURLにアクセス可能 ブックマークしておくと便利 ログイン不要でアクセスできるか確認 入力→実行→結果表示の流れが正常か確認 26
隠し技:いつでもあなたのそばにLLMを Page Sidebarでブラウザ横にDifyを常駐表示 ブラウザ作業中でもAIにワンクリックでアクセス 別タブを開かずに作業の流れを維持 Dify、ChatGPTなど複数のAIツールをサイドバー に配置可能 27
背景 問題 解決策 URLでアクセスできても、結局ChatGPTを開くの Chrome拡張機能でサイドバーに常駐させる! と変わらない... 画面の横にAIを常駐させておける 別タブを開く手間がかかる 別タブを開く手間や履歴を探す必要が大幅に減る 作業の流れが中断される ブラウザ作業を中断せずにAIを利用可能 28
Step5: サイドバー設定 Step5-1: Chrome拡張機能インストール Chrome ウェブストアで「Page Sidebar™」を検索 「Chromeに追加」をクリック 拡張機能がインストールされるとブラウザ右上に アイコンが表示される 一度インストールすれば、どのサイトでも利用可 能 29
Step5-2: Difyをサイドバーに追加 ブラウザ右上のPage Sidebarアイコンをクリック SearchボックスにDifyのURLを入力 ブックマーク保存で次回からワンクリック起動 ここにDifyとかChatGPTのURLをいれる。ブックマー クしとくこともできるので、いつでも起動できるよう にしとくのがおすすめ。 30
ブラウザの右側にDifyのチャットが常駐 作業中でもワンクリックでAIに相談可能 作業の流れを中断せずにAIをすぐ活用 ポン出しには戻れない快適さを実感 サイドバーからすぐにAIを呼び出し可能 ブラウザ作業との併用がスムーズに 31
改めて、Difyの基本3大ノード紹介 今回学ぶ基本の3つのノード 1. 開始ノード(Start) 2. LLMノード(Large Language Model) 3. 終了ノード(End) なぜこの3つが重要? すべてのワークフローの基本構成 最小限でも動作するワークフロー 理解すれば応用が効く 32
1. 開始ノード(Start) 役割:ワークフローの入り口 すべてのワークフローに必須 ユーザーからの入力を受け取る 実行のきっかけとなる起点 設定できる入力タイプ ショートテキスト:名前、キーワードなど 段落:長文、説明文など 選択肢:プルダウンメニュー 数値:価格、件数など 実際の画面 33
2. LLMノード(Large Language Model) 役割:AIの頭脳部分 ChatGPT、Claude等のAIモデルを呼び出し プロンプトに基づいてテキスト生成 質問応答、文章作成、分析など 主な活用シーン 質問への回答 文章の要約・翻訳 アイデア生成 データの分析・分類 実際の画面 34
プロンプトの書き方のコツ 良いプロンプトの要素 1. 明確な役割設定 「あなたは〇〇の専門家です」 2. 具体的な指示 「以下の形式で回答してください」 3. 制約条件 「200文字以内で」「箇条書きで」 4. 入力データの指定 変数 の活用 プロンプト例 あなたは親切なカスタマーサポート担当者です。 以下の企画内容をSNS投稿文に変換してください: {{sys.query}} 条件: - 280文字以内 - 絵文字を3個以上使用 - ハッシュタグを2個追加 - 親しみやすいトーン 出力形式: 投稿文: ハッシュタグ: {{sys.query}} 35
3. 終了ノード(End) 役割:ワークフローの出口 処理結果をユーザーに表示 ワークフローの終了点 複数の終了パターンも可能 出力例 LLMノードの結果をそのまま表示 実際の画面例 36
基本ノードの接続方法 接続の基本ルール 1. 開始 → LLM → 終了の流れ 2. 変数は前のノードから後のノードへ 3. 線で結んで処理の順序を決定 Tips ドラッグ&ドロップで簡単接続 線の上の+ボタンで途中にノード追加 右クリックで削除や設定変更 接続例 37
基本ノードだけで作れるもの Before:ポン出しの困りごと 毎回プロンプトを打ち直し 微妙なら再調整を繰り返し 品質がバラつく 設定を毎回思い出すのが面倒 After:ワークフロー化の威力 文書を打ち込むだけで完成 統一フォーマットで出力 毎回同じクオリティ 設定は最初の1回だけ シンプルな3ノード構成 1. 開始:テキスト入力 2. LLM:処理実行 3. 終了:結果出力 → この基本構成だけで実用的なアプリが完成! 38
実用例1:会議要約ジェネレーター 活用シーン 議事録作成の効率化 音声文字起こしの整理 会議メモの統一フォーマット化 Before(ポン出し) 毎回「要点をまとめて」と入力 フォーマットがバラバラ 重要な項目を忘れがち After(ワークフロー) プロンプト例: チャットで入力された議事録テキスト({{sys.query}})から - 話題の要点 - 決定事項 - 次のアクション を箇条書きにまとめてください。 使い方:会議メモをコピペ → 実行 → 完成! 39
実用例2:ビジネス翻訳ツール 活用シーン メールの英訳 資料の多言語化 トーン調整も同時実行 一般的な翻訳ツールとの違い ビジネス向け表現に自動調整 丁寧語・カジュアルなど指定可能 文字数制限も同時適用 プロンプト例 チャットで入力されたテキスト({{sys.query}})を 英語に翻訳し、ビジネスライクな丁寧表現に してください。 要件: - 丁寧で分かりやすい表現 - ビジネスメール適用可能 - 自然な英語表現 → 翻訳 + トーン調整を一発で処理! 40
実用例3:メール・Slack文リライター 活用シーン 堅すぎる文章を柔らかく **失礼かも?**な文章を丁寧に 敬語や字数制限を自動適用 Before(手動調整) 文章を書く → 読み返す → 修正 「これで失礼じゃないかな?」 何度も書き直し プロンプト例 以下のメッセージをビジネスシーン用に 書き直してください: {{sys.query}} 条件: - 語尾は丁寧語 - 200字以内 - 相手への配慮を含む - 親しみやすいトーン → ラフな文章も一瞬でビジネス仕様に! 41
その他の実用例 契約書チェック レビュー分析ツール 条項漏れの指摘 良い点・悪い点を分類 業界ルールとの照合 平均スコア算出 リスク項目の抽出 改善点の提案 タスク整理ツール データ整理ツール ToDoリストの優先度付け CSV→見やすい表に変換 緊急度・重要度でソート 重複データの除去 未完了項目の自動抽出 カテゴリ別分類 → 基本3ノードだけで、これだけ多彩なアプリが作れる! 42
基本ノードの実用的な価値 業務効率化の実績 会議要約:5分 → 30秒 翻訳作業:20分 → 1分 メール調整:10分 → 10秒 タスク整理:15分 → 1分 品質の安定化 毎回同じフォーマット 設定忘れによるミスゼロ 一定以上のクオリティ保証 この3つのノードだけでも、日常業務が劇的に変わります! チーム活用のメリット URLで簡単共有 誰が使っても同じ結果 新人研修にも活用 ナレッジの標準化 コスト削減効果 初期設定:30分 継続利用:無制限 人件費削減:大幅 ROI:圧倒的 43
後半:マルチステップワークフロー作成 44
複数ステップ化で"本気の"ワークフロー ここからちょっとだけ難しくなります Difyの真の威力 「1ステップ」でDifyを運用するだけでも、ポン出 ノードを自由に組み合わせられる しに比べてかなりの効率アップ コードノードや画像からテキスト抽出ノード ですが、まだ物足りないという方へ 検索ノードなどを活用 複数ステップの機能を試してみましょう ポン出しでは実現しにくい本気の自動化 → 単発処理から、本格的なワークフローエンジニアリングの世界へ 45
なぜ複数ステップに分けるのか? シングルステップの課題 長い文書処理は苦手 複雑な指示を理解しにくい 一貫性のない出力 思考プロセスが不透明 膨大なプロンプトの処理精度が低下 マルチステップの解決策 段階的処理で高品質化 思考の連鎖で論理的 検証可能な各ステップ 再現性の高い結果 精度高く処理するため分割 → 複雑なタスクは「分割して征服」が鉄則! 46
Chain of Thought(CoT)の重要性 Chain of Thought = 思考の連鎖 LLMに考える過程を踏ませる 最終結果だけでなく思考プロセスも生成 複雑な問題をステップバイステップで解決 人間の思考に近い論理的推論 CoTの効果 より正確な結果が得られる 論理的な間違いを減らせる 透明性が向上(なぜその結果?) 特に複雑なタスクで威力発揮 → 一度に飛躍せず、段階的に考えを進めることで質が向上! 47
具体例 従来アプローチ(一発処理) 「旅行記事を書いて」 1. 目的地情報を一度に投入 2. LLMが混乱して重要点を見落とし 3. 結果:浅くて使えない記事 マルチステップアプローチ 段階的処理で高品質化 1. 構成作成:記事の骨組みを設計 2. 詳細執筆:構成に基づいて執筆 3. 結果:論理的で実用的な記事 → 複雑なタスクを小さなステップに分解することで、圧倒的な品質向上! 48
ハンズオン2:3ステップ旅行記事生成ツール 今回作るもの 最新情報を使った高品質な旅行記事を自動生成 Chain of Thoughtを実践 Step1:情報収集 → 最新データをネット検索 Step2:構成作成 → 論理的な記事設計 Step3:詳細執筆 → 構成に基づいて執筆 使用する新機能 TavilySearch:リアルタイム情報収集 AI特化検索エンジン 最新情報取得 信頼性の高い情報優先 Difyで簡単連携 → Chain of Thoughtで思考プロセスを透明化し、圧倒的品質向上を実現! 49
ワークフロー全体設計 STEP1:検索クエリ生成 STEP3:記事構成作成 入力:「京都」 入力:収集された情報 処理:効率的な検索キーワード生成 処理:論理的な記事構成を設計 出 出力:イントロ→アクセス→観光→グルメ→まとめ 力:「京都 観光」「京都 グルメ」「京都 アクセス」 STEP4:詳細記事執筆 STEP2:情報収集(TavilySearch) 入力:構成 + 情報データ 入力:生成されたキーワード 処理:構成に基づいて詳細執筆 処理:最新情報を検索・収集 出力:完成度の高い旅行記事 出力:信頼性の高い観光・グルメ情報 50
Step1: アプリケーション作成(5分) 手順: 1. 最初から作成をクリック 2. ワークフローを選択 3. アプリケーション名:「旅行記事生成ツール」 4. 開始ブロックに変数追加 変数名:「area」 ラベル:「旅行先」 51
Step2: 検索クエリ生成(5分) 手順: 1. LLMブロックを追加 (QUREY) 2. プロンプト設定: 「{{area}}」の旅行情報を効率的に検索するための 最適な検索キーワードを5つ以内で生成してください。 出力形式:キーワード1,キーワード2,キーワード3,... 52
Step3: 情報収集(5分) 1. ツールブロック追加 (TAVILY_SEARCH) 2. Tavily Searchを選択 3. Query欄に前のLLMの出力を設定 ({{QUERY/text}}) 53
Step4: 記事構成作成(8分) 手順: 1. 新しいLLMブロック追加 (OUTLINE) 2. プロンプト設定: system 以下の検索結果を基に、{{area}}の旅行記事の構成を作成してください: {{Tavily_Search/text}} user 構成: 1. イントロダクション 2. アクセス方法(電車・バス・車) 3. 主要観光スポット 4. グルメ情報 5. まとめ 54
Step5: 詳細記事執筆(8分) 手順: 1. 最終LLMブロック追加 (WRITING) 2. プロンプト設定: 以下の構成に基づいて、{{area}}の詳細な旅行記事を執筆してください: 構成:{{OUTLINE/text}} 検索データ:{{TAVILY_SEARDCH/text}} 要件: - 各セクション200-300文字 - 読みやすい文体 - 具体的な情報を含む 55
Step6: 最終調整・テスト(4分) 手順: 1. 終了ブロックに最終出力を設定 2. プレビューでテスト実行 3. 例:「京都」と入力してテスト 4. 動作確認後、公開ボタンをクリック 5. URLを保存 56
上級編:記事執筆の3段階分割 なぜ執筆を分割するのか? 従来(一括執筆)vs 分割執筆 一度に全体を書くと品質にバラつき Before: 全てを一度に処理 セクションごとに集中することで高品質化 タイトルが平凡 タイトル→イントロ→本文の論理的順序 イントロが弱い 各段階で最適化可能 本文の一貫性に欠ける 3段階のアプローチ After: 段階的に最適化 1. タイトル作成:魅力的な見出し生成 魅力的なタイトル 2. イントロ作成:読者の関心を引く導入 引き込まれるイントロ 3. 本文作成:構成に基づいた詳細執筆 論理的で詳細な本文 → 執筆プロセス自体をワークフロー化して、プロレベルの記事品質を実現! 57
Stap1: タイトル作成LLM タイトル特化プロンプト system 以下は{{area}}についてネットで調べた情報です。 {{TAVILY_SEARCH/result}} この情報をベースに{{area}}の旅行情報記事を かいてください 出力する内容は、htmlタグなどはつかわずに、 テキストだけ返すようにしてください user タイトル作成のポイント 魅力的で具体的な表現 検索されやすいキーワード含有 読者の興味を引く工夫 簡潔で覚えやすい 出力例 <title> 京都の隠れた名所と絶品グルメ: 地元民おすすめの1日観光コース </title> <記事の構成> {{OUTLINE/text}} </記事の構成> 旅行記事の、タイトルだけつくってください <title> 58
59
Step2: イントロダクション作成LLM system 以下は{{area}}についてネットで調べた情報です。 {{TAVILY_SEARCH/result}} 記事の構成のアウトラインに従って書いてください 出力する内容は、htmlタグなどはつかわずに、 イントロダクション部分だけ返すようにしてください (それ以外の前後の部分は含まないでください) 記事の構成のアウトラインに従って書いてください user <記事の構成> {{OUTLINE/text}} </記事の構成> <title> {{TITLE/text}} </title> <introduction> イントロ作成のポイント 読者の関心を即座に引く 記事の価値を明確に提示 具体的なベネフィットを示唆 続きを読みたくなる工夫 出力例 <introduction> <p>古都京都には、ガイドブックに載らない 隠れた魅力がたくさんあります。今回は、 地元民だけが知る絶景スポットと、 観光客が見つけにくい絶品グルメを...</p> </introduction> 60
61
Stap3: 本文作成LLM system 以下は{{area}}についてネットで調べた情報です。 {{TAVILY_SEARCH/result}} 1つの段落は少なくとも600文字程度は書いてください 出力する内容は、htmlタグなどはつかわずに、 本文部分だけ返すようにしてください (それ以外の前後のイントロダクションやタイトル部分は含まないでください) user 本文作成のポイント 構成に忠実に詳細展開 前のセクションとの一貫性維持 具体的な情報を豊富に含める 読みやすい文体で統一 出力例 <記事の構成> {{OUTLINE/text}} </記事の構成> <body> <h2>アクセス方法</h2> <p>京都駅から...</p> <title> {{TITLE/text}} </title> <introduction> {{INTRODUCTION/text}} </introduction> <body> <h2>主要観光スポット</h2> <p>まず訪れたいのは...</p> </body> 62
63
Stage4: 最終統合(テンプレート) テンプレート活用 {{ title }} {{ introduction }} {{ body }} 統合の効果 完全な記事として出力 そのまま公開可能な品質 HTML出力なども可能 64
シングルステップ vs マルチステップ 比較 4段階ワークフローの優位性 1. タイトル最適化:魅力的な見出し 2. イントロ最適化:読者を引き込む導入 3. 本文最適化:詳細で論理的な内容 4. フォーマット統一:プロ仕様の仕上がり 結果 従来の一括執筆を遥かに上回る、プロレベルの記事品 質を自動生成 → 執筆工程をワークフロー化することで、人間ライターレベルの記事を量産可能! 65
上級編その2:パラメータ抽出 + IF分岐の活用 なぜパラメータ抽出とIF分岐? 使用する新機能 自然言語から構造化データを抽出 パラメータ抽出ノード:LLMで構造化データ抽出 条件によって処理を分岐 IF/ELSE条件分岐ノード:条件による処理分岐 より柔軟で賢いワークフローを実現 複数のLLMパス:分岐後の異なる処理 ユーザーの入力内容に応じて自動判定 実用性 今回の例:国内/海外自動判定 入力内容の自動分類 旅行先入力:「京都」「パリ」「沖縄」 コンテンツの動的カスタマイズ 自動で国内/海外を判定 ユーザー体験の向上 記事構成を動的に変更 → ユーザーの入力を理解して、最適な処理を自動選択! 66
パラメータ抽出ノードとは 定義 自然言語から構造化パラメータを抽出 LLMの推論能力を活用 主な用途 キーワード抽出:「京都の観光地」→「観光地, 京 都」 カテゴリ分類:「パリ旅行」→「海外, ヨーロッパ, フランス」 67
IF/ELSE条件分岐ノードとは 定義 条件に基づいてワークフローを分岐 IF/ELIF/ELSEの3つのパス 複数条件の組み合わせも可能 実用例 IF: area が "日本" を含む → 国内旅行用のアウトライン ELSE: → 海外旅行用のアウトライン 68
実装例:国内/海外自動判定システム ワークフロー設計 1. パラメータ抽出:旅行先から国情報を抽出 2. IF分岐:国内/海外で処理を分岐 3. 国内パス:日本特化のアウトライン生成 4. 海外パス:海外特化のアウトライン生成 5. 記事執筆:選択されたアウトラインで執筆 69
Step1: パラメータ抽出の設定(5分) 手順: 1. パラメータ抽出ノードを追加 2. 入力変数:{{area}}(対象エリア) 3. 抽出パラメータを定義: travel_type(国内/海外) プロンプト例: 以下の旅行先から必要な情報を抽出してください: 目的地:{{area}} 抽出項目: - travel_type: 「国内」または「海外」 70
Step2: IF条件分岐の設定(5分) 手順: 1. IF/ELSE条件分岐ノードを追加 2. 条件設定: 変数:{{PARAMETER_EXTRACT/travel_type}} 条件:である(Is) 値:「国内」 分岐処理: IF(True): 国内旅行用処理 ELSE(False): 海外旅行用処理 71
Step3: 国内旅行用アウトライン(8分) IFパス(国内)のLLMノード設定: system 以下の検索結果を基に、{{area}}の旅行記事の構成を作成してください: {{Tavily_Search/text}} user 国内旅行特化の特徴: アクセス:公共交通機関詳細 グルメ:地元の名産品・郷土料理 宿泊:温泉や旅館情報 お土産:地域特産品 リピート性:季節ごとの魅力 構成要素: 1. アクセス方法(電車・バス・車) 2. 主要観光スポット 3. 地元グルメ・名産品 4. 温泉・宿泊施設 5. お土産情報 6. まとめ(リピート推奨) 日本国内の特色を活かした構成にしてください。 72
Step4: 海外旅行用アウトライン(8分) ELSEパス(海外)のLLMノード設定: system 以下の検索結果を基に、{{area}}の旅行記事の構成を作成してください: {{Tavily_Search/text}} user 海外旅行特化の特徴: 事前準備:ビザ・両替・保険 文化情報:言語・マナー・習慣 実用情報:治安・緊急連絡先 現地体験:文化体験・現地ツアー 次回計画:周辺国への拡張提案 構成要素: 1. ビザ・入国情報 2. 通貨・言語・文化 3. アクセス方法(航空便・現地交通) 4. 主要観光スポット 5. 現地グルメ・レストラン 6. ショッピング・お土産 7. 注意事項・治安情報 8. まとめ(次回の計画提案) 海外旅行の実用性を重視した構成にしてください。 73
Step5: 変数集約と記事執筆(8分) 変数集約ノード: IF分岐後の結果を統合 国内/海外どちらのアウトラインも同一変数で参照 後続処理の統一化 最終記事執筆LLM: 統合されたアウトライン変数を使用 検索結果と組み合わせて執筆 分岐に関係なく同じ品質で出力 74
海外例:「ローマ」入力時 動き 1. パラメータ抽出: travel_type: "海外" 2. IF分岐:海外パス選択 3. アウトライン: 海外特化の9要素構成 ビザ・言語情報含む 75
国内例:「京都」入力時 動き 1. パラメータ抽出: country: "日本" region: "京都" travel_type: "国内" 2. IF分岐:国内パス選択 3. アウトライン: 国内特化の8要素構成 温泉・お土産情報含む 76
パラメータ抽出 + IF分岐の価値 ユーザー体験の向上 入力の自動理解 最適化されたコンテンツ 手動設定不要 運用効率の改善 1つのワークフローで多様な対応 テンプレート管理の簡素化 保守性の向上 ビジネス価値 パーソナライゼーションの自動化 顧客満足度の向上 オペレーションコスト削減 スケーラビリティの確保 技術的メリット 柔軟な条件設定 複雑なロジックの実装 デバッグの容易性 → 静的なワークフローから、知的で動的なワークフローへの進化! 77
まとめ 今日学んだこと Difyの基本操作とブロック紹介 シングルステップワークフロー作成 Chain of Thought(CoT)の概念 マルチステップワークフローの実装 外部ツール連携(TavilySearch) 実践的活用 日常業務の自動化 品質の安定化と向上 作業時間の大幅短縮 チーム協働の促進 78
ありがとうございました! 質疑応答・フリーディスカッション Contact: @miyatti 79