Box資料の指定ページを直接開けるリンク出力!Box✖️Dify
この記事を読むとできること
本記事を読むことで、Boxに保存された資料の該当ページに直接遷移できるリンクを、Difyで作成したAIチャットボットが出力するよう設定できるようになります。
埋め込みリンクが出力されます。
このように1ページ目ではなく2ページ目に飛びます。
引用:日本国憲法
はじめに:ドキュメントが見つからないという悩み
現代の企業活動において、ドキュメントは日々膨大な情報が生成・蓄積されています。しかし、「必要な情報がどこにあるかわからない」「最新の情報にたどり着けない」といった悩みは、多くの企業にとって深刻な課題となっているのではないでしょうか。
こうした背景から、AIを活用したナレッジベースチャットボットの開発に着手されることもあると思います。
ただ、そんなチャットボットを使いながら、この根拠ってどこから来るのか疑問に思ったことはないでしょうか?
もしくは自社で開発したチャットボットでそれらしい回答はしてくれるが、学習させた資料から本当に出力されているのか確かめたい!その資料を直接確認したい!等あると思います。
本記事はそんな思いを解決すべく、Boxにある資料の該当ページに直接遷移できるリンクを出力する方法について説明していきます。
現在使用しているLLMプロンプトの記述例
Boxの特定ページへ直接遷移するリンクの生成は、実は非常にシンプルです。
基本となるBoxの共有リンクに「#p=〇〇」と開きたいページ数を追記するだけで実現できます。
たとえば、https://app.box.com/s/123456789
というリンクで187ページを開きたい場合は、https://app.box.com/s/123456789#p=187
と記述するだけです。[1]
本記事ではDifyのチャットボット開発ということで、どんなプロンプトにすればこの出力になるのかの例も記載します。
あなたは、提供された「憲法PDF.pdf」の内容に基づいて質問に回答するAIアシスタントです。
以下のルールに従って回答を生成してください。
**回答ルール:**
1. **回答の根拠:** 回答は、**必ず提供された「憲法PDF.pdf」からの情報のみを根拠としてください。** その他の一般的な知識や推測は含めないでください。
2. **分かりやすさ:** 専門用語は避け、ユーザーが理解しやすいように簡潔かつ明確な言葉で回答してください。
3. **フォーマット:** 箇条書きや見出しを使用して、視覚的に整理された出力にしてください。
4. **リンクの生成:**
* **回答の根拠となった情報が「憲法PDF.pdf」の特定のページから取得された場合、その情報の直後、または回答の最後に、以下のMarkdown形式のリンクを含めてください。**
* **Difyが提供する参照ページ番号(例: `[page.5]`)から数字部分を抽出し、その数字をリンクのページ番号として使用してください。憲法PDFでは、Boxのページ表示にずれがないため、オフセットは「0」です。**
* リンクのベースURLは `https://app.box.com/s/123456789` です。
* 最終的なリンク形式は `[参照ページへ](https://app.box.com/s/123456789#p=ページ番号)` となります。
* 例: 参照ページが`[page.5]`の場合、リンクは `[参照ページへ](https://app.box.com/s/123456789#p=5)` となります。
5. **直接的な回答がない場合:** 提供された情報内に直接的な回答が見つからない場合は、その旨を正直に伝えてください。
例: 「ご質問の件について、提供された資料内には直接的な記述が見つかりませんでした。」
なお、実際の資料では表紙や目次が記載されている都合上、ページ番号とboxの表示ページ番号が一致しない場合もあると思います。その際には以下の文言をプロンプトの4番の最後あたりに追記することで対応可能です。
ただし、Boxの都合上、マニュアルのページ番号より4ページ後の番号をリンクに指定してください(例: ページ167の場合、リンクは171)。
これは4ページずれていた場合の対応です。ご利用の環境に合わせて適宜調整してください。
ちなみに全体の構成はこのようになっています。
ページ数を出力するためにナレッジを修正する
実はプロンプトにも表示している通り、ナレッジからページ数を取得する必要があります。そのために今回は少しチャンクごとに加工をしてあります。アップロード直後だとこのようなチャンク分けになります。以下の図のように、チャンク冒頭にページ数が表示されているものとされていないものがあります。これでは、知識取得時にLLMが正確なページ番号を見つけられず、期待通りの出力が得られません
なので多少の手間はかかりますが、各チャンクの冒頭にページ番号が表示されるよう手動で修正する必要があります。しかしながらこの作業は、チャットボットのユーザーエクスペリエンス(UX)向上に直結し、信頼性の高い情報提供を可能にする上で不可欠な工程と考えております。
もしくはナレッジ作成時に最大チャンク長を大きくするというのも手です。これでも1チャンクに1ページ分が入りきらない場合はおとなしく手作業で修正することになりますT^T
おまけ:Difyのナレッジ機能を使う時に遭遇したエラー
Difyのナレッジ機能で稀にRerankモデルのアクセス権限に関するエラー (Status Code: 403) が発生することがあります。もし同様の状況に遭遇した場合は、Difyのナレッジ設定で該当のRerankモデルを「無効にする」ことで解決できる場合があります。
おわりに:BoxとDifyの連携で、知識へのアクセスはよりスムーズに
このチャットボットの構築を通じて、Boxに格納されたPDFにページ数を指定することでユーザーがダイレクトに根拠を確認できるシステムを作成しました。
この一工夫により常日頃の「あれ、どこにあったっけ」「こういう時はどうすれば、、」「でもこのチャットボットの出力って間違ってないかな」という悩みを減らすツールとなるでしょう。あなたの組織でも、BoxとDifyを連携させたナレッジベースチャットボットの導入を検討してみてはいかがでしょうか。
-
Boxをより便利に活用するためのTipsを知ろう, Box Support, https://support.box.com/hc/ja/articles/28539503495571-Boxをより便利に活用するためのTipsを知るう ↩︎
Discussion