AI 検索インデックスを Databricks Apps リソースとして追加して、アプリケーションでセマンティック検索と類似性ベースの取得を有効にします。 AI Search インデックスは、高次元ベクター埋め込みを格納してクエリを実行し、検索拡張生成 (RAG)、セマンティック検索、レコメンデーション システムなどのユース ケースを強化します。
Databricks AI Search は、以前は Databricks Vector Search と呼ばれていました。
特権の要件
AI Search インデックスにアクセスするには、アプリのサービス プリンシパルに、親カタログに対する USE CATALOG 特権、親スキーマに対する USE SCHEMA 特権、およびインデックスに対する SELECT 特権が必要です。 インデックス リソースを追加すると、Azure Databricksこれらの特権がアプリのサービス プリンシパルに自動的に付与されます。
この自動付与を成功させるには、各特権に対して次のいずれかが当てはまる必要があります。
-
USE CATALOGの場合: すべてのアカウントユーザーがカタログに対するUSE CATALOG権限を持っているか、またはあなたがカタログに対するMANAGE権限を持っている。 -
USE SCHEMAの場合: すべてのアカウントユーザーがスキーマに対するUSE SCHEMA特権を持っているか、あるいはあなたがスキーマに対するMANAGE特権を持っているかのいずれかです。 -
SELECT: すべてのアカウントユーザーがインデックスに対するSELECT権限を持っているか、またはあなたがインデックスに対するMANAGE権限を持っています。
これらのアクセス許可を使用して AI Search インデックスにクエリを実行する方法の詳細については、「 AI Search インデックスのクエリを実行する方法」を参照してください。
AI Search インデックス リソースを追加する
AI Search インデックスをリソースとして追加する前に、 アプリ リソースの前提条件を確認します。
- アプリを作成または編集するときに、[アプリ リソース] セクションで、[+ リソースの追加] >Vector 検索インデックスをクリックします。
- ワークスペースで使用可能なインデックスから AI Search インデックスを選択します。 インデックスは Unity カタログに既に存在している必要があります。
- アプリのアクセス許可レベルを選択します。
- 次を選択できます。 AI Search インデックスに対して類似性検索のクエリを実行するアクセス許可をアプリに付与します。 SELECT特権に対応します。
- (省略可能)カスタム リソース キーを指定します。これは、アプリ構成でインデックスを参照する方法です。 既定のキーは
vector-search-indexです。
注
AI Search インデックスは、種類が TABLE_ONLINE_VECTOR_INDEX_REPLICA または TABLE_ONLINE_VECTOR_INDEX_DIRECT の Unity カタログ テーブルです。 AI Search インデックスを選択すると、セマンティック検索操作をサポートする特別に構成されたテーブルが選択されます。
環境変数
AI Search インデックス リソースを使用してアプリをデプロイすると、Azure Databricksは、valueFrom フィールドを使用して参照できる環境変数を使用して、完全な 3 レベルの名前を公開します。
構成例:
env:
- name: VECTOR_SEARCH_INDEX
valueFrom: vector-search-index # Use your custom resource key if different
アプリケーションでのインデックスの使用:
import os
from databricks.sdk import WorkspaceClient
# Access the AI Search index name
index_name = os.getenv("VECTOR_SEARCH_INDEX")
# Initialize workspace client
w = WorkspaceClient()
# Query the AI Search index
results = w.vector_search_indexes.query_index(
index_name=index_name,
query_text="What is machine learning?",
num_results=10
)
# Process results
for result in results.manifest.columns:
print(f"Result: {result}")
詳細については、「 環境変数を使用してリソースにアクセスする」を参照してください。
AI Search インデックス リソースを削除する
アプリから AI Search インデックス リソースを削除すると、アプリのサービス プリンシパルはインデックスへのアクセスを失います。 インデックス自体は変更されず、適切なアクセス許可を持つ他のユーザーやアプリケーションでも引き続き使用できます。
ベスト プラクティス
AI Search インデックス リソースを使用する場合は、次の点を考慮してください。
- インデックスが他のテーブルを参照している場合は、アプリのサービス プリンシパルが基になるデータ ソースにアクセスできることを確認します。
- 応答時間が低下した場合は、クエリのパフォーマンスを監視し、インデックスの構成または埋め込みモデルを調整します。
- 埋め込みをソース データと同期し続けるために、インデックスの更新スケジュールを検討してください。
- 埋め込みモデルに基づいて、適切な類似性メトリック (コサイン、ユークリッド、ドット積) を使用します。