Docs Menu
Docs Home
/ /

自然言語MongoDBクエリに Vertex AI拡張機能を使用する

注意

Vertex AI 拡張機能はプレビュー版であり、今後変更される可能性があります。この機能へのアクセス方法については、Google Cloud の担当者にお問い合わせください。

MongoDB ベクトル検索で Vertex AIを使用して RG を実装するだけでなく、 Vertex AI拡張機能 を使用して、Vertex AIモデルを使用して Atlas とやり取りする方法をさらにカスタマイズできます。このチュートリアルでは、 自然言語を使用して Atlas 内のデータをリアルタイムでクエリできる Vertex AI拡張機能を作成します。

Vertex AI 拡張機能と MongoDB Atlas を用いたワークフローの図解
クリックして拡大します

このチュートリアルでは、以下のコンポーネントを使用して、Atlas での自然言語によるクエリ実行を可能にします。

  • Google Cloud Platform Vertex AI SDK を使用して、 AIモデルを管理し、Vertex AIのカスタム拡張機能を有効にします。このチュートリアルでは、GeoMon 1.5 を使用しますPro モデル。

  • Google Cloud RunVertex AI と Atlas 間の API エンドポイントとして機能する関数をデプロイするために使用します。

  • 自然言語クエリがMongoDB操作にマッピングする方法を定義するMongoDB APIの OpenAPI 3 仕様詳しくは、 OpenAPI 仕様 を参照してください。

  • Vertex AI拡張機能 は、Vertex AIから Atlas とのリアルタイムインタラクションを可能にし、自然言語クエリの処理方法を構成します。

  • Google Cloud Secrets Manager を使用して、MongoDB の API キーを保存します。

注意

詳細なコードやセットアップ手順については、この例の「 GitHub リポジトリ 」を参照してください。

始める前に、以下のものを用意してください。

  • MongoDB Atlas アカウント。サインアップするには、 Google Cloud Marketplace を利用するか、新しいアカウントを登録してください。

  • サンプル データセットが読み込まれた Atlas クラスターが必要です。詳細については、「クラスターの作成」を参照してください。

  • Google Cloud Platformプロジェクト。

  • OpenAPI 仕様を保存するためのGoogle Cloud Platform Storageバケット

  • プロジェクトで有効になっている API :

    • クラウド構築API

    • Cloud Functions API

    • クラウド ロギングAPI

    • クラウド Pub/Sub API

  • Colas Enterprise 環境。

このセクションでは、Vertex AI Extension と Atlas クラスター間の API エンドポイントとして機能する Google Cloud Run 関数を作成します。この関数は、認証の処理、Atlas クラスターへの接続、および Vertex AI からのリクエストに基づくデータベース操作を行います。

1

Google Cloud Platformコンソールで、Cloud Run ページを開き、Write a function をクリックします。

2
  1. 関数を配置する関数名とGoogle Cloud Platformリージョンを指定します。

  2. Runtime として利用可能な最新の Python バージョンを選択してください。

  3. Authentication section で、Allow unauthenticated invocations を選択します。

  4. 残りの設定にデフォルト値を使用し、Next をクリックします。

詳細な構成手順については、Cloud Run のドキュメントを参照してください。

3

以下のコードをそれぞれのファイルに貼り付けます。

4
  1. Entry Point の名前を mongodb_crud に変更します。

  2. [Deploy] をクリックして、関数をデプロイします。

  3. Cloud Function をトリガーするための HTTPS エンドポイントをコピーし、ローカルに保存します。

  4. 関数の Details ページに移動し、その関数で使用されているサービス アカウント名をコピーしてローカルに保存します。

このセクションでは、Gemini 1.5 Pro モデルを使用して、Atlas 内のデータに対する自然言語クエリを可能にする Vertex AI 拡張機能を作成します。この拡張機能は、OpenAPI 仕様と、作成した Cloud Run 関数を使用して、自然言語をデータベース操作にマッピングし、Atlas のデータをクエリします。

この拡張機能を実装するには、対話式の Python ノートブックを使用します。これにより、Python のコード スニペットを個別に実行することができます。このチュートリアルでは、Colab Enterprise 環境で mongodb-vertex-ai-extension.ipynb という名前のノートブックを作成します。

