DifyとGeminiで作る対話型AIエージェント

1.LEARN3.DX4.AI

1.Difyは? ~AI開発がコモディティ化~


Difyの概要と特徴

 Dify(ディファイまたはディフィ)は、プログラミングの専門知識がなくても、直感的なGUI操作(ドラッグ&ドロップ)のみで高度な生成AIアプリを開発できるオープンソースのプラットフォームです。従来のAI開発では複雑なコード記述が必要でしたが、Difyの登場により、開発のハードルが大幅に下がりました。
 Difyの主な特徴は以下の通りです。

  • 直感的なビジュアルエディタ: フローチャートを作るように、視覚的に会話の流れを設計できます。
  • マルチLLM対応: OpenAIのGPTシリーズ、AnthropicのClaude、そして今回のガイドで使用するGoogleのGeminiなど、複数のAIモデルを用途や予算に合わせて自由に切り替えて利用可能です。
  • RAG(検索拡張生成)への標準対応: 自社のマニュアルやPDF、ウェブサイトの情報を「ナレッジ」として読み込ませることで、AIが知らない独自データに基づいた正確な回答が可能になります。

なぜ今、Difyが選ばれるのか?

  Difyは単なるチャットツールでなく、ビジネス現場で即戦力となるアプリを低コスト・短期間で構築できる点が評価されています。

Difyで作れるアプリの種類

  Difyでは、ユーザーの習熟度や目的に合わせて複数のアプリタイプを選択できます。

  • チャットボット(初心者向け): 1問1答形式やシンプルなFAQ対応に適しており、設定や運用が非常に簡単です。
  • チャットフロー(上級者向け): 条件分岐やAPI連携を組み込み、ユーザーの意図を理解して複雑なシナリオで回答する高度なチャットボットが構築できます。
  • ワークフロー: メールの自動返信やレポート作成など、対話を必要としない業務プロセスの自動化」に特化した機能です。

NIICTEC-Lab.では、Geminiを選んでいます。Geminiを選ぶぶメリットとして、Googleが提供する強力なAIモデルであることは言うまでももありません。動画や音声、画像を直接扱えるマルチモーダル対応に優れており、Google Cloud環境との親和性が高いのが特徴です。Difyと組み合わせることで、非常に高性能なAIエージェントを無料で始められることに大きな魅力があります。


2.Dify環境とGemini APIのセットアップ

  Difyを使ったAIエージェントの構築は、まず土台となるDify環境の用意と、AIの脳にあたるGeminiのAPIキーの設定が必要です。

1. Difyアカウントの作成(クラウド版)

  Difyの利用は、「クラウド版」と「セルフホスト(ローカル)版」の2つの方法がありますが、NIICTEC-Lab.では、環境構築が不要なクラウド版を取り上げて説明します。

  • アカウント登録手順:
    1. Difyの公式サイトにアクセスし、「Get Started for Free」をクリックします。
    2. メールアドレスでの登録のほか、GoogleやGitHubアカウントとの連携でも簡単にサインアップ可能です。
  • ワークスペースの設定:
    • ログイン後、プロジェクトを管理する「ワークスペース」を作成します。
    • 言語設定で「日本語」を選択すれば、管理画面を日本語で利用できるようになります。

補足:セルフホスト(ローカル版)について 自分でデータを完全に管理したい上級者の方は、Dockerを使用して自分のPCやサーバーにインストールする「セルフホスト版」を選択します。ただし、初回起動時には管理者アカウントの作成などの初期設定が必要となります。なお、本説明では行いません。

