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

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の生成などの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を選択します。



  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に関連するコンテンツで構成されるコンテンツ列が表示されます。



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