AI チャットボットは、社内問い合わせやカスタマーサポートを自動化し、担当者の業務負担を軽減できるツールです。一方で、次のような疑問も多く聞かれます。
- プログラミングの知識がなくても作れるのか
- 自社のマニュアルや規程を回答に利用できるのか
- 導入や運用にどのくらいの費用がかかるのか
- 実際にどのような手順で構築するのか
こうしたAIチャットボットを比較的少ない開発工数で構築できるのが、AI アプリ開発プラットフォーム「Dify」です。Dify では、画面上で処理をつなぎ合わせながら、チャットボットや AI ワークフローを構築できます。PDF や Web ページなどの自社資料を検索し、その内容をもとに回答する RAG 型チャットボットも作成可能です。
本記事では、Dify を使って AI チャットボットを構築する手順を解説します。あわせて、料金の考え方や企業での活用例も紹介します。
【目次】
- Dify で AI チャットボットを作るメリット
- 今回構築する Dify を使用した AI チャットボットの概要
- Dify で AI チャットボットを作る手順
- Dify と LLM の費用
- Dify 活用事例
- まとめ
あとで読み返したい方は、この記事のまとめ資料が便利です
Dify で AI チャットボットを作るメリット
Dify は、生成 AI を活用したチャットボットや業務フローを、ノーコード・ローコードで構築できるプラットフォームです。Dify を利用すると、例えば次のような AI チャットボットを作成できます。
- 社内規程やマニュアルに関する問い合わせ対応
- 商品・サービスに関するカスタマーサポート
- 利用規約や契約内容の検索
- 営業資料や技術資料の検索
- 社内ヘルプデスクの一次対応
Dify の大きな特徴は、PDF や Web ページなどの資料を登録し、その内容をもとに回答する RAG 型チャットボットを比較的簡単に構築できる点です。
また、質問の分類、条件分岐、外部サービスとの連携なども画面上で設定できます。単純な質問回答だけでなく、問い合わせ内容に応じて処理を変える業務向けのチャットボットにも対応できます。
今回構築する Dify を使用した AI チャットボットの概要
今回は、Coopel の利用規約に関する質問へ回答する AI チャットボットを作成します。
チャットボットは、次の流れで回答を生成します。
1.ユーザーの質問を受け取る
2.利用規約に関する質問かどうか判定する
3.質問を検索しやすい表現に変換する
4.利用規約のナレッジから関連情報を検索する
5.検索結果をもとに回答を生成する
6.情報が見つからない場合は、公式 Web サイトを補助的に検索し、必要に応じて問い合わせ先を案内する
今回の構成では、登録した利用規約を回答の主な根拠とし、根拠が確認できない内容は断定しないように設定します。
Dify で AI チャットボットを作る手順
ステップ1 : チャットボットの要件を定義
チャットボットを作成する前に、回答する範囲や、情報が見つからなかった場合の対応方針を決めます。
今回の設定は次のとおりです。
項目 | 設定 |
回答対象 | Coopel の利用規約に関する質問 |
対象ユーザー | Coopel の利用者や利用を検討している人 |
参照する情報 | Dify に登録した利用規約資料 |
情報が見つからない場合 | Web 検索へと処理を切り替え、確認できない内容は断定せず、問い合わせ先を案内 |
回答方針 | 利用規約に記載された内容をもとに回答し、根拠のない内容は推測しない |
情報が見つからない内容を生成 AI に推測させない点が重要なポイントとなります。
ステップ2 : Dify のナレッジの準備
今回は、Web ページの内容を Markdown 形式で取得し、不要な部分を整理したうえでテキストファイルに変換して Dify へ登録します。
文書を準備するときのポイント
- 見出し構造を残す
- メニューや広告など不要な文字を削除する
- 一つのファイルに情報を詰め込みすぎない
- 表や箇条書きが崩れていないか確認する
実際に、ナレッジ登録までの画面遷移に関しては以下の画像を参考にしてください。


ステップ3 : Dify でナレッジベースを作成する
ナレッジベースを作成する際は、主に次の3つを設定します。
- 文書をどの単位で分割するか
- 分割した文章をどのように検索可能にするか
- ユーザーの質問からどのように情報を検索するか
ステップ2 の処理が終了し、最後の画像の「次へ」をクリックすると、これらの設定画面に遷移します。
チャンク設定
チャンク設定では、登録した文書を検索用のまとまりへ分割します。この一つひとつのまとまりを「チャンク」と呼びます。
設定 | 特徴 | 向いている文章 |
汎用 | 一定の長さや区切りで文書を分割し、検索されたチャンクをそのまま回答に使用する | FAQ , 短いマニュアル |
親子 | 小さな子チャンクで検索し、それを含む大きな親チャンクを回答に使用する | 利用規約 , 契約書 , 長いマニュアル |
親子では、関連箇所を細かく検索しながら、条件や例外などの前後の文脈も回答に含められます。
今回のような利用規約では、条項の一部分だけでなく周辺の文脈も重要になるため、「親子」を選択します。
操作手順は、ステップ2からの続きで、以下の通りになります。
「チャンク識別子」とは、システムやAIに対して「特定の文字や記号が出現した位置で、文章を適切に分割する」ように指示するための区切りの目印です。そのため、条項ごとの見出しで使用される ## を今回のチャンク識別子としています。子チャンクに関しては、その中で、改行が生じた際に、さらに内容を分割するため \n としています。

インデックス方法
インデックス方法では、チャンクに分割した文章を、どのような仕組みで検索できる状態にするかを設定します。
設定 | 特徴 | 注意点 |
高品質 | 文章をベクトル化し、単語だけでなく意味の近さでも検索できる | Embedding モデルの利用に費用が発生する |
経済的 | 抽出したキーワードの一致をもとに検索する | 言い換えられた質問を検索しにくい場合がある |
今回は、「退会」と「サービスをやめたい」のように、利用規約とユーザーで異なる表現が使われる場合にも関連情報を検索できるよう、「高品質」を選択します。
操作手順は以下の通りになります。

検索設定
検索設定では、ユーザーの質問に関連するチャンクを、ナレッジからどのように探すかを設定します。
検索方法 | 特徴 | 適している質問 |
ベクトル検索 | 文章の意味の近さをもとに検索する | 自然な言い換えを含む質問 |
全文検索 | 質問と文書の単語の一致をもとに検索する | サービス名、番号、専門用語を含む質問 |
ハイブリッド検索 | ベクトル検索と全文検索の結果を組み合わせる | 言い換えと明確なキーワードの両方を含む質問 |
たとえば、「サービスをやめたい」という質問でも、ベクトル検索であれば「退会」や「契約終了」に関する文章を意味の近さから検索できます。一方、「第○条」や「返金」といった明確な言葉は、全文検索で見つけやすくなります。
今回は、自然な言い換えと「解約」「返金」などのキーワードの両方に対応するため、「ハイブリッド検索」を選択します。
以下の画像の通りになります。トップK とは検索した結果の中から、参考資料として渡す関連性の高い上位何件のチャンクを取得するかを決定する値です。今回は、 ハイブリッド検索の細かいパラメータ等の設定はデフォルトにしています。

ステップ4 : Dify でのアプリ新規作成
Difyの「スタジオ」画面から「作成」→「最初から作成」を選択します。

今回は、複数の処理を組み合わせながら会話形式で回答するチャットボットを作成するため、アプリタイプには「チャットフロー」を選択します。
その後、アプリ名を入力し、「作成する」をクリックすると、チャットフローの編集画面が開きます。
このあと、質問分類やナレッジ検索、回答生成などのノードを追加して、実際の処理フローを構築していきます。

ステップ5 : チャットフローの構築
続いて、ユーザーの質問を受け取り、ナレッジから回答を生成するチャットフローを構築します。今回作成するチャットボットは、次の流れで質問を処理します。
1.質問が利用規約に関する内容か判定する
2.質問をナレッジ検索に適した形へ変換する
3.ナレッジから関連情報を検索する
4.検索結果の有無によって処理を分岐する
5.取得した情報をもとに回答を生成する
以下では、特に重要なノードの設定を説明します。

ステップ5-1:質問分類器
最初に、ユーザーの質問が利用規約に関する内容かを判定します。今回は、質問を次の2つに分類します。
- 利用規約やサイトのルール・仕様に関連する質問
- それ以外の質問
対象外の質問を早い段階で分岐させることで、不要なナレッジ検索や回答生成を防げます。
【質問分類器の設定画面】

ステップ5-2:クエリ最適化
ユーザーの質問をそのままナレッジ検索に使用すると、曖昧な表現や会話特有の省略によって、適切な情報を取得できない場合があります。そこで、LLM を使用して、質問を検索に適した文章へ変換します。
たとえば、次のように変換します。
ユーザーの質問:退会したら、支払った料金は戻りますか?
検索用のクエリ:退会時の利用料金の返還
変換時には、元の質問に含まれていない情報を追加しないようにプロンプトを設定します。
【クエリ生成用 LLM ノードの設定画面】

ステップ5-3:知識検索
生成した検索用クエリを知識検索ノードへ渡し、登録した利用規約から関連するチャンクを取得します。
主に次の項目を設定します。
- 使用するナレッジベース
- 検索に使用するクエリ
- 検索方法
- 取得するチャンク数
- スコアしきい値
設定後は、実際の質問を使って、回答に必要な条項が取得されるか確認します。
【知識検索ノードの設定画面】

ステップ5-4:条件分岐
次に、知識検索で情報を取得できたかどうかによって、処理を分岐します。情報を取得できた場合は、ユーザーの質問と検索結果を LLM へ渡し、回答を生成します。情報を取得できなかった場合は、回答を推測せず、次のいずれかの処理を行います。
- 回答できないことを伝える
- 公式の問い合わせ窓口を案内する
- 公式 Web サイトを検索する
今回は、情報を取得できなかった場合は、公式 Web サイトを検索し、それでも回答の根拠が確認できない場合は、問い合わせ窓口を案内します。
【条件分岐ノードの設定画面】

ステップ5-5:回答生成
検索結果が取得できた場合は、LLM ノードを使用して回答を作成します。LLM には、次のようなルールを設定します。
- 検索結果を根拠に回答する
- 情報がない内容を推測しない
- 質問に対して簡潔に回答する
- 必要に応じて該当する規約の内容を示す
- 判断できない場合は問い合わせ窓口を案内する
【回答生成用 LLM ノードの設定画面】

ステップ5-6:Tavily Search
Tavily Searchは、AIアプリ向けにWeb上の情報を検索し、検索結果をLLMなどの後続処理へ渡せる検索サービスです。Difyと連携することで、ナレッジベースに情報がない場合でも、Web上から関連情報を取得できます。
ただし、今回のように利用規約を扱うチャットボットでは、古い情報や非公式な情報を参照すると、誤った回答につながる可能性があります。そのため、Web検索を使用する場合は、公式サイトの情報だけを対象にするなど、検索範囲を制限します。
Tavily Searchの連携は、次の流れで行います。
1.DifyのマーケットプレイスからTavily Searchを追加する
2.TavilyのAPIキーを登録する
3.チャットフローに検索ノードを追加する
4.検索結果を回答生成用のLLMノードへ渡す
今回のチャットボットでは、登録した利用規約を第一の情報源とし、Web検索はナレッジに必要な情報がない場合の補助的な手段として利用します。
【回答生成用 LLM ノードの設定画面】

ステップ6 : 動作テスト
1.単純な質問への回答
まず、質問内容と規約の記載が比較的直接対応しているケースで、適切な条項を取得して回答できるか確認します。
今回は、「メンテナンスでサービスが停止することはありますか?」と質問しました。その結果、第7条第1項を参照し、メンテナンスなどのために事前の通知なくサービスが停止する場合があると回答しました。
明確な質問に対して、該当する規約を正しく取得し、その内容に沿って回答できています。

2.言い換え検索の確認
続いて、利用規約に記載されている表現とは異なる、日常的な言い回しでも適切な情報を取得できるか確認します。
今回は、次の質問を入力しました。「自分のアカウントを同僚に使わせてもよいですか?」この質問に対して、チャットボットは利用規約内の「第三者に本サービスを利用させる行為」に関する規定を取得し、アカウントを同僚に利用させることはできないと回答しました。
ユーザーが「第三者利用」や「貸与」といった規約上の表現を使わなくても、質問の意味をもとに関連する規定を検索できていることが確認できます。
また、回答には根拠となる条項と参照したナレッジも表示されており、どの情報をもとに回答したか確認できるようになっています。

3.複数条項を参照した回答
次に、1つの質問に対して複数の条項を参照しながら回答できるか確認します。
今回は、「支払った利用料金は返金してもらえますか?」と質問しました。その結果、チャットボットは料金の返還に関する第8条だけでなく、退会時の扱いを定めた第18条や、サービス廃止時の例外を定めた第17条など、関連する複数の条項を参照して回答しました。
このように、1つの条項だけで判断するのではなく、質問に関連する複数の規定をもとに回答を生成できていることが確認できます。

4.対応範囲外の質問
最後に、利用規約やサイトのルール・仕様とは関係のない質問を、適切に対象外として処理できるか確認します。
今回は、「今日の天気を教えてください。」と質問しました。その結果、質問分類器によって対応範囲外の質問として判定され、ナレッジ検索や回答生成を行わず、対象外であることを案内しました。

ステップ7 : アプリの公開
Dify では、作成したアプリを URL・API・MCP サーバーなどを通じて他のユーザーに共有できます。
今回は、もっとも簡単な方法として URL で公開します。下記画像のように「公開する」をクリックした後、「アプリを実行」を選択します。すると、チャットボットを利用できる専用ページが開きます。表示されたページの URL を共有することで、他のユーザーも作成したチャットボットを利用できます。

Dify と LLM の費用
Dify で AI チャットボットを運用する際の費用は、大きく分けて Dify 自体の利用料と、LLMなど外部サービスの利用料があります。
Difyの利用料
Dify には、クラウド版とセルフホスト版があります。
クラウド版には、無料で利用できる「Sandbox」のほか、「Professional」「Team」「Enterprise」などのプランがあります。Professionalは月額59ドル、Teamは月額159ドルで、Enterpriseは個別見積もりとなっています。(2026年9月1日現在)
参考 : Dify 公式料金ページ1
一方、セルフホスト版では Dify を自社環境に構築して利用できます。Dify 自体のライセンス費用だけでなく、サーバーの構築・運用や保守にかかるコストも考慮する必要があります。
LLM の利用料
Dify から外部の LLM API を利用する場合は、使用するモデルや処理する文章量に応じて API 利用料が発生します。LLM の利用料は、基本的に「トークン」と呼ばれる単位で計算されます。トークンとは、AIが文章を処理する際の単位で、単純な文字数とは一致しません。
今回の記事で作成したチャットボットでは、Gemini 3.5 Flash を使用しました。Gemini 3.5 Flash の標準 API 料金は、100万トークンあたり入力1.50ドル、出力9ドルです。(2026年9月1日現在)
参考 : Gemini Developer API の料金2
ここで注意したいのが、LLM への「入力」はユーザーが入力した質問文だけではない点です。今回のチャットボットでは、ユーザーの質問を受け取ったあとにクエリ最適化を行い、さらにナレッジから取得した情報を LLM へ渡して回答を生成しています。そのため、ユーザー自身の質問が短い場合でも、プロンプトや検索したナレッジなどが加わることで、実際に LLM へ入力される文章量は多くなります。
今回作成したチャットボットの処理を例にすると、1回の質問に対して LLM へ渡される入力は約600文字、生成される出力は約400文字でした。
仮に1文字あたり1.2トークンとして概算すると、
- 入力:約720トークン
- 出力:約480トークン
となります。Gemini 3.5 Flash の料金をもとに計算すると、
- 入力:720 ÷ 1,000,000 × 1.50ドル = 約0.00108ドル
- 出力:480 ÷ 1,000,000 × 9ドル = 約0.00432ドル
- 合計:約0.0054ドル
1ドル=150円として換算すると、1回あたり約0.81円です。同程度の処理を月に1,000回行った場合は、単純計算で約810円となります。
ただし、この金額は今回作成したチャットボットの入出力量をもとにした概算です。実際の料金は、質問内容や取得するナレッジの量、LLM を呼び出す回数、生成する回答の長さなどによって変動する点に注意が必要です。
Dify 活用事例
Dify は、社内外の問い合わせ対応や情報検索、業務支援など、さまざまな用途に活用できます。
社内問い合わせ対応
就業規則や経費精算、福利厚生、社内システムの利用方法などをナレッジとして登録し、社員からの質問に自動で回答できます。よくある問い合わせへの一次対応を自動化することで、担当部署の負担を軽減できます。
カスタマーサポート
商品マニュアルや FAQ 、利用規約などをもとに、顧客からの問い合わせへ回答するチャットボットを構築できます。回答できない内容のみ担当者へ案内するように設計することで、問い合わせ対応の効率化できます。
社内資料・マニュアルの検索
営業資料や技術資料、業務マニュアルなどを登録し、自然な文章で必要な情報を検索できます。保存場所や資料名が分からない場合でも、質問内容から関連する情報を探せるため、社内の情報検索を効率化できます。
営業・業務支援
商品情報や過去の提案資料などを参照しながら、提案内容の整理や文章作成を支援する仕組みも構築できます。さらに、条件分岐や外部サービスとの連携を組み合わせることで、情報検索だけでなく、その後の業務フローまで自動化できます。
このように、Dify はナレッジ検索、条件分岐、外部サービス連携などを組み合わせることで、さまざまな業務に応用できます。
まとめ
Dify を活用することで、専門的なプログラミング知識がなくても、ナレッジ検索や条件分岐を組み合わせたAIチャットボットを構築できます。
今回は、Coopel の利用規約をナレッジとして登録し、質問分類、クエリ変換、ナレッジ検索、回答生成を組み合わせたチャットボットを作成しました。
Dify は、社内問い合わせやカスタマーサポート、資料検索など幅広い業務に応用できます。まずは対象範囲を限定した小規模な用途から導入し、回答精度や運用方法を確認しながら活用範囲を広げてみてはいかがでしょうか。
出典一覧
1 「Gemini Developer API の料金」Google AI for Developers」https://ai.google.dev/gemini-api/docs/pricing?hl=ja、2026年9月1日閲覧
2 「Dify 料金プラン」Dify 公式https://dify.ai/ja/pricing、2026年9月1日閲覧
