AI Searchの構成要素
AI Searchにおける登場人物の4つ
- データソース
- インデックス
- インデクサー
- スキルセット(任意)
インデクサー
は必ず1つのデータソース
、1つのインデックス
、0または1つのスキルセット
を持つ。
データソース
- RAGを作成するうえで当然元ネタとなるデータが必要になる。
- そのデータをどこから参照するか?の定義がデータソース
インデックス
- データソースからRAG向けに検索しやすいように変換されたデータを蓄積しておく場所。
- 荒い言い方をするのであれば、RAG検索用のデータベースのテーブルが作成されるという認識でいい
インデクサー
- スキルセットとインデックスの仲介役、スキルセットで出力した新しいデータをインデックスのどの列に出力したいかをマッピングできる
- 「データソース」「インデックス」「スキルセット」の3つに接続する親分的立ち位置
- インデックスを更新するスケジューリング機能がある
スキルセット
AI Searchにおいてスキルセットの使用は必須ではない。
例えば顧客情報が蓄えられている顧客テーブルA, Bがあるとする。当然、顧客テーブルAより顧客テーブルBの方がいろいろな条件で顧客を検索ができるため、便利であるというのは分かると思う。
スキルセットも同様に、「柔軟な検索ができるようにインデックス(テーブル)に新しい列を定義する」役割がある。
- 顧客テーブルA
「顧客ID、顧客名」 - 顧客テーブルB
「顧客ID、顧客名、顧客名カナ、顧客の会社ID、顧客電話番号、生年月日、年齢」
インデックス作成までのざっくりとした流れ
事前準備(インデクサ―の作成)
- ユーザが
インデクサー
に対して「データソース
」「インデックス
」「スキルセット
」を設定する - ユーザが
インデクサー
に対してマッピング情報を定義する
インデクサーの実行(インデックスの作成)
データソース
からデータを取得するデータソース
をスキルセット
に新しいデータ「new_data_A, new_data_B」を作成するインデクサー
に定義されたマッピング情報をもとにインデックス
に新しい列を追加する(new_data_A > columnA, new_data_B > columnB)インデクサー
がインデックス
にデータを追加していく