みなさんこんにちは。5回目の投稿です!
小売業の本社で働いている、デジタル勉強中の会社員です!💻
以前Difyで「スケジュール検索Bot」を作りましたが、今回はその「マニュアル検索Bot」ver.となります!基本的な作り方は同じなのでよかったら参考にしてみてください👇
🔘完成形
🗂️事前準備
PowerPoint形式の社内マニュアルを、チャットボット(Dify)のナレッジベースとして活用するための手順です。今回はダミーデータを使用します。
① PowerPointをGoogleスライドに変換する
マニュアルの該当ページに飛ばすために、スライドのリンクをマニュアルをGoogleスライドに変換する必要があります。(SharePointでもできるみたいです!)
-
.pptx
ファイルをGoogleドライブにアップロード
アップロードすると、Googleスライド形式で開けるようになります
② 各ページのリンクを表にまとめる
各スライドのURLを下図のように表にまとめる必要がありますが、手作業だとかなり時間がかかりました…
そこでChatGPTに相談したところ、GASを使って簡単に取得・一覧化できると教えてくれました💡
「Googleスライドにある全スライドのタイトルとページ番号、各ページへのリンクをGoogleスプレッドシートに自動出力するGASのコードを教えてください。」
✅ スクリプト(GAS)
function exportSlideLinks() {
const pres = SlidesApp.getActivePresentation();
const slides = pres.getSlides();
const presId = pres.getId();
const sheet = SpreadsheetApp.create(pres.getName() + "_リンク一覧");
const list = [["ページ番号", "スライドタイトル", "リンク"]];
for (let i = 0; i < slides.length; i++) {
const slide = slides[i];
const slideId = slide.getObjectId();
const shapes = slide.getPageElements().filter(el => el.getPageElementType() === SlidesApp.PageElementType.SHAPE);
let title = "(無題)";
if (shapes.length > 0) {
try {
title = shapes[0].asShape().getText().asString();
} catch (e) {
title = "(タイトル取得エラー)";
}
}
const url = `https://docs.google.com/presentation/d/${presId}/edit#slide=id.${slideId}`;
list.push([i + 1, title, url]);
}
sheet.getActiveSheet().getRange(1, 1, list.length, 3).setValues(list);
}
5.「実行」を選択すると、新しいGoogleスプレッドシートにスライド番号・タイトル・リンク付きの一覧表が自動生成されます!
※「承認が必要です」と表示された場合はこちら👇
クリックして表示
左下の「詳細」を選択
左下の「無題のプロジェクト(安全ではないページ)に移動」を選択
すると、実行完了して新しいGoogleスプレッドシートに一覧表が自動生成されます!
③ スプレッドシートをExcel形式でダウンロード
- スプレッドシートを開く
- メニュー「ファイル」→「ダウンロード」→
Microsoft Excel(.xlsx)
を選択 - これで Difyナレッジ用のExcelデータ として使えるようになります
④ Difyにナレッジ登録
1.Difyを開く
4.データソースはデフォルトで「テキストファイルからインポート」が選択されているのでそのままでOKです。下の「テキストファイルをアップロード」のところに先ほど用意した .xlsx
ファイルを追加し、右下の「次へ」を選択
5.色々な設定が出てきますが、変更せず右下の「保存して処理」を選択
これで、チャットボットがマニュアル該当ページへのリンクを案内できる仕組みが完成します!
🤖チャットボットの作成
次にチャットボットを作成します。
2.「アプリタイプを選択」の「初心者向けの基本的なアプリタイプ」を選択
4.「アプリのアイコンと名前」欄に任意の名前を作成し、右下の「作成する」を選択
今回は"マニュアル検索Bot”と名付けました。
会話の最初で「選択式ボタン」を表示させる方法
10.プロンプト欄に下記のようにいれる
あなたは社内の「ギフト承りシステム」サポート用AIです。
ユーザーからの質問に対して、以下のルールに従って回答してください。
- 回答は生成せず、該当のGoogleスライドへのリンクを案内してください。
- スライドへのリンクは、あらかじめ登録されたナレッジ(スプレッドシート)から探してください。
- 回答形式は下記のとおりです:
「ご質問の件については、以下のマニュアルをご参照ください。
▶︎ [◯◯(P12)](https://docs.google.com/presentation/xxx/edit#slide=id.p12)」
- マニュアルにない情報やあいまいな質問には「担当者に確認してください」と回答し、下記のように続けてください。
以下のフォームに入力いただきますと、担当者が内容を確認し対応いたします。
📩 ご質問フォーム:https://docs.google.com/forms/xxx/viewform?usp=dialog
- 「よくある質問」が選択された場合は、下記URLを案内してください。
[よくある質問](https://docs.google.com/spreadsheets/xxx/edit?gid=1158763579#gid=XXX)
- 「問い合わせ先」が選択された場合は、下記の通り答えてください。
企画について→営業企画部 011-XXX-XXXX
商品について→商品部 農産バイヤー 070-XXXX-XXXX
水産バイヤー 070-XXXX-XXXX
システムについて→ヘルプデスク 0120-XXX-XXX
-以上のルールを守り、正確性とスピードの両立を目指してください。
13.右上のモデルを選択し、「gpt-4」→「gpt-4o-mini」に変更
(「gpt-4」は従来版のモデルで、トークンの消費が激しいそうです)
14.最後にデバッグとプレビューで試してみます

ちゃんとプロンプト通りの答えが返ってきました!!
🚀チャットボットアプリの公開
ここまできたらあと少しです!
①右上の「公開する」→「更新を公開」を選択
これにてチャットボットアプリの完成です🎊
今後は社内で利用しやすいMicrosoft Copilot Studioというツールを使用し、店舗でも使えるものにしていきたいと考えています!
最後まで読んでいただきありがとうございました♪