「これって社内ネット繋いでいいんだっけ?」「このソフト、会社支給のPCにインストールして大丈夫?」といった、押し寄せる「IT周りの質問攻め」を自動化したいと思いました。
具体的には、以下のような「よくある課題」を解決するために開発しました。
「どこにあるか分からない」問題: パソコンの利用規約、ネットワークの接続マニュアル、利用許可ソフトの一覧など、必要な情報が社内ポータルやPDFに散らばっていて、探すだけで一苦労。
情シス・管理部門のパンク: 「マニュアルの〇ページに書いてあるのに…」という質問が毎日何件も届き、本来の業務が止まってしまう。
ルール違反のリスク: 探すのが面倒で、社員が自己判断で未許可のネットワークやソフトを使ってしまう(セキュリティリスク)。
今回使用したツール
Dify: 今回の主役。プログラミングなしで、賢いAIアシスタントがあっという間に作れるプラットフォーム。
LLM: 回答を考えてくれるAIの脳みそ。
ドキュメント: AIに読み込ませるルールブック(詳細は次の章で)
ナリッジデータベースとしてAIに読み込ませたファイル
AIにシステム関連のルールを正しく理解してもらうため、改行でQ&Aを区切ったドキュメント(テキストファイル)を準備しました。
Difyにルールを記憶させてみる(Difyでのナリッジデータベース作成)
Difyのナリッジからナリッジデータベースの作成を開始します。

データソースを「テキストファイルからインポート」に設定して、準備したテキストファイルをアップロードします。

次に、読み込ませたテキストのQ&Aを区切っている識別子(チャンク識別子)を設定しました。

さらに、インデックス方法を「高品質」に設定し、埋め込みモデルを「gemini-embedding-001」に設定しました。

最後に検索設定を「ハイブリット検索」に設定し、ナリッジデータベースを作成しました。

AIアシスタントの作成(Difyでのアプリ作成)
ナリッジを活用するAIアプリ(チャットボット)を作っていきます。
質問に返答してくれるアプリを開発するため、アプリタイプはチャットフローとしました。
知識検索機能の設定
新規作成したアプリに知識検索のノードを追加します。
クエリテキストに{x}sys.queryを設定します。
クエリテキストはナリッジデータベースを検索するための検索ワードです。
設定したsys.queryはユーザがチャットに入力した「生の質問文」が入っている変数です。
ナリッジデータベースには先ほど作ったものを設定しました。

アプリの「脳」となるLLM(大規模言語モデル)の選定
ナリッジデータベースから読み込んだ回答を返答してくれる脳(LLM)の設定をします。
知能検索の次の処理にLLMのノードを追加します。
LLMを以下のように設定します。
AIモデル:Gemini 2.5 Flash
コンテキスト:{x}result Array[Object]
SYSTEM:以下のテキストを入力
## 役割
- あなたはパソコンや社内システムの案内スタッフです。
- ユーザーからの質問に対して、システム利用に関する質問に返答してください。
- コンテキストに基づいて回答してください。
{{#context#}}
## 制約事項
- ユーザーが不快に思う返信は禁止です。
- ナレッジに記載がない内容は、推測で断定せず「登録されている情報では確認できません」と伝えてください。
AIモデルは処理の実行にあたりどのAIを使うかの設定です。
コンテキストはAIが回答の根拠とする情報です。
SYSTEMはAIに与える役割と制約事項を記載します。
さらにUSERの項目に以下のものを追加します。
・{x}query:ユーザーがチャットのメッセージ入力欄に打ち込んだ質問
・{x}files:ユーザが添付したファイル

チャットボットの返答を設定
最後にチャットボットが返す返事を設定します。
設定の項目にLLM{x}textを設定します。
この設定によりLLMノードが生成した回答文を、チャットに返信してくれるようになります。

動作確認!(作成したアプリの動作)
パソコンの調子が悪いときの対応を質問してみると・・・
試してみる処理と良くならなかった場合の連絡先・連絡方法を教えてくれました。
これで問い合わせが少しでも減ればよいのですが(汗)


