使用すべきアプローチ
Boxによって管理される取得
項目としてHubを指定したBox AI Askの動作は次のとおりです。- Hubのコンテンツをインデックス化します。ベクトルストアはホストしません。
- 呼び出し元ユーザーまたはアプリがアクセスできるファイルからのみ回答を返します。
- ソースファイルへの引用情報を含みます。
- ファイルやHubの項目が変更されても最新の状態を保ちます。再インデックス化ジョブは実行しません。
独自のRAGパイプライン
以下が必要な場合は、Boxからエクスポートします。- Box AIが提供しない取得エンジンまたは埋め込みモデル。
- Boxのドキュメントと他のソースを組み合わせた単一のインデックス。
- カスタムのチャンク化、ランク付け、または評価。
- 自分が管理するモデルホスティング。
- アプリケーションで読み取れるフォルダまたはファイルを選択します。企業のルートはインデックス化しないでください。
- Boxレプリゼンテーションまたは独自のパーサーを使用してテキストを抽出します。とのチュートリアルを参照してください。
- テキストをチャンク化し、埋め込みを生成して、ベクトルをBoxファイルIDと権限メタデータとともに保存します。
- クエリ実行時に、質問を埋め込み、インデックスを検索し、現在のユーザーがBoxでアクセスできないチャンクを削除します。
- 質問と許可されたチャンクをLLMに送信します。回答ではBoxファイルIDを引用します。
エクスポートされたインデックスで権限対応を維持する
Boxは、Pinecone、Weaviate、LLMのプロンプト内で権限を適用しません。Boxからテキストをコピーした後のアクセス制御はお使いのサービス側で行われます。 最低限、以下の実装が必要です。- 各ベクトルにBoxファイルIDとバージョンIDを保存します。
- 結果を返す前に、クエリを実行したユーザーのBoxの権限を確認します。ユーザーが開けないファイルからのチャンクは削除します。
- ファイル、コラボレーション、または共有に変更があった場合はインデックスを更新します。一度限りのクロールではなく、またはを使用します。
- インデックス時に権限をキャッシュした場合でも、クエリ実行時にアクセス権限を再確認します。共有の変更はほとんどのバッチ処理よりも高頻度で発生します。
