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

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

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

前提条件

データ分析ツールでベクトル検索機能を使用するには、次のものが必要です。
  • ベクトルをサポートする26aiデータベースが必要です。
  • 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を生成するなどの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を提供します。サードパーティの埋込みモデルの使用条件を理解する必要があります。

ノート:

データベースの特定の機能により、たとえば、RESTAPIへのアクセスを容易にする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 Generative AIです。
    • 資格証明の選択: サード・パーティのサービス・プロバイダにアクセスするためにData Studio設定から作成する資格証明を入力します。選択したサード・パーティ・サービス・プロバイダへのREST APIコール中にアクセスを有効にするには、これらの資格証明が必要です。
    • 生成AI URL: Cohere、Google AI、Hugging Face、Oracle Cloud Infrastructure (OCI) Generative AI、OpenAI、Vertex AIなどのサードパーティ・サービス・プロバイダのコールに使用する生成AI URLを指定します。
    • モデルの選択: テキストから埋込みを生成するために使用する埋込みモデルを指定します。この例では、cohere.embed-english-light-v2.0と入力します。

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

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



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

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



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



    各コンテンツの上にカーソルを置くと、展開されたフォームを表示できます。