2. Gemini APIキーの取得手順(Google AI Studio)

  Dify自体はアプリ開発フレームワークであり、実際に文章を生成するにはGeminiなどのLLMプロバイダーのAPIキーが必要です。

  • APIキーの発行手順(Geminiの場合):
    1. Google AI Studiohttps://aistudio.google.com/)にGoogleアカウントでログインします。
    2. 画面左メニューにある🔑マークがある「Get API key」をクリックします。
    3. 変わった新たな画面左メニューにある「プロジェクト」をクリックし、「+新しいプロジェクトを作成」で、新しいプロジェクトでAPIキーを作成します。
    4. 新しいプロジェクトを作成画面で、プロジェクトに名前を付け、「プロジェクトを作成」をクリックします。
    5. プロジェクトの一覧が表示されるので、該当するプロジェクトの「キー」をクリックします。最初は”0 キー”になっています。
    6. APIキーの画面にかわるので、右上の「🔑APIキーを作成」をクリックします。
    7. 「新しいキーを作成する」画面で、「キー名の設定」をし、該当するプロジェクトを選択し、「キーを作成」をクリックします。
    8. キーが作成され、APIキー一覧画面に表示された「キー」をクリックすると「APIキーの詳細」画面が表示されるので、「キーをコピー」して保存しておきます。重要です。

3. Difyへのモデル連携の設定手順

  取得したAPIキーをDifyに登録し、Geminiを使える状態にします。

  1. Difyのホーム画面右上の丸いアカウントアイコンをクリックし、「設定」を開きます。
  2. 左側のサイドバーから「モデルプロバイダー」を選択します。
  3. リストの中から「Google」または「Gemini」を探し、「インストール」or「セットアップ」をクリックします。
  4. 表示された「APIキー認証設定」画面の「API Key」の入力欄に、先ほどコピーしたGeminiのAPIキーを貼り付け、「保存」をクリックします。

  これで、Dify上でGeminiをモデルとして選択できるようになります。

4. 注意点:APIの利用料金について

  Gemini APIには無料枠があります。ただし、利用量に応じて料金が発生する場合や、支払い情報の登録、Google Cloudへの登録が必要になります。

  • 残高不足エラー: APIキーが有効でも、プロバイダー側で支払い情報の未登録や残高不足があるとエラーになります。
  • コスト管理: 会話履歴(メモリ機能)を長く保持しすぎたり、一度に多くの情報を読み込ませたりすると、トークン消費が増えるため注意しましょう。

3.実践:Gemini搭載の対話型AIエージェント作成

  準備が整ったら、いよいよDifyを使って自分専用のAIエージェントを作成しましょう。ここでは、初心者の方でも簡単に作成できる「チャットボット」形式での構築手順を解説します。

1. 新規アプリの作成とタイプ選択

  まずは、Difyのダッシュボード(スタジオ)から新しいアプリを立ち上げます。

  1. Difyにログインし、上部メニューの「スタジオ」をクリックします。
  2. 最初から作成」ボタンをクリックします。
  3. アプリのタイプは、「チャットボット」を選択してください。
  4. アプリの名前とアイコン(例:ICT運用カウンセラーAI、社内ヘルプデスクなど)を入力し、「作成する」をクリックします。
  5. Difyの「スタジオ」のアプリ名で「オーケストレート画面」が表示されます。

補足:まずは「チャットボット」の基本形としてスタート【ユーザ入力】【LLM】【回答】の各ブロックが連携して動作する形態(デフォルト)を使用します。複雑な条件分岐が必要な場合は「チャットフロー」を選択します。

2. 使用するモデル/LLMを「Gemini」に設定する

  まず、初めに、LLMブロック「脳のマーク」をクリックします。
  作成したアプリの編集画面(オーケストレーション画面)で、LLMブロックのAIモデルをGeminiに切り替えます。

  1. 画面右上のAIモデルの選択エリアをクリックします。
  2. ドロップダウンリストから、連携済み「Google / Gemini」モデルの一覧から選択します。注意「Geminiのラインナップについて」を参照
  3. 必要に応じて、回答の「創造性」を調整するTemperatureなどのパラメータ(後段に記載「3. Geminiの回答精度を上げるコツ」)を設定します。

  これで、LLMの「AIモデル」の設定ができました。編集画面の右上にある「公開する」ボタンをクリックし、「更新を公開」をクリックし、設定を保存します。(注意保存のボタンはありません)
  設定を変更した後は、必ず「プレビュー」画面で実際に会話を行い、意図した通りの創造性(あるいは正確性)で回答が生成されているかテストすることをおすすめします。

Geminiのラインナップについて

  Gemini API は、モデルごとに無料で使えるものと課金が必要なものが分かれています。軽量な flash 系(例:gemini x.x flash)などは、Free Tierで利用できますが、高性能なpro系(例:gemini x.x pro)などは無料枠がなく、課金設定がないと利用できません。そのため、無料プランで pro モデルを指定すると「429 RESOURCE_EXHAUSTED(quota exceeded)」の利用上限超過エラーが必ず発生します。無料で試す場合は flashZを選び、pro系を使う場合は課金設定が必要です。

3. システムプロンプト(指示文)の設定

  LLMブロックのコンテキストエリアの「SYSTEM」欄に、AIがどのように振る舞うべきかの具体的なシステムプロンプト(指示)を入力します。
  これがAIエージェントの性格や専門性を決定します。

  • 入力例(ICT運用カウンセラーの場合):
    「あなたはプロのICT技術者、運用監督者として、相談者の悩みに親身になって答えてください。専門用語は避け、初心者にもわかるような丁寧な日本語で回答してください。」などのように「人格」「能力」などのプロフィール=キャラクターを設定します。」
  • 作成のコツ:
    内容によっては、より具体的な事項にまで踏み込んだ内容にすると、AIの解答が深まります。具体的であればあるほど、AIは意図通りに動いてくれます。
     「150字以内で簡潔に」といった文字数制限
     「ですます口調で」といったスタイルの指定  など
    AIに振る舞ってもらう「人格」を事細かに設定することです。
  • プロンプトの具体化: 指示が曖昧だとAIは迷ってしまいます。「あなたはプロの編集者です」と役割を与えたり、「中学生にもわかるように3つの箇条書きで」と出力形式を具体的に指定したりすると、精度が劇的に向上します。
  • 思考の連鎖(CoT): 複雑なタスクの場合、プロンプトに「ステップ1で分析し、ステップ2で検討し、最後に結論を出して」と、考え方の手順を指示することも有効です。

  システムプロンプト(指示文)を変更したら、編集画面の右上にある「公開する」ボタンをクリックし、「更新を公開」をクリックし、設定を保存します。以下、設定を変更の都度おこないましょう。(注意:保存のボタンはありません)

4. ユーザー体験を高める機能の追加

  チャットをより使いやすくするためにさらに、LLMブロックの設定を行いましょう。プレビュー画面の右下にある「管理→」をクリックします。
  いくつかの機能オプションが表示されます。

  • 会話の開始(オープナー) ユーザーが画面を開いたときに自動で表示される挨拶文を設定できます
      (例:「こんにちは!未来に貢献するあなたのイノベーション研究をサポートします。どうぞお話しください」)。
  • フォローアップAIが回答した後に、ユーザーが次に聞きそうな質問の候補を自動で表示する機能です。
  • テキストから音声へ有効にすると、テキストを音声に変換できます。
  • 音声からテキストへ有効にすると、音声入力を使用できます。
  • ファイル アップロードチャットの入力ボックスは画像やドキュメントやその他のファイルのアップロードをサポートします。
  • 引用と帰属有効にすると、生成されたコンテンツのソースドキュメントと帰属セクションが表示されます。
  • コンテンツのモデレーションモデレーション API を使用するか、機密語リストを維持することで、モデルの出力を安全にします。
  • メモリ機能: Difyのチャットボットには、過去の会話履歴を記憶する機能が標準で備わっています。メモリサイズで調整します。これにより、文脈を維持した対話が可能になります。
    • ウィンドウサイズの設定: 設定パネルで「過去何回のやり取りを覚えるか」を調整できます(例:10回など)。
    • コストとのバランス: ウィンドウサイズを大きくすると、AIはより文脈を汲み取った賢い回答ができるようになりますが、その分、毎回送信するデータ量(トークン消費量)が増え、利用料金が高くなる傾向があります。用途に合わせて最適なサイズを見極めましょう。

5. プレビューでの動作確認と修正

   設定が終わったら、画面上の「プレビュー」で実際に会話をしてみましょう。

  • 設定したキャラクター通りに返答が来るか確認します。
  • もし回答が思い通りにならない場合は、プロンプトを具体的に修正したり、モデルの設定を調整したりしてブラッシュアップしていきます。

システムプロンプト(指示文)を変更したら、編集画面の右上にある「公開する」ボタンをクリックし、「更新を公開」をクリックし、設定を保存します。以下、設定を変更の都度おこないましょう。(注意:保存のボタンはありません)

ワンポイント・アドバイス:ナレッジ(RAG)の活用 さらに高度なエージェントにするには、「ナレッジ」機能を使って、独自のPDFやウェブサイトの情報を予備知識としてインプットするコンテンツを読み込ませることも可能です。
これにより、AIがインハウスの特定情報社内規定などに基づいた回答ができるようになります。


4.動作確認とチューニング

   AIエージェントを作成した後は、実際に動かしてみて、意図通りに回答するかを確認し、精度を調整(チューニング)していく作業が必要です。

1. プレビュー機能でのテストとデバッグ

   Difyの編集画面の右側にある「プレビュー」エリアでは、保存や公開をする前に何度でもテストを行うことができます

  • テストのポイント:
    • 多様な質問: 「こんにちは」といった挨拶から、ナレッジ(学習資料)に関わる具体的な質問まで、幅広く投げかけてみます。
    • 資料にない質問: あえて資料にないことを聞き、ハルシネーション(嘘の回答)をせず、適切に「分かりません」と答えるかを確認します。
  • 「実行の詳細」を確認する: 回答が出た後、「実行の詳細」をクリックすると、AIがどのナレッジを引用し、どのようなプロセスで回答を生成したかを視覚的に確認できます。もし見当違いの資料を参考にしていた場合は、ナレッジの区切り方や検索設定を見直すヒントになります。

2. Geminiの回答精度を上げるコツ

   回答が思い通りにならない場合は、以下の設定を調整してみてください。  
   DifyでGeminiなどのモデルを使用する際、「温度(Temperature)」の設定はAIの回答の「創造性」や「ランダム性」をコントロールする重要なパラメータです。Geminiの性能を最大限に引き出すための設定のコツを解説します。

 LLMブロックのAIモデルの設定にあるGEMINIのバージョン選択のエリアの「設定ICON」をクリックすると、AIのモデルがどのように振る舞うべきかの具体的なパラメーター設定ができます。

  • 温度(Temperature)の調整: AIの「創造性」をコントロールします。
    • 値を下げる(0に近い設定): 正確で安定した回答(FAQや事務手続きなど)に向いています。
        回答が統計的に正確で安定したものになります。同じ質問に対して常に似たような回答を返してほしい場合に適しています。
      • 正確性が求められる業務(社内FAQ・カスタマーサポート): ナレッジ(RAG)を活用して「提供した資料のみに基づいて回答させたい」場合は、温度を低く設定します。これにより、AIが勝手に情報を付け加える「ハルシネーション(嘘の回答)」のリスクを抑え、事実に基づいた誠実な回答を維持しやすくなります。
    • 値を上げる(1に近い設定):柔軟でアイデア豊かな回答(悩み相談や企画出しなど)に向いています。
        回答の多様性と創造性が増したものになります。より人間らしい、あるいは意外性のある表現が生成されやすくなります。
      • アイデア出しやクリエイティブな対話(カウンセラー・コンサルタント): ユーザーの悩みに寄り添ったり、新しい提案をしたりするエージェント(例:最強の生成AIコンサルなど)の場合は、温度をやや高めに設定します。
  • これにより、紋切り型ではない柔軟なアドバイスが可能になります。
    DifyでGeminiなどのモデルを使用する際、「温度(Temperature)」などの設定はAIの回答の「創造性」や「ランダム性」をコントロールする重要なパラメータです。Geminiの性能を最大限に引き出すための設定のコツを、ソースに基づいて解説します。

   チャットボットの目的に合わせて温度を使い分けるのが、精度向上の近道です。

4. RAG(ナレッジ検索)の微調整

   資料に基づいた回答が不十分な場合は、検索設定(Retrieval Setting)を見直します。

  • Top K(N選): AIが一度に参照するドキュメントの断片数です。情報が足りない場合はこの値を増やします(3〜5程度が推奨)。
  • スコア閾値: 質問と資料の「関連性」のハードルを設定します。関係ない資料を引用しすぎる場合は、この閾値を高く設定してフィルタリングを強めます。

5. Geminiの特性を活かすための補足

  • プロンプトとの組み合わせ:
      温度調節だけで解決しようとせず、プロンプト(指示文)で「具体的であればあるほど、AIは意図通りに動く」という原則を忘れないでください。例えば、複雑なタスクでは「思考の連鎖(CoT)」を用いてステップごとに考えさせる指示を出すと、設定温度に関わらず精度が向上します。
  • コストと精度のバランス:
      Gemini 1.5 Proなどの高性能モデルで高い温度設定にすると、文脈を広く解釈するためトークン消費が増える可能性があります。単純な処理には低コストなモデル(Gemini 1.5 Flashなど)を選び、温度を低く設定することで、コストを抑えつつ安定した運用が可能です。

   設定を変更した後は、必ず「プレビュー」で実際に会話を行い、意図した通りの創造性や正確性で回答が生成されているかテストすることをおすすめします。

6. 学習データの蓄積(ログと注釈)

   Difyの「ログと注釈」画面では、ユーザーとの実際の会話履歴をすべて確認できます。

  • 採点機能: 良い回答には「いいね」悪い回答には「よくないね」で評価を付けます。
  • 改良ボタン: 不適切な回答があった場合、その場で「より良い回答例」を直接教え込むことができ、繰り返すことでAIはどんどん賢くなっていきます。

5.AIエージェントを公開して利用する

1. アプリを最新状態に「公開」する=「保存」する

   システムプロンプトの設定を変更しただけでは、「保存」されません。また、外部に「公開」されているアプリには反映されません。

  1. 編集画面の右上にある「公開する」ボタンをクリックします。
  2. 「更新を公開」を選択することで、これまでの設定変更が「保存」されて、本番環境に反映されます。

2. 公開URLで共有する(一番簡単な方法)

   Difyは、アプリ専用のチャット画面を自動で生成します。

  • 共有方法:
    1. サイドメニューの「概要」または「公開する」メニューから「アプリを実行」をクリックします。
    2. 表示された公開URLをコピーして、SNSやメールで共有します。
  • メリット:
      利用者はDifyのアカウントを持っていなくても、URLにアクセスするだけでGeminiと対話できます。

3. WordPressにAIチャットボットを埋め込む手順

   ブログサイトやコーポレートサイトに、作成したAIを埋め込む方法です。今回は最も標準的なiframe(アイフレーム)を使った手順を紹介します。

  1. 埋め込みコードの取得:
    • Difyの「公開する」「サイトに埋め込む」を選択します。
    • 表示スタイル(スクリプトタグやiframeなど)を選び、表示されたHTMLコードをコピーします。
  2. WordPress側での設定:
    • 埋め込みたい投稿または固定ページの編集画面を開きます。
    • ブロック追加ボタン(+)から「カスタムHTML」ブロックを選択します。
    • コピーしたHTMLコードを貼り付け保存(公開)します。
  3. 動作確認:
    • 実際のWebページを表示し、画面右下などにチャットボットが表示され、Geminiが正しく回答するか確認してください。

4. さらに高度な活用(LINEやSlackとの連携)

   Difyの「プラグイン」機能(クラウド版限定)を活用すれば、Webサイト以外でもAIを公開できます。

  • LINE連携:
      プラグインを介して、あなたのLINE公式アカウントの裏側でGeminiを動かすことができます。
  • Slack連携:
      社内コミュニケーションツールに導入し、チーム全体でAIアシスタントを共有することが可能です。

6.次のステップ

   お疲れ様でした!これで、Geminiを搭載したあなただけのAIエージェントが完成し、世界中に公開できる状態になりました。

これからのステップ:

  • チャットフローへの挑戦:
    今回はシンプルな「チャットボット」形式でしたが、条件分岐などを含む「チャットフロー」を使えば、より複雑な業務(Web検索とナレッジ検索の使い分けなど)が可能になります。
  • ログの分析:
    「ログと注釈」画面からユーザーとの会話履歴をチェックし、回答が不十分な箇所を改善していきましょう。

   DifyとGeminiを組み合わせることで、プログラミング不要でありながら、驚くほど高機能なAIアプリを次々と生み出すことができます。
   ぜひ、様々なアイデアを形にしてみてください!