はじめに
業務中に、
- 「機器が動かなくなった」
- 「トラブルが起きた場合、まずどこへ報告するんだっけ?」
- 「契約内容の確認入口はどこだったっけ?」
というような確認が必要になることがあります。
マニュアル自体は社内ドライブ上に存在していても、実際の現場ではすぐに確認できるとは限りません。
そこで今回は、Difyを使って、社内マニュアルをAI検索で呼び出せるBotを作成しました。
目的は、AIに最終判断をさせることではありません。
現場担当者が、まず自分でマニュアルの該当情報を確認し、初期対応の入口まで進めることを目指しました。
移動スーパーの業務と、現場で起きる確認ごと
私の業務では、移動スーパーの運行管理に関わっています。
移動スーパーは、店舗で商品を車両に積み込み、あらかじめ決められたルートに沿って各販売場所を回る事業です。
店舗の中だけで完結する業務ではなく、販売員が車両で外に出て、地域の複数拠点を順番に訪問します。
そのため、運行中にはさまざまなトラブルや確認事項が発生します。
例えば、
- 天候が悪化した場合、中止判断はどうするのか
- レジが動かなくなった場合、まず何を確認するのか
- 車両をこすってしまった場合、どこに連絡するのか
- 販売場所で予定外の対応が必要になった場合、誰に確認するのか
といった場面があります。
それぞれについてマニュアルや確認資料はあります。
しかし、販売中や移動中に社内ドライブを開き、フォルダを探し、PDFを見つけて、該当箇所を確認するのは簡単ではありません。
結果として、現場担当者が上長や管理者に連絡し、連絡を受けた側が資料を探して回答する、という流れになりがちです。
しかし、上長や管理者も常にPCの前にいるわけではありません。
すぐに社内ドライブを確認できない場合、初期対応が遅れる可能性があります。
そこで、現場担当者がまず自分で必要なマニュアル情報を確認できるように、Difyを使った社内マニュアル検索Botを作ることにしました。
作ったもの
今回作成したのは、Difyを使った社内マニュアル検索Botです。
ユーザーが質問を入力すると、Difyに登録したナレッジを検索し、関連するマニュアル内容をもとに回答します。
できること
- レジトラブル時の初期対応を確認する
- 車両トラブルや事故時の初期確認に関する情報を探す
- 天候悪化時や運行判断に関する確認先を探す
- 業務上「あれはどこで確認するんだっけ?」となる内容を探す
- 登録されているマニュアル内の情報だけをもとに回答する
- 登録されていない内容については、推測せず確認できないと返す
やらないこと
- AIが業務判断を確定する
- マニュアルにない内容を一般知識で補う
- 事故対応や契約判断をAIだけで完結させる
あくまで、社内マニュアルを探す補助Botとして作成しました。
使用したツール
| ツール | 用途 |
|---|---|
| Dify | チャットBot作成、ナレッジ検索、LLM回答生成 |
| ChatGPT | マニュアル内容の整理、プロンプト作成、記事構成の整理 |
| テキストファイル | PDF内容をAI検索しやすい形に整理した統合ナレッジ |
解決したかった課題
今回解決したかったのは、マニュアルが存在しないことではありません。
課題は、必要なタイミングでマニュアルにすぐたどり着けないことです。
特に移動スーパーのように、現場担当者が外に出て運行している業務では、緊急時にPCで社内ドライブを開いて資料を探すことが難しい場面があります。
その結果、
- 現場担当者が上長や管理者へ連絡する
- 上長や管理者が該当マニュアルを探す
- 内容を確認して折り返す
- 現場担当者が対応する
という流れになり、初期対応に時間がかかることがあります。
そこで、質問すれば登録マニュアル内の該当情報をAI検索で呼び出せる仕組みを作ることにしました。
全体構成
今回の構成はシンプルです。
ユーザー入力
↓
知識検索
↓
LLM
↓
回答
以下が、今回作成したDifyの全体構成です。
この画面では、ユーザーからの質問を受け取り、登録したナレッジから関連する情報を検索する流れを設定しています。
ユーザー入力を受け取り、知識検索でナレッジを参照し、LLMで回答文を作成して返す構成にしました。
今回は複雑な分岐や外部連携は行わず、まずは「マニュアルを検索して答える」ことに絞りました。
最初の想定と、崩れた前提
当初は、PDF形式の社内マニュアルをそのままDifyのナレッジに登録し、複数のPDFを横断検索する構成を考えていました。
しかし、今回試した環境では、PDFをそのままナレッジとして登録することができませんでした。
実際にPDFをアップロードしようとしたところ、対応していないファイルタイプとして扱われました。
この時点で、当初考えていた「PDFを大量に登録して検索する」構成は難しくなりました。
設計を変更した内容
PDFをそのまま使えないため、方針を変更しました。
変更後の方針は以下です。
PDFマニュアル
↓
内容を確認
↓
AI検索しやすい文章に整理
↓
1つの統合ナレッジとしてテキスト化
↓
Difyに登録
↓
Botから検索
今回は、複数の社内確認資料を1つのテキストファイルにまとめました。
Difyには、この統合ナレッジを登録しました。
この変更によって、PDFを直接読ませるのではなく、AIが検索しやすい形に資料を作り直すことになりました。
ナレッジに登録した内容
今回登録した統合ナレッジには、複数の社内確認資料の内容を整理しました。
主に、以下のような内容です。
レジトラブル時の対応
- レジトラブル発生時の基本対応
- 電源確認
- ポータブルバッテリーや延長コードでの確認
- 通信異常時の確認項目
- LANケーブルや機器接続の確認
- 管理者や担当窓口への確認
車両トラブル・事故時の初期確認
- 運行中に車両トラブルが発生した場合の初期確認
- 事故や接触が発生した場合の報告先確認
- 自己判断せず、管理者や担当部署へ確認する流れ
※公開記事では、具体的な連絡先や詳細手順は伏せています。
給与明細や契約更新に関する確認方法
- 給与明細サイトへの入口
- 契約更新に関する確認入口
- ログインに必要な情報の考え方
- パスワード不明時の確認方法
公開記事では、実際の社内情報、連絡先、ログイン情報、サイト名などが見えないようにしています。
統合ナレッジ化した理由を見る
当初は、PDFをそのままDifyに入れて検索させる予定でした。
しかし、今回使用した無料プランではPDFをそのまま登録できなかったため、PDF内容をテキスト化しました。
また、複数資料を大量に登録する構成ではなく、まずは動く形を優先し、複数のマニュアル内容を1つの統合ナレッジにまとめました。
この作業を通じて、人間が読むためのPDF資料と、AIが検索しやすい資料の形は必ずしも同じではないと感じました。
Difyでの設定
ナレッジ登録時の設定は、できるだけシンプルにしました。
チャンク設定
以下がチャンク設定画面です。
チャンク設定の詳細を見る
| 項目 | 設定 |
|---|---|
| チャンク設定 | 汎用 |
| 最大チャンク長 | 1024 characters |
| チャンクのオーバーラップ | 50 characters |
| テキスト前処理 | 連続するスペース、改行、タブを置換 |
| インデックス方法 | 高品質 |
統合ナレッジは文章量が多くなりすぎないように整理していたため、細かいカスタマイズは行わず、標準的な設定で進めました。
検索設定
検索方法は、ベクトル検索を使用しました。
検索設定の詳細を見る
| 項目 | 設定 |
|---|---|
| 検索方法 | ベクトル検索 |
| トップK | 3 |
| rerankモデル | OFF |
| スコア閾値 | OFF |
ベクトル検索を選んだ理由は、完全一致のキーワード検索ではなく、質問文と意味の近いマニュアル内容を拾いたかったからです。
例えば、質問文の表現がマニュアル本文と完全に一致していなくても、関連する内容へたどり着けるようにしたいと考えました。
LLMへの指示文
LLMには、登録ナレッジに基づいて回答するように指示しました。
今回のポイントは、AIが勝手に一般知識で答えないようにすることです。
実際に設定した指示文を見る
あなたは社内マニュアルを探す補助Botです。
直前の知識検索で取得した内容だけをもとに回答してください。
取得した内容に情報がない場合は、推測せずに「登録されているマニュアル内では確認できません」と答えてください。
回答では、関連しそうなマニュアル名、確認できた内容、注意点を整理してください。
レジトラブル、給与明細、年末調整、契約更新、事務手続きなどについて、最終判断はAIが行わず、必ず元資料、管理者、担当部署に確認するよう案内してください。
回答形式は以下にしてください。
【関連しそうなマニュアル】
・
【確認できた内容】
・
【注意点】
・
【最終確認】
この回答は登録マニュアルを探す補助です。最終判断は、元資料・管理者・担当部署に確認してください。
ここでは、検索結果をもとに回答を作成するLLMの設定を行っています。登録ナレッジ内の情報だけを使い、情報がない場合は推測しないように指示しています。
この指示により、回答の形をそろえ、業務上の判断をAIだけで完結させないようにしました。
実際に動かしてみた
今回は、性質の違う2種類の質問を試しました。
1つ目は、移動スーパーの運行中にも発生し得るレジトラブルに関する質問です。
2つ目は、業務中の緊急対応ではありませんが、社内確認資料として参照する機会のある契約内容に関する質問です。
緊急時対応だけでなく、日常的な確認事項にも使えるかを見たかったため、この2つを試しました。
レジトラブルを質問した場合
まず、レジトラブルについて質問しました。
レジが動かなくなった
Botは、登録ナレッジから「レジトラブル時の対応」に関する内容を参照し、初期対応として確認すべき内容を返しました。
回答では、以下のような内容が確認できました。
- レジや関連機器の電源を確認する
- レジから再度立ち上げる
- ポータブルバッテリーや店舗の延長コードで起動を確認する
- 登録情報だけでは原因や具体手順までは確認できない
※記事上では、具体的なサポート窓口、連絡先、配線画像などは見えないようにしています。 - 最終判断は元資料・管理者・担当部署に確認する
「すべてを断定する」のではなく、登録ナレッジにある範囲を整理して返す形になりました。
契約内容について質問した場合
次に、契約内容の確認について質問しました。
契約内容を確認したい
Botは、給与明細や契約更新に関する確認資料を参照しました。
回答では、以下のような内容が返りました。
-
契約更新に関する確認入口がある
-
給与明細サイトから確認する項目がある
-
ログイン情報やパスワード不明時の確認方法がある
※記事上では、具体的なアクセス方法、QRコード、ログイン方法、リセット方法は見えないようにしています。 -
自己判断せず、元資料・管理者・担当部署へ確認する必要がある
契約に関する内容は重要な人事情報なので、AIが断定しないようにした点は特に重要だと感じました。
生成AIをどのように活用したか
今回のプロトタイプでは、生成AIを次のように活用しました。
1. マニュアル内容の整理
PDF資料をそのまま登録できなかったため、マニュアル内容をAI検索しやすい形に整理しました。
人間が読むPDFは、画像や大きな文字、写真を使って分かりやすく作られていることがあります。
しかし、AI検索に使う場合は、文章として整理されていた方が検索しやすいと感じました。
2. Botの指示文作成
DifyのLLMに対して、どのように回答させるかを整理しました。
特に意識したのは以下です。
- 登録ナレッジ内の情報だけを使う
- 情報がない場合は推測しない
- 関連マニュアル名を出す
- 確認できた内容と注意点を分ける
- 最終判断は元資料・管理者・担当部署へつなげる
3. 記事構成の整理
作成したプロトタイプについて、どのように説明すれば伝わりやすいかも生成AIを使って整理しました。
ただ作ったものを説明するだけでなく、
- 何に困っていたのか
- 最初の想定は何だったのか
- どこでつまずいたのか
- どう設計変更したのか
- 実際にどう動いたのか
という流れでまとめるようにしました。
試行錯誤したところ
今回一番大きかった試行錯誤は、PDFをそのまま使う前提が崩れたことです。
当初は、社内マニュアルPDFをそのままDifyに登録し、PDFを横断検索する構成を考えていました。
しかし、実際に進めてみるとPDFをナレッジとして登録できませんでした。
今回のプロトタイプでは、DifyのLLMに対して、検索結果だけをもとに回答するよう指示しました。
これにより、生成AIを単なる会話相手ではなく、社内マニュアル検索結果を整理して返す仕組みとして組み込みました。
そのため、次のように設計を変更しました。
| 項目 | 内容 |
|---|---|
| 当初の想定 | PDFマニュアルをそのまま登録して検索する |
| 実際に起きたこと | PDFをそのままナレッジに登録できなかった |
| 変更後の構成 | PDF内容をテキスト化し、複数マニュアルを1つの統合ナレッジテキストにまとめる |
この変更によって、Dify無料プランの制約内でも動く形にできました。
また、人間が読みやすいPDF資料と、AIが検索しやすい資料は必ずしも同じではないと気づきました。
PDFは人間にとって見やすい形式ですが、AI検索ではテキストとして整理されている方が扱いやすい場面があります。
複数のナレッジを知識検索に登録する方法もありますが、今回は効率を優先しました。
工夫したところ
登録情報だけをもとに回答するようにした
業務マニュアル検索では、AIが一般知識で勝手に補足してしまうと危険です。
そのため、登録されているナレッジに情報がない場合は、
登録されているマニュアル内では確認できません
と返すようにしました。
最終判断をAIに任せないようにした
レジトラブル、車両トラブル、契約更新などは、店舗運営や人事・労務に関わる内容です。
そのため、回答の最後に必ず、
最終判断は、元資料・管理者・担当部署に確認してください。
と出すようにしました。
統合ナレッジにした
無料プランの制約があったため、複数資料を個別に登録するのではなく、1つの統合ナレッジとして整理しました。
本格運用では業務カテゴリごとにナレッジを分ける方が管理しやすいと思いますが、今回はプロトタイプとして最小限の構成にしました。
気づいたこと
今回作ってみて、AI検索Botを作るときに重要なのは、AIそのものよりも「AIに渡す情報の形」だと感じました。
マニュアルが存在していても、そのままではAIが検索しやすいとは限りません。
今回のように、PDFをテキスト化し、見出しや項目ごとに整理することで、AIが回答に使いやすいナレッジになります。
また、業務利用では「答えられること」だけでなく、「答えてはいけないこと」を設計することも重要だと感じました。
特に、登録されていない内容を推測で答えないようにすることは、業務用Botでは大事なポイントだと思います。
改善点を見る
今後改善したいこと
今回のプロトタイプでは、Difyのナレッジ検索を使って、マニュアル情報にたどり着くための入口を作るところまでを試しました。
ただ、実際の業務で使うことを考えると、Botを作って終わりではなく、ナレッジの更新運用や回答精度の確認、現場で使いやすい導線まで考える必要があります。
1. 統合ナレッジの更新運用を決める
今回のBotでは、複数のマニュアル内容をテキスト化し、統合ナレッジとして登録しました。
しかし、マニュアルは一度作ったら終わりではありません。
実際の業務では、手順や連絡先、確認先が変更されることがあります。
そのため、今後は統合ナレッジの先頭に、次のような情報を記載する運用を考えたいです。
- 更新日
- 更新担当者
- 対象マニュアル名
- 確認済みの範囲
- 次回見直し予定日
これにより、Botが古い情報を参照してしまうリスクを減らし、どの時点のマニュアルをもとに回答しているのかを確認しやすくなります。
特に、業務マニュアルを扱う場合は、回答内容そのものの正しさだけでなく、その情報が最新かどうかも重要です。
今後は、誰が、いつ、どの範囲を更新したのかが分かる形にしていきたいです。
2. 回答精度を確認するための検証表を作る
今回、いくつかの質問を投げて、想定に近い回答が返ってくるかを確認しました。
ただ、実際にBotとして使うには、感覚的に「だいたい合っている」で終わらせず、回答精度を確認するための表が必要だと感じました。
例えば、次のような検証表を用意したいです。
| 質問例 | 期待する回答 | 実際の回答 | 正しいマニュアルにたどり着けたか | 不要な情報が含まれていないか |
|---|---|---|---|---|
| レジが動かなくなった | レジトラブル時の初期対応と確認先を案内する | |||
| 契約内容を確認したい | 契約確認に関係するマニュアルや確認先を案内する | |||
| 事故が起きた | 事故時の初期対応や連絡先を案内する |
この表を使うことで、単に回答が返ってくるかだけでなく、次の点を確認できます。
- 正しいマニュアルにたどり着けたか
- 必要な情報が不足していないか
- 不要な情報を出していないか
- 推測で回答していないか
- 現場担当者が次に確認すべき先まで案内できているか
業務で使うBotとして考えると、回答の便利さだけでなく、信頼して確認の入口にできるかが大事だと思います。
今後は、質問例を増やしながら、検証表を使って回答精度を確認していきたいです。
3. LINE Botなど、現場で使いやすい入口にする
今回はDify上でマニュアル検索Botを作成しました。
ただ、現場で使うことを考えると、担当者が普段使っているスマートフォンからすぐ確認できる形が理想です。
今後は、LINE Botなどと連携して、現場担当者が困ったときにすぐ質問できる形にも挑戦したいです。
目指したいのは、AIに最終判断を任せるBotではありません。
現場で困ったとき、まずこのBotに聞けば、確認先や該当マニュアルの入口が分かる
という状態です。
最終判断は、元資料、管理者、担当部署に確認する必要があります。
ただ、その前段階として「どこを見ればよいか」「誰に確認すればよいか」がすぐ分かるだけでも、初期対応の遅れを減らせると思います。
今後は、現場担当者が必要な情報に早くたどり着くための補助Botとして、実際に使いやすい形に近づけていきたいです。
まとめを見る
まとめ
今回の制作では、Difyを使って、社内マニュアルの情報にたどり着くための検索Botを作成しました。
最初はPDFをそのまま登録して使う想定でしたが、無料プランでは思った通りに扱えず、マニュアル内容をテキスト化して統合ナレッジとして登録し直しました。
その過程で、人間が読みやすいPDFと、AIが検索しやすい資料は違うということに気づきました。
また、業務でAIを使う場合は、AIに最終判断を任せるのではなく、現場担当者が必要な情報へたどり着くための補助として使うことが重要だと感じました。
今後は、ナレッジの更新運用や回答精度の検証、LINE Botとの連携などを進め、現場で困ったときに確認先や該当マニュアルの入口が分かるBotに近づけていきたいです。