次のコードをノートブックにコピー&ペーストします。

1
  1. Google Cloud アカウントを認証し、グループ ID を設定します。

    from google.colab import auth
    auth.authenticate_user("GCP project id")
    !gcloud config set project {"GCP project id"}
  2. 必要な依存関係をインストールします。

    !pip install --force-reinstall --quiet google_cloud_aiplatform
    !pip install --force-reinstall --quiet langchain==0.0.298
    !pip install --upgrade google-auth
    !pip install bigframes==0.26.0
  3. カーネルを再起動します。

    import IPython
    app = IPython.Application.instance()
    app.kernel.do_shutdown(True)
  4. 環境変数を設定してください。

    サンプル値をプロジェクトに対応する正しい値に置き換えます 。

    import os
    # These are sample values; replace them with the correct values that correspond to your project
    os.environ['PROJECT_ID'] = 'gcp project id' # GCP Project ID
    os.environ['REGION'] = "us-central1" # Project Region
    os.environ['STAGING_BUCKET'] = "gs://vertexai_extensions" # GCS Bucket location
    os.environ['EXTENSION_DISPLAY_HOME'] = "MongoDb Vertex API Interpreter" # Extension Config Display Name
    os.environ['EXTENSION_DESCRIPTION'] = "This extension makes api call to mongodb to do all crud operations" # Extension Config Description
    os.environ['MANIFEST_NAME'] = "mdb_crud_interpreter" # OPEN API Spec Config Name
    os.environ['MANIFEST_DESCRIPTION'] = "This extension makes api call to mongodb to do all crud operations" # OPEN API Spec Config Description
    os.environ['OPENAPI_GCS_URI'] = "gs://vertexai_extensions/mongodbopenapispec.yaml" # OPEN API GCS URI
    os.environ['API_SECRET_LOCATION'] = "projects/787220387490/secrets/mdbapikey/versions/1" # API KEY secret location
    os.environ['LLM_MODEL'] = "gemini-1.5-pro" # LLM Config
2

GitHub から Open API 仕様(YAML ファイル)をダウンロードし、Google Cloud Storage バケットにアップロードします。

from google.cloud import aiplatform
from google.cloud.aiplatform.private_preview import llm_extension
PROJECT_ID = os.environ['PROJECT_ID']
REGION = os.environ['REGION']
STAGING_BUCKET = os.environ['STAGING_BUCKET']
aiplatform.init(
project=PROJECT_ID,
location=REGION,
staging_bucket=STAGING_BUCKET,
)
3

次のマニフェストは、 拡張機能のキー コンポーネントを構成する構造化されたJSONオブジェクトです。<service-account> を Cloud Run 関数で使用されるサービス アカウント名に置き換えます。

from google.cloud import aiplatform
from vertexai.preview import extensions
mdb_crud = extensions.Extension.create(
display_name = os.environ['EXTENSION_DISPLAY_HOME'],
# Optional.
description = os.environ['EXTENSION_DESCRIPTION'],
manifest = {
"name": os.environ['MANIFEST_NAME'],
"description": os.environ['MANIFEST_DESCRIPTION'],
"api_spec": {
"open_api_gcs_uri": (
os.environ['OPENAPI_GCS_URI']
),
},
"authConfig": {
"authType": "OAUTH",
"oauthConfig": {"service_account": "<service-account>"}
},
},
)
mdb_crud
4

拡張機能を検証し、操作スキーマとパラメーターを出力します。

print("Name:", mdb_crud.gca_resource.name)
print("Display Name:", mdb_crud.gca_resource.display_name)
print("Description:", mdb_crud.gca_resource.description)
import pprint
pprint.pprint(mdb_crud.operation_schemas())

Vertex AIで、左側のナビゲーション メニューにある [Extensions] をクリックします。MongoDB Vertex API Interpreter という名前の新しい拡張機能が拡張機能のリストに表示されます。

次の例では、Atlas 上のデータに対して使用できる 2 種類の自然言語クエリを示しています。

戻る

Google Vertex AI

項目一覧