[azure]AI Searchにおけるデータソース、インデックス、インデクサー、スキルセット

AI Searchの構成要素

AI Searchにおける登場人物の4つ

  • データソース
  • インデックス
  • インデクサー
  • スキルセット(任意)

 

インデクサーは必ず1つのデータソース、1つのインデックス、0または1つのスキルセットを持つ。

 

データソース

  • RAGを作成するうえで当然元ネタとなるデータが必要になる。
  • そのデータをどこから参照するか?の定義がデータソース

インデックス

  • データソースからRAG向けに検索しやすいように変換されたデータを蓄積しておく場所。
  • 荒い言い方をするのであれば、RAG検索用のデータベースのテーブルが作成されるという認識でいい

 

インデクサー

  • スキルセットとインデックスの仲介役、スキルセットで出力した新しいデータをインデックスのどの列に出力したいかをマッピングできる
  • 「データソース」「インデックス」「スキルセット」の3つに接続する親分的立ち位置
  • インデックスを更新するスケジューリング機能がある

スキルセット

AI Searchにおいてスキルセットの使用は必須ではない。

例えば顧客情報が蓄えられている顧客テーブルA, Bがあるとする。当然、顧客テーブルAより顧客テーブルBの方がいろいろな条件で顧客を検索ができるため、便利であるというのは分かると思う。

スキルセットも同様に、「柔軟な検索ができるようにインデックス(テーブル)に新しい列を定義する」役割がある。

  • 顧客テーブルA
    「顧客ID、顧客名」
  • 顧客テーブルB
    「顧客ID、顧客名、顧客名カナ、顧客の会社ID、顧客電話番号、生年月日、年齢」

インデックス作成までのざっくりとした流れ

事前準備(インデクサ―の作成)

  1.  ユーザがインデクサーに対して「データソース」「インデックス」「スキルセット」を設定する
  2.  ユーザがインデクサーに対してマッピング情報を定義する

インデクサーの実行(インデックスの作成)

  1. データソースからデータを取得する
  2. データソーススキルセットに新しいデータ「new_data_A, new_data_B」を作成する
  3. インデクサーに定義されたマッピング情報をもとにインデックスに新しい列を追加する(new_data_A > columnA, new_data_B > columnB)
  4. インデクサーインデックスにデータを追加していく