👽

レトリーバーを使ったRAG検索の動的な事前絞り込み

に公開

レトリーバーの変遷

Data CloudでRAG検索をするためのにレトリーバー機能があります。
以前はApexのコードを書く必要がありましたが、レトリーバーを使うことで画面からの設定だけで実現できる非常に便利な機能です。
レトリーバーも当初は、固定的な値(静的)の絞り込みだけが可能でしたが、Spring'25のリリースによって非常に簡単に、動的な絞り込みを実現することが可能となりました。

https://help.salesforce.com/s/articleView?id=release-notes.rn_einstein_prompt_builder_prefilters.htm&release=254&type=5

設定の流れ

Data Cloudで検索インデックスの作成とレトリーバーの設定を行い、次にプロンプトビルダーでレトリーバーを動的に絞込みする設定を行います。

Data Cloudの設定

検索インデックスを設定します。

高度な設定から日本語に対応したmultilingual-e5-largeを設定してください。
埋込モデルについては以前の記事で解説しておりますので、よろしければご一読ください。
https://zenn.dev/dcsp/articles/6b53e979832feb

次にレトリーバーの設定を行います。

Einstein Studioのタブ > レトリーバー と進みます。
Defaultの名称で作成される自動作成のレトリーバーは編集ができないため、新規作成してください。
レトリーバーを作成する際に、検索条件を定義します。

動的のチェックボックスをONにすると{!$Individual_Id}のような形で動的に値を処理するための設定が行われます。

プロンプトビルダーの設定

プロンプトビルダーを新規作成し、リソース > Einstein Search と進み、先程作成したレトリーバーを選択します。

ワークスペース上で挿入したレトリーバーをクリックすると右側に設定のメニューが表示されます。
ここでData Cloudのレトリーバーの設定した動的なフィルタリングをするための項目が表示されます。

少し前まではプレースホルダーの設定に{!$Individual_Id}のテキストを直接コピー&ペーストの必要がありました。
今回のリリースでリソースの選択可能となり、非常にスムースに設定ができます。

これらの一連の設定を行うことでプロンプトビルダー経由で、動的にベクトルデータベースの事前絞り込みを行うことが可能となります。

※本記事は、私が所属する会社とは一切関係のない事柄です。

Discussion