ノーコードで実現! DifyでカスタマーサポートAIチャットbotを作成する:「生成AI」×ノーコードツール「Dify」で学ぶ、チャットbot構築のいろは(1)
ノーコード/ローコードでAIアプリ構築を構築できるオープンソースプラットフォーム「Dify」を活用して、AIチャットbot作成のいろはを解説する本連載。初回は、Difyの概要や基本機能、料金体系を整理しながら、カスタマーサポート用チャットbotを作成する手順を分かりやすく解説します。
連載:「生成AI」×ノーコードツール「Dify」で学ぶ、チャットbot構築のいろは
目次
はじめに
昨今の生成AI(人工知能)ブームにより、AIを活用したアプリケーション(以降、アプリ)の開発が注目されています。さまざまな業種の企業が、それぞれにAIを活用したサービスを模索しているところでしょう。しかし、AIを活用したアプリを従来の開発手法で開発するとコストや時間がかかるため、実用レベルでスピーディーにビジネスに取り入れていくのはなかなか難しいものです。
そこで本連載で紹介するのが「Dify」です。Difyは、ノーコード/ローコードでAIアプリを開発・運用できるオープンソースのプラットフォームです(図1)。
Difyでは直感的な操作で、OpenAIのGPTやAnthropicのClaudeなどのLLM(大規模言語モデル)を活用したアプリを構築できることが特徴です。約2週間ごとに新バージョンをリリースしており、これまでに130以上のリリースが行われています。また、800人以上のコントリビューターが参加しており、非常に活発に開発が進められています。
本連載では、Difyによる生成AIアプリ構築の例として、AIチャットbotにフォーカスし、カスタマーサポート用のAIチャットbotを作成、カスタマイズしていきます。Difyの基本機能や特長を解説しながら、商品の知識を検索して回答できるようにし、なるべくリアルにカスタマーサポートとして使えるようなチャットbotを目指して解説していきます。チャットbotの作成だけでなく、Webサイトへの組み込みなども紹介しますので、ぜひ最後までお付き合いください。
Difyの基本機能と特長
Difyでは、プログラミングの知識がなくても、ドラッグ&ドロップ操作や画面入力だけで簡単にAIアプリを開発できます。これにより、ビジネスユーザーや非エンジニアでも手軽にAIを活用したアプリを作成できるようになります。業務プロセスを自動化するワークフローもGUI(グラフィカルユーザーインタフェース)で設計、実装できます(図2)。
AIの脳ともいえるモデルも自由に選択できます。OpenAIのGPTをはじめとして、ClaudeやGrokなどの多様なモデルを接続できます。のみならず、社内文書やFAQなどローカルな情報をナレッジベースとして取り込み、AIの回答精度を向上させることも可能です。
その他にも、Difyには以下のような特長があります。
- 日本語対応:日本語に完全対応しており、日本語でのプロンプト設計やユーザーインタフェースを実現できる
- 外部サービスとの連携:NotionやSlack、Google Sheetsなどの外部ツールと連携し、情報の統合が可能
- オープンソースでの提供:ソースコードが公開されており、カスタマイズやセルフホスティングも可能
- 商用利用が可能:作成したアプリを商用サービスとして提供できる
- 迅速な開発サイクル:ノーコードでの開発により、短期間でのアプリ開発と改善のサイクルが実現できる
クラウド版のDifyの料金体系は、無料プラン(Sandbox)と有料プラン(Professional、Team)に分かれています。無料プランでも、OpenAIのモデルを200メッセージまで利用できるため、とりあえず試してみて使い勝手を確認してから、有料プランに移行してもよいでしょう(図3)。
活用シーン
Difyは、さまざまな業種や業務において活用が考えられます。
- カスタマーサポートの自動化:FAQ対応や問い合わせ対応を自動化し、顧客満足度を向上
- 社内ヘルプデスクの構築:ITサポートや人事関連の問い合わせ対応を効率化
- 営業支援ツールの開発:顧客情報の要約や提案資料の自動生成を行い、営業活動を支援
- マーケティングコンテンツの生成:ブログ記事やSNS投稿文の自動生成により、コンテンツ制作を効率化
- 教育・研修支援:学習教材の作成や質問応答システムの構築により、教育活動を支援
Difyを活用することで、AI技術を取り入れた業務効率化やサービス向上を、大きなコストをかけずに実現できる可能性があります。
Difyでチャットbotアプリを作る
本連載では、Difyを使って、架空の化粧品メーカー「超青春製薬株式会社」が販売する化粧品「超新青オールインワン」の専用カスタマーサポート窓口となる、以下の図4のようなチャットbotアプリを作成します。
具体的にAIが案内する商品の内容は以下のような設定とします。
- 商品名:超新青オールインワン
- 製造販売会社名:超青春製薬株式会社
- 製品形態:300ml入りガラスボトル
- メーカー小売り希望価格:1万880円
- 販売チャネル:自社通販サイト、Amazon.co.jp、楽天自社サイト
- メインターゲット:10代〜20代の男性
Difyへのサインアップ
Difyに未登録の場合は、先にアカウントを作成しましょう。Difyの公式サイトにアクセスし、右上の「始める」をクリックします。
GitHubやGoogleのアカウントが既にある場合は、SSO(Single Sign-On)でサインアップできます。アカウントを持っていない場合は、メールアドレスを入力して新規登録を行ってください(図5)。
サインアップ後、ログインし、Difyの「スタジオ」画面が表示されれば準備完了です(図6)。
早速、「アプリを作成」の「最初から作成」を選んで、アプリを作成していきましょう。なお、「テンプレートから作成」を選ぶと、あらかじめ用意されたテンプレートを利用してアプリを作成することもできます。ぜひ一覧も見てみてください(図7)。
チャットbotアプリの新規作成
「最初から作成」を選ぶと、以下の図8ようなアプリの基本情報を入力する画面が表示されます。
「アプリの種類」では、以下の表1に挙げるアプリの種類から選択できます。ここでは「チャットボット」を選択します。
アプリの種類 | 説明 |
---|---|
チャットボット | 簡単なセットアップのLLMベースのチャットbot |
エージェント | 推論と自律的なツールの使用を備えたインテリジェントエージェント |
テキストジェネレーター | テキスト生成タスクのためのAIアシスタント |
チャットフロー | メモリを使用した複雑なマルチターン対話のワークフロー |
ワークフロー | シングルターンの自動化タスクのオーケストレーション |
表1 選択できるアプリの種類 |
次に「アプリのアイコンと名前」「説明」を入力します。ここでは名前を「超新青オールインワン カスタマーサポート」としますが、好きな名前として構いません。アイコンを含め、この入力内容は後からでも変更できます。
「作成する」をクリックするとアプリが作成され、「オーケストレーション」画面が表示されます(図9)。オーケストレーションは、Difyでアプリのフローやプロンプトを設計するための重要な画面です。
早速、「手順」部分に以下の内容をコピペしてみましょう。これがいわゆる「プロンプト」に当たる部分で、チャットbotが「どのように振る舞うか」を定義します。なお、この内容はチャットの利用者には表示されません。
あなたは超青春製薬株式会社のカスタマーサポート担当AIです。ユーザーは、会社が製造・販売する製品である「超新青オールインワン」に関して質問してきます。 あなたの役割は、以下の内容を含めて、親切かつ正確に回答することです。 ■ 回答のルール - 敬語で、丁寧かつ親しみやすい口調を使ってください。 - 「超新青オールインワン」以外の質問には、回答できない旨を伝えて、答えないでください。 - ユーザーが製品による肌のトラブルを訴えた場合は、有人サポート窓口(電話番号:0120-123-456)へ誘導してください。 - 使い方に関する内容は、概要を説明し、商品ページへのリンクに誘導してください。 ■ 製品「超新青オールインワン」について - 製品形態: 300ml入りガラスボトル - メーカー小売り希望価格: 10880円 - 販売チャネル: 自社通販サイト、Amazon.co.jp、楽天自社サイト - メインターゲット: 10代〜20代の男性 - 特徴 1. 美容液、化粧水、乳液がこれ1本でOK 2. 1日1回、お風呂上がりの使用だけでもOK 3. 多数の論文に裏付けされた保湿力とシミ抑止力
手順が入力できたら、「公開する」ボタンから「更新を公開」を選択します。これで、アプリの基本設定が完了しました(図10)。
実際に試してみる
いよいよチャットbotを使ってみましょう。同じく「公開する」ボタンのメニューにある「アプリを実行」をクリックします(図11)。
別ウィンドウ(タブ)でチャットbotとのチャット画面が表示されます。まるでChatGPTのようなインタフェースですね。実際に問い合わせメッセージを送ってみましょう(図12)。
日本語の表現は多少気になりますが、自然な受け答えができています。現状ではほとんど「手順」に書いたことを話しているだけですが、「対象の製品以外の質問には答えないでください。」という指示にも従っていて、チャットbotとして最低限の回答はできているようです。
ただし、同じ質問をしても、毎回同じ回答が返ってくるわけではありません。これはChatGPTと同じ挙動です。
AIモデルの選択とパラメーター調整
Difyでは、さまざまなAIモデルを選択してアプリを実行することができます。オーケストレーション画面で「公開する」の左にあるボタンをクリックすると、利用できるAIモデルの一覧が表示されます(図13)。
執筆時点のデフォルトモデルは「gpt-3.5-turbo-0125」でした。今回は「gpt-4o-mini」を選択してみましょう。このあたりはAIモデルの更新によって変わる可能性があるので、お好きなモデルを選択してください。
さらに、AIモデルのパラメーターを調整することもできます。ここで使用したGPT系のモデルの場合、以下の表2のようなパラメーターが用意されています。これはOpenAIのAPIパラメーターと同じです。
パラメーター | 説明 |
---|---|
Temperature/温度 | 生成するテキストの多様性を制御します。0.0に近いほど決定論的な応答になり、1.0に近いほどランダムな応答になります。 |
TopP/トップP | テキスト生成に使われる単語候補の多様性を制御します。0.0に近いほど決まった単語しか選ばなくなり、1.0に近いほど単語の多様性が増します。 |
Presence Penalty/存在ペナルティー | 新しいトークンが生成される確率を制御します。0.0に近いほど新しいトークンが生成されやすくなり、1.0に近いほど新しいトークンが生成されにくくなります。 |
Frequency Penalty/頻度ペナルティー | 同じトークンが繰り返される頻度を制御します。0.0に近いほど繰り返しが多くなり、1.0に近いほど繰り返しが少なくなります。 |
Max Tokens/最大トークン数 | 生成するテキストの最大長を指定します。トークンは単語や記号の単位です。 |
表2 AIモデルのパラメーター |
個別のパラメーター調整は難しいため、「プリセット」を選ぶことで事前に調整されたパラメーターを選択することもできます。ここではカスタマーサポートという性質上、「正確」を選択してみました。
パラメーターを調整したら、再度「公開する」ボタンから「更新を公開」を選択します。これで、AIモデルの変更とパラメーターの調整が完了しました。
チャット画面から前回と同様な質問をしてみましょう。2回、別の「新規チャット」を開いて、同じ質問をしてみました(図15)。
AIモデルを変更したことと、パラメーターを「正確」にしたことで、回答のブレが少なくなり、ほぼ同じような回答が返ってくるようになりました。これでカスタマーサポートとして少し有能になったと思われます。
プロンプトの設計と調整
プロンプト(手順)は、AIに対してどのような情報を与えるかを決定する重要な要素です。プロンプトの設計によって、AIの応答の質や精度が大きく変わります。
プロンプトに与える内容
最初に与えたプロンプトでは、以下のような内容を含めていました。
- 役割:AIに、自分がどのような役割を果たすかを教えます。ここでは「超青春製薬株式会社のカスタマーサポート担当AI」であることを明確にしています
- 回答のルール:口調や、特定の質問に対する応答方法を指定し、AIがどのように振る舞うかを制御します
- ドメイン知識:AIが回答するための製品の基礎知識を提供しています。ここでは取り扱う商品「超新青オールインワン」に関する情報を含めています
基本的にはこのようなプロンプトを適切に設計することで、ある程度の精度でAIに回答させることができます。今回の例で与えた以外にも制約条件や注意点を追加することで、より正確な回答を生成させることもできるでしょう。
プロンプトの調整
プロンプトの設計は試行錯誤が不可欠なので、実際にAIに質問を投げかけてみて、応答を確認しながら改善していくことが重要です。
さきほどは実際にチャット画面を開いて質問を入力していましたが、Difyのオーケストレーション画面の右側にある「デバッグとプレビュー」を使うことで、毎回「公開」しなくとも、プロンプトやパラメーターを調整しながら、回答がどのように変化するかを確認することができます(図16)。
このようにトライ&エラーを手間なく繰り返しながら、AIを調整できるのがDifyの大きな特長です。
「機能」でユーザー体験を向上させる
Difyのチャットbotアプリには、チャットbotでよく使われる「機能」を追加できます。この「機能」を使うことで、チャットbotアプリのユーザー体験を向上させることができます。
ここでは「会話の開始」と「フォローアップ」を追加してみましょう。「会話の開始」は、ユーザーがチャットを開始したときに表示されるメッセージや質問を設定する機能、「フォローアップ」は、AIの回答後に追加の質問を表示する機能です。
「デバッグとプレビュー」画面の下にある「管理」をクリックし、機能の管理画面を開きます(図17)。
「会話の開始」と「フォローアップ」を選択し、「会話の開始」の「オープナーを書く」ボタンをクリックします(図18)。
「会話の開始」ダイアログで、オープナーを入力します。さらに「開始質問」のところで「オプションを追加」をクリックし、ユーザーが選択できる質問例を追加します。10個まで追加できます(図19)。
設定できたら「保存」をクリックします。「デバッグとプレビュー」右上のリフレッシュボタンをクリックして会話をリセットすると、先ほど設定したオープナー(最初のAIのメッセージ)と選択肢が表示されます(図20)。
選択肢をクリックすると、AIがその質問に対して回答します。これで、ユーザーは最初の質問を自分で入力しなくてもよくなりました。また、回答の後にはフォローアップ機能によって、追加の質問の選択肢が表示されます。これによりユーザーの聞きたいことが連続する限り、選択肢を選ぶだけで会話が進むようになり、ユーザー体験の向上が期待できます。
まとめ
今回は、Difyを使ってチャットbotアプリを作成する方法を解説しました。本当にノーコードで、企業ホームページにありそうなチャットbotが作れてしまいました。Difyは無料(Sandbox)で気軽に試すことができるので、ぜひ自分だけのチャットbotアプリを作成してみてください。
次回は、作成したチャットbotをホームページに埋め込んで、実際のカスタマーサポート窓口のように利用してみます。
筆者紹介
WINGSプロジェクト 山田研二(ヤマダ ケンジ)
株式会社MSEN CTO(https://msen.jp/)。高校卒業後、大阪大学の研究所で働きながらプログラミングやWebデザインをはじめ、以後20年以上、Webサイト制作や業務システムの構築を手掛けている。フリーソフトも幾つか公開している。好きな言語はC#とTypeScript、趣味は旅行。
・GitHubアカウント(https://github.com/kenzauros)
WINGSプロジェクト
有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティー(代表山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手掛ける。2021年10月時点での登録メンバーは55人で、現在も執筆メンバーを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。
・サーバーサイド技術の学び舎 - WINGS(https://wings.msn.to/)
・RSS(https://wings.msn.to/contents/rss.php)
・X: @WingsPro_info(https://x.com/WingsPro_info)
・Facebook(https://www.facebook.com/WINGSProject)
Copyright © ITmedia, Inc. All Rights Reserved.