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

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プロファイルを設定する必要があります。この章で説明するステップに従って、選択AIを使用した自然言語プロンプトからのSQLの生成を行います。
    • AIプロファイルを作成および構成した後、Data Studioナビゲーション・メニューのData Studio設定ウィザードでAIプロファイルを設定し、Data Studioツールの自然言語からのSQLの生成やベクトル検索からのSQLの生成などのAI機能を使用します。

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

ノート

データベースの特定の機能により、たとえば、REST APIへのアクセスを容易にするJSON仕様を使用して、サード・パーティによって個別に提供されるサービスにアクセスできます。

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

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

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

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

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

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


    select-table.jpgの説明が続きます

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

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


    run-data-analysis.jpgの説明が続きます

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

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


    tabular-view.jpgの説明が続きます

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


    map-vector-column.jpgの説明が続きます

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


    text.jpgの説明が続きます

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

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


    bank.jpgの説明が続きます

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


    results.jpgの説明が続きます

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


    expand-content.jpgの説明が続きます