11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Dify】社内マニュアルを探す手間をなくす!ページのリンクを返すチャットボットを作ってみた!

Posted at

みなさんこんにちは。5回目の投稿です!
小売業の本社で働いている、デジタル勉強中の会社員です!💻

以前Difyで「スケジュール検索Bot」を作りましたが、今回はその「マニュアル検索Bot」ver.となります!基本的な作り方は同じなのでよかったら参考にしてみてください👇

🔘完成形

🗂️事前準備

PowerPoint形式の社内マニュアルを、チャットボット(Dify)のナレッジベースとして活用するための手順です。今回はダミーデータを使用します。

① PowerPointをGoogleスライドに変換する

マニュアルの該当ページに飛ばすために、スライドのリンクをマニュアルをGoogleスライドに変換する必要があります。(SharePointでもできるみたいです!)

  • .pptxファイルをGoogleドライブにアップロード
    アップロードすると、Googleスライド形式で開けるようになります

② 各ページのリンクを表にまとめる

各スライドのURLを下図のように表にまとめる必要がありますが、手作業だとかなり時間がかかりました…

image.png

そこでChatGPTに相談したところ、GASを使って簡単に取得・一覧化できると教えてくれました💡
image.png

  1. Googleスライドを開く

  2. メニュー「拡張機能」→「Apps Script」を選択
    image.png

  3. 下記コードを貼り付ける
    ※ChatGPTへ以下のように聞くことで、コードを提案してもらえます

「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);
}

4.「ドライブにプロジェクトを保存」を選択
image.png

5.「実行」を選択すると、新しいGoogleスプレッドシートにスライド番号・タイトル・リンク付きの一覧表が自動生成されます!
image.png

※「承認が必要です」と表示された場合はこちら👇

クリックして表示

「権限を承認」を選択
image.png

自分のアカウントを選択します
image.png

左下の「詳細」を選択

image.png

左下の「無題のプロジェクト(安全ではないページ)に移動」を選択

image.png

✔をいれて、右下の「続行」を選択
image.png

すると、実行完了して新しいGoogleスプレッドシートに一覧表が自動生成されます!

③ スプレッドシートをExcel形式でダウンロード

  1. スプレッドシートを開く
  2. メニュー「ファイル」→「ダウンロード」→ Microsoft Excel(.xlsx) を選択
  3. これで Difyナレッジ用のExcelデータ として使えるようになります

④ Difyにナレッジ登録

1.Difyを開く

2.画面上部の「ナレッジ」を選択

3.画面左の「+ナレッジベースを作成」を選択

4.データソースはデフォルトで「テキストファイルからインポート」が選択されているのでそのままでOKです。下の「テキストファイルをアップロード」のところに先ほど用意した .xlsxファイルを追加し、右下の「次へ」を選択

5.色々な設定が出てきますが、変更せず右下の「保存して処理」を選択
image.png

これで、チャットボットがマニュアル該当ページへのリンクを案内できる仕組みが完成します!


🤖チャットボットの作成

次にチャットボットを作成します。

1.Difyを開き、「最初から作成」を選択

2.「アプリタイプを選択」の「初心者向けの基本的なアプリタイプ」を選択

3.「チャットボット」を選択

4.「アプリのアイコンと名前」欄に任意の名前を作成し、右下の「作成する」を選択
今回は"マニュアル検索Bot”と名付けました。

会話の最初で「選択式ボタン」を表示させる方法

完成形👇

5.右下の「管理→」を選択

6.会話の開始のトグルを選択してONにする

7.「✎オープナーを書く」を選択

8.任意の文章を入力し、「+オプションを追加」を選択

9.図のように項目を一つずつ入力し、右下の「保存」を選択

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


-以上のルールを守り、正確性とスピードの両立を目指してください。

11.コンテキストの「追加」を選択

12.事前にナレッジに登録したExcelを選択し、「追加」

13.右上のモデルを選択し、「gpt-4」→「gpt-4o-mini」に変更
(「gpt-4」は従来版のモデルで、トークンの消費が激しいそうです)

14.最後にデバッグとプレビューで試してみます

ちゃんとプロンプト通りの答えが返ってきました!!

🚀チャットボットアプリの公開

ここまできたらあと少しです!
①右上の「公開する」→「更新を公開」を選択

②「アプリを実行」を選択

これにてチャットボットアプリの完成です🎊


今後は社内で利用しやすいMicrosoft Copilot Studioというツールを使用し、店舗でも使えるものにしていきたいと考えています!

最後まで読んでいただきありがとうございました♪

11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?