データ分析ツールのベクトル検索

Oracle AI Vector Search機能を使用して、特定の列のソース・データから関連テキストを検索できます。

ベクトル検索は、検索入力として指定したテキストに類似したデータをすばやく検索して照合するのに役立ちます。

前提条件

データ分析ツールのベクトル検索機能を使用するには、次のものが必要です。
  • Vectorをサポートする23aiデータベースが必要です。
  • ORDS REST APIでは、VECTORデータ型をサポートする必要があります。
  • ベクトル検索に使用する資格証明と同じ資格証明を選択するには、Data Studio設定ページを使用する必要があります。
  • 最初に埋め込むには、ソース・データに数値以外の列がすでに含まれている必要があります。
  • データ分析ツールでベクトル検索を使用するには、次のものが必要です。
    • OpenAI、CohereまたはAzure OpenAIアカウント・サービス(クレジットあり)
    • DBMS_VECTORおよびDBMS_VECTOR_CHAIN.UTL_TO_EMBEDDINGパッケージへのアクセス。
    ノート

    • AIプロファイルを設定する必要があります。この章で説明するステップに従って、Select AIを使用して自然言語プロンプトからSQLの生成を行います。
    • AIプロファイルを作成して構成したら、Data Studioナビゲーション・メニューのData Studio設定ウィザードのAIプロファイルを設定して、データ・スタジオ・ツールで自然言語からSQLを生成したり、ベクトル検索からSQLを生成するなどのAI機能を使用します。

データ分析ツールは、ベクトル・ユーティリティのPL/SQLパッケージDBMS_VECTORおよびDBMS_VECTOR_CHAIN.UTL_TO_EMBEDDINGを利用して、Cohere、Google AI、Hugging Face、Oracle Cloud Infrastructure (OCI) Generative AI、OpenAI、Vertex AIなどの外部埋込みモデルと対話できるサードパーティのREST APIを提供します。サードパーティの埋込みモデルの使用条件を理解する必要があります。

ノート

Certain features of the database may allow you to access services offered separately by third-parties, for example, through the use of JSON specifications that facilitate your access to REST APIs.

こうした機能の使用は、お客様自身の責任でのみ行われ、お客様は当該第三者サービスの使用に関連するあらゆる条件を遵守する責任を負うものとします。サードパーティ・サービスに関するその他の条件にかかわらず、こうしたデータベース機能を使用することは、お客様がそのリスクを受け入れ、そうしたアクセスにより生じた一切れの損害につき一切の責任についてOracleの責任または責任を明示的に排除することになります。

あなたが金融愛好家であり、金融商品や投資をよりよく理解するためにニュースを通じて金融について学びたいとします。この例では、ベクトル検索機能を使用して、Bankという語に関連するニュースを検索できます。

CATEGORY列、FILENAME列、TITLE列、CONTENT列、およびCONTENT列のベクトル表現を含むVECTORというラベルが付いた別の列を持つ表について考えます。数値以外のデータ(イメージまたはテキスト)を持つソース列でベクトル検索を使用できるため、数値以外の列はいずれもベクトル列として埋め込まれて格納できます。ただし、この例では、CONTENT列から関連するテキストを検索する必要があります。

データ分析ツールを使用してベクトル検索を実行できます。

ベクトル列にどの列の埋込みが保持されているかを示すには、まずデータ分析ツールを使用して適切な列を適切なベクトルにマップし、同様のテキストを検索し、問合せを実行する必要があります。「問合せ結果」タブには、Bankのようなコンテンツが表示されます。

  1. データ分析ツールで、「分析」の下の「+」をクリックして、新しい分析を作成します。
  2. 「スキーマ」ドロップダウンからスキーマを選択し、「タイプ」ドロップダウンから「問合せ」を選択します。
  3. テーブルブラウザからクエリーするテーブルを選択します。この例では、BBCNEWS_DATA_ENCODEを選択します。



  4. SQLワークシート編集領域にSELECT文を入力して、BBCNEWS_DATA_ENCODE表からすべての列を取得します。

    次のコマンドを指定します。
    Select * from BBCNEWS_DATA_ENCODE;
  5. 「実行」をクリックします。



    「問合せ結果」タブでは、BBCNEWS_DATA_ENCODE表のすべての列を表示できます。

  6. 問合せ結果をビジュアル化する様々なモードを表示するアイコンから、モードの表形式ビューを選択します。



  7. CONTENT列を「列」ドロップ領域にドラッグ・アンド・ドロップし、それをクリックしてベクトル列をマップします。



  8. 「ベクトル列のマップ」ウィザードで、次のフィールド値を指定します。
    • マップ・ベクトル: ドロップダウン・リストから、選択した列のベクトル埋込みで構成される列を選択します。この例では、VECTORです。
    • サービスの選択: ツールのこの機能を利用するために使用するAIサービスを選択します。この例では、OCI生成AIです。
    • 資格証明の選択: サード・パーティのサービス・プロバイダにアクセスするためにData Studio設定から作成する資格証明を入力します。選択したサード・パーティ・サービス・プロバイダへのREST APIコール中にアクセスを有効にするには、これらの資格証明が必要です。
    • 生成AI URL: Cohere、Google AI、Hugging Face、Oracle Cloud Infrastructure (OCI)生成AI、OpenAI、Vertex AIなど、サードパーティ・サービス・プロバイダのコールに使用する生成AI URLを指定します。
    • モデルの選択: テキストから埋込みを生成するために使用する埋込みモデルを指定します。この例では、cohere.embed-english-light-v2.0と入力します。

    「保存」をクリックしてマッピングを保存します。「クリア」を選択して、このステップで指定したフィールド値をクリアします。

  9. ファセット・フィルタでは、「コンテンツ」列の下にテキスト・ボックスを表示できます。+記号をクリックして、テキスト・ボックスを展開します。



  10. テキスト・ボックスに次のテキストを入力して、CONTENT列のBankという語に似た内容にします。
    BANK

    「検索」をクリックします。



  11. 「出力」パネルの「問合せ結果」タブには、Bankに関連するコンテンツで構成されるコンテンツ列が表示されます。



    各コンテンツにマウス・ポインタを重ねると、そのコンテンツが展開されたフォームを表示できます。