見出し画像

AIで始めるチャットボット開発|Difyで社内FAQ風チャットボットをノーコードで作ってみた

Smart IT & AI Hub|AIという名の刃を、今日も抜く。

この記事はSmart IT & AI Hubが公開しているコンテンツです。
他の記事は目的別インデックスからどうぞ。

「社内のFAQをAIに答えさせたい。
でも、コードは書けない。」

そんな方向けに、Difyを使って社内FAQ風チャットボットをノーコードで作る方法をまとめました。

プログラミングは不要です。
この記事の手順を上から順に進めれば、FAQドキュメントに基づいて回答するチャットボットを作れるところまでいけます。

今回は、できるだけシンプルな形で、

・FAQを登録する
・チャットボットに読ませる
・質問に答えさせる
・ナレッジ外の質問には「わかりません」と返させる

ここまでを試します。


この記事で作るもの

今回作るのは、FAQドキュメントをもとに回答する社内向けチャットボットです。

イメージはこんな感じです。

入力:「パスワードを忘れた場合は?」

出力:「パスワードを忘れた場合は、
社内ポータルのログイン画面から
『パスワードを忘れた方はこちら』を
クリックして手続きを行ってください。
(出典:社内FAQ 2-3)」

ポイントは、登録したFAQドキュメントに基づいて回答することです。

逆に、ナレッジにない質問に対しては、推測でそれっぽい答えを返させず、「わかりません」または「情報が登録されていません」と返すようにします。

社内用途では、この挙動がかなり重要です。


Difyとは

【公式仕様として確認した内容】

Difyは、AIアプリやAIワークフローを視覚的に組み立てられるプラットフォームです。

コードを書かなくても、

・チャットボット
・ナレッジ検索型アプリ
・ワークフロー型アプリ
・社内向けAIツール

のようなものを作れるのが大きな特徴です。

ざっくりいうと、「LLM × ナレッジ × アプリ画面」を比較的簡単に作れるツールです。

・クラウド版:cloud.dify.ai
・オープンソース版:自分の環境に構築することも可能
・対応LLM:OpenAI、Claude、Gemini など
・対応ファイル形式:PDF、Word、TXT、CSV、Markdown など

無料で試せる範囲もありますが、利用制限や仕様は変更されることがあります。
最新情報は公式サイトや公式ドキュメントで確認してください。


前提条件

今回は、Difyのクラウド版を使って進めます。

必要なものは以下です。

・cloud.dify.ai のアカウント
・LLMのAPIキー
 (今回はOpenAIのAPIキーを使う例で進めます)
・FAQとして登録したいテキストまたはPDF

今回は検証用として、ダミーデータを使います。

今回使うダミーFAQデータ

以下のような内容を、テキストファイルとして用意しておきます。

Q:パスワードを忘れた場合は?
A:社内ポータルのログイン画面の「パスワードを忘れた方はこちら」から手続きを行ってください。

Q:障害発生時の一次連絡先は?
A:障害発生時はまず障害対応Slackチャンネル「#障害対応」に投稿してください。次に担当マネージャーに電話連絡してください。

Q:申請書の提出先は?
A:申請書は総務部のメールアドレス(soumu@company.example)に送付してください。

Q:在宅勤務の申請方法は?
A:在宅勤務の申請は社内ポータルの「勤怠管理」→「在宅申請」から行ってください。前日18時までに申請が必要です。

このように、QとAがある程度整理されていると扱いやすいです。



手順

ここから実際に作っていきます。


STEP 1|Difyにログインする

まずはDifyにログインします。

① cloud.dify.ai にアクセス
② 「Get Started for free」をクリック
③ GitHubアカウントまたはメールアドレスで登録
④ ログイン後、ダッシュボードを開く

まずはクラウド版で十分です。
後から必要に応じてセルフホストを検討すればOKです。


STEP 2|LLMのAPIキーを設定する

チャットボットを動かすには、LLMのAPIキーが必要です。

① 右上のユーザーアイコン → 「Settings」をクリック
② 左メニューの「Model Provider」をクリック
③ 使いたいLLMを選択
 (今回はOpenAIを選択)
④ APIキーを入力して「Save」

⚠️ APIキーは、OpenAIなどの各サービス側で別途取得が必要です。
また、LLMの利用には通常API料金が発生します。

ここは「Difyは無料でも、LLMのAPI利用は別料金になる場合がある」と理解しておくと分かりやすいです。


STEP 3|Knowledge Base(ナレッジ)を作成する

次に、FAQを登録するためのナレッジを作ります。

① 上部メニューの「Knowledge(ナレッジ)」をクリック
② 「Create Knowledge」または「データセットを作成」をクリック
③ ナレッジ名を入力
 例:「社内FAQ」
④ 「Create」をクリック

ここに登録した内容を、チャットボットが参照するようになります。


STEP 4|FAQドキュメントを登録する

作成したナレッジに、FAQデータを登録します。

① 作成したナレッジを開く
② 「Add File」をクリック
③ 準備したFAQテキストファイルをアップロード
 または「Text」タブを選んで直接貼り付け
④ チャンキング設定は「Automatic」でOK
⑤ 「Save & Process」をクリック
⑥ インデックス処理が完了するまで待つ

ファイルサイズによりますが、通常は数秒〜数分で終わります。

インデックス処理とは

インデックス処理とは、登録したテキストをAIが検索しやすい形に変換する処理です。

これが終わると、チャットボットが必要な情報をナレッジから探せるようになります。


STEP 5|新しいアプリを作成する

次に、チャットボット本体を作ります。

① 上部メニューの「Studio(スタジオ)」をクリック
② 「Create App(アプリを作成)」をクリック
③ 「Chatbot」を選択
④ アプリ名を入力
 例:「社内FAQボット」
⑤ 「Create」をクリック

ChatbotとChatflowの違い

最初は少し迷うかもしれませんが、今回使うのはChatbotです。

Chatbot:
シンプルな会話型アプリ
今回のようなFAQ用途に向いている

Chatflow:
条件分岐や複数ステップの処理が必要な場合に向いている

初心者なら、まずはChatbotで十分です。


STEP 6|Knowledge Retrievalを設定する

作成したアプリに、先ほどのナレッジを紐づけます。

① アプリの編集画面を開く
② 左側の「Context(コンテキスト)」または関連設定を探す
③ 「Add(追加)」をクリック
④ 先ほど作成した「社内FAQ」ナレッジを選択
⑤ 「Save」をクリック

これで、チャットボットが回答するときにナレッジを参照するようになります。

つまり、「ただの一般的なAIチャット」ではなく、FAQベースで答えるチャットボットに近づきます。


STEP 7|プロンプトを設定する

次に、チャットボットの振る舞いを決めるプロンプトを設定します。

「Instructions」または「System Prompt」の欄に、以下のような内容を入れます。

あなたは社内FAQボットです。

ルール:
・回答は登録されたナレッジに基づいてください
・ナレッジにない内容は推測せず、
 「この件についての情報はナレッジに登録されていません。
 担当部署にお問い合わせください」と答えてください
・回答は簡潔に、箇条書きを使って読みやすくしてください
・回答の根拠となったFAQの番号を最後に記載してください

プロンプトのポイント

ここで大事なのは、以下の2点です。

・ナレッジにない内容は推測しない
・不明な場合は不明と言う

これを入れておかないと、AIがもっともらしい誤答を返す可能性があります。

社内FAQ用途では、正確に答えることと同じくらい、分からないときに勝手に答えないことが重要です。



STEP 8|テスト質問を投げる

設定が終わったら、右側のプレビュー画面などでテストします。

テスト質問① 「パスワードを忘れた場合は?」
→ FAQに登録した回答が返ってくるはず

テスト質問② 「障害発生時の一次連絡先は?」
→ FAQに登録した内容が返ってくるはず

テスト質問③ 「有給休暇の申請方法は?」
→ ナレッジにない内容なら
 「情報が登録されていません」と返るのが理想

テスト質問④ 「社長の名前は?」
→ ナレッジにない内容なので
 「わかりません」と返るのが理想

ここで大事なのは、正しく答えるかだけでなく、知らないことを知らないと言えるかを見ることです。


STEP 9|回答がおかしい場合の調整方法

実際に使ってみると、最初からきれいに動かないこともあります。

よくある例をまとめます。

問題①:ナレッジにあるのに「わからない」と返る

原因:
チャンキングが適切でない可能性

対処:
ナレッジのChunking設定を見直す
チャンクサイズを調整して再処理する
またはQ&Aの書き方を整理して再登録する

問題②:関係ない内容を答える

原因:
プロンプトが弱い可能性

対処:
「絶対にナレッジ外の情報を使わない」
「不明なら不明と答える」
という指示を強める

問題③:回答が長すぎる・短すぎる

対処:
「回答は3行以内」
「箇条書きで回答する」
など、出力形式を明示する

このあたりは、FAQの内容とプロンプトを少しずつ調整すると改善しやすいです。


STEP 10|公開・共有する

動作確認ができたら、共有します。

① 画面上部の「Publish(公開)」ボタンをクリック
② 共有方法を選択する
 ・Share Link(共有リンク)
 ・Embed in Website(Webサイトに埋め込む)
 ・API Access

社内利用でまず試すなら、共有リンクが一番手軽です。

公開範囲の注意

⚠️ ここはかなり重要です。

Share Linkは、設定によっては
URLを知っている人がアクセスできる形になります。

そのため、社内専用として使う場合は、

・誰がアクセスできるのか
・外部公開状態になっていないか
・社内向け運用として問題ないか

を必ず確認してください。

社内情報を扱う場合は特に注意が必要です。


注意点まとめ

ここまでの内容を踏まえて、特に大事な注意点をまとめます。


ナレッジが古いと回答も古くなる

FAQを更新したのにナレッジを更新していないと、古い情報のまま回答してしまいます。

・FAQを更新したらナレッジも更新する
・不要な古いデータは残しすぎない
・定期的に内容を見直す

社内FAQは、作ること以上に運用して更新し続けることが大事です。


社内情報を入れる場合は権限確認が必要

クラウド版Difyを使う場合は、社内情報の扱いに注意が必要です。

・顧客情報
・個人情報
・未公開情報
・障害情報
・社内限定ルール

のような内容を入れる前に、必ず自社のセキュリティポリシーや利用ルールを確認してください。

必要に応じて、

・入れてよい情報の範囲を決める
・匿名化する
・セルフホスト版を検討する

といった判断が必要になります。


ハルシネーション対策は必須

AIは、知らないことでもそれっぽく答えてしまうことがあります。

それを防ぐために、プロンプトで以下を明示するのが大切です。

・ナレッジにない内容は推測しない
・不明な場合は不明と答える
・登録情報だけを根拠に回答する

これだけでも、回答の信頼性はかなり変わります。


実務での使いどころ

Difyの社内FAQボットは、特に以下のような用途で相性が良いです。

・社内手続きFAQ
・情シス向けの問い合わせ一次対応
・総務向けのよくある質問
・申請フロー案内
・オンボーディング用の案内ボット

逆に、以下のようなものは最初から完璧に任せようとしない方がよいです。

・複雑な業務判断が必要な問い合わせ
・最新情報が頻繁に変わるルール案内
・機密性が高い情報を含む問い合わせ
・法務判断や人事判断が必要な内容

まずは、定型的で、FAQ化しやすいものから始めるのがおすすめです。


ChatGPTで確認してほしいポイント

この記事を参考にする場合は、実際に使う前に以下の点を確認してください。

① Difyの無料版の現在の制限
 (メッセージ数、ファイルサイズ上限など)

② KnowledgeのUIが変更されていないか
 (アップデートで画面構成が変わることがあります)

③ ChatbotとChatflowの選択基準に
 新しい考え方がないか

④ Difyクラウド版のデータ保護ポリシーに
 変更がないか

⑤ セルフホスト版Difyの最小構成要件や
 最新の構築手順に変更がないか

公式ドキュメントはこちらで確認できます。

https://docs.dify.ai

免責事項

この記事は、筆者が実際に試した内容をもとに作成しています。
ただし、文章の一部にはAIによる補正・構成調整を加えています。

そのため、Difyの仕様、料金、各種制限、画面構成、対応機能、コード不要の範囲、データ保護方針、各種手順の正確性については、必ず公式情報や実際の環境で確認してください。

また、本記事を参考にしたことによって発生したトラブル、損害、料金発生、情報漏えい、設定ミス等について、筆者は責任を負いかねます。

実務で利用する場合は、社内ルールやセキュリティポリシーを確認したうえで、ご自身の環境に合わせてご利用ください。


まとめ

今回は、Difyを使って、社内FAQ風チャットボットをノーコードで作る流れを試しました。

やったことはシンプルで、

・FAQを用意する
・Difyにナレッジとして登録する
・Chatbotアプリを作る
・ナレッジを参照するように設定する
・プロンプトで回答ルールを決める
・テストして調整する
・必要に応じて共有する

これだけです。

コードを書かなくても、**「FAQに基づいて答えるボット」**のたたき台は十分作れます。

特に便利なのは、以下のような点です。

・ノーコードで試せる
・FAQベースで回答させやすい
・ナレッジ外の質問を制御しやすい
・社内向けの小さな問い合わせ対応に向いている

一方で、以下は人間が確認し続ける必要があります。

・FAQの内容が正しいか
・ナレッジが最新か
・回答が意図通りか
・公開範囲が適切か
・機密情報を扱っていないか

Difyは、いきなり大規模なAIシステムを作るためのものというより、小さく試して実務に近づけていくための道具としてかなり使いやすいです。

まずは社内FAQのような分かりやすいテーマから試してみると、かなりイメージがつかみやすいと思います。



Smart IT & AI Hubの全記事はこちらにまとめています。
カテゴリ別に整理しているので、気になる記事がすぐ見つかります。

次の実験は、もう決まっている。

もし刺さったなら、スキだけでも押してくれると嬉しい。
飛び上がって、次の実験に全力を注ぐ。

また会いに来てくれるなら、フォローしておいてくれ。
次も、AIに無茶ぶりしてくる。

Smart IT & AI Hub|AIという名の刃を、今日も抜く。

いいなと思ったら応援しよう!

たろっ@AIに仕事を丸投げしたいエンジニア ここまで読んでいただきありがとうございます。少しでも役に立った、また読みたいと思っていただけたら、応援してもらえると励みになります。いただいた応援は今後の記事づくりに活かします。