アプリケーションをデプロイして提供する

Vertex AI にアプリケーションをデプロイするには、ReasoningEngine の新しいインスタンスを作成し、パラメータとしてアプリケーション クラスを渡します。アプリケーションにパッケージの依存関係を導入する場合は、次のパラメータを使用します。

  • requirements: 外部 PyPI パッケージの依存関係のリスト。1 行に 1 つの文字列を記述します。詳細については、要件ファイルの形式をご覧ください。
  • extra_packages: 内部パッケージの依存関係のリスト。これらのパッケージの依存関係は、アプリケーションに必要なローカル Python パッケージに対応するローカル ファイルまたはディレクトリです。

次のコードは、アプリケーションをデプロイする方法を示しています。

remote_app = llm_extension.ReasoningEngine.create(
    CLASS_NAME(project=PROJECT_ID, location=LOCATION),
    requirements=[
        "google-cloud-aiplatform==1.29.0",
        "langchain==0.1.11",
    ],
    display_name=DISPLAY_NAME,
)

Reasoning Engine にアプリケーションをデプロイする際は、既存のオブジェクトを再利用するのではなく、新しいオブジェクトを渡します。これにより、ピクル化できないデータを初期化したオブジェクト(データベース接続や .set_up メソッド内のサービスなど)が作成されないようにします。

アプリケーションのデプロイが完了するまでに数分かかります。コンテナをビルドし、バックエンドで HTTP サーバーを起動します。デプロイのレイテンシは、必要なパッケージのインストールにかかった合計時間によって異なります。

デプロイされると、remote_app は Vertex AI で実行されている CLASS_NAME のインスタンスに対応し、クエリまたは削除が可能になります。CLASS_NAMEローカル インスタンスとは別のものです。

デプロイされた各アプリケーションには一意の識別子があります。次のコマンドを実行して、アプリケーションの resource_name 識別子を取得します。

remote_app.resource_name

resource_name は projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID の形式です。

Reasoning Engine をクエリする

次のコマンドは、remote_app オブジェクトのオペレーションに対応するスキーマのリストを JSON 形式で提供します。

remote_app.operation_schemas()

スキーマのリストの例を次に示します。

[{'description': 'Query the application with a user prompt.\n'
                 '\n'
                 '        Args:\n'
                 '            query: The user prompt.\n'
                 '\n'
                 '        Returns:\n'
                 '            str: The LLM response\n'
                 '        ',
  'name': 'CLASS_NAME_query',
  'parameters': {'properties': {'query': {'type': 'string'}},
                 'required': ['query'],
                 'type': 'object'}}]

Reasoning Engine をクエリするには、.query() メソッドを使用します。曖昧さを避けるため、各引数を引数名で指定します。

Vertex AI SDK for Python

次のコマンドは、Reasoning Engine クエリの例です。

response = remote_app.query(question="What is vertex AI?")

REST

次のコマンドは、Reasoning Engine クエリの例です。

$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}/reasoningEngines/${REASONING_ENGINE_ID}:query -d '{
  "input": {
    ...
  }
}'

クエリのレスポンスは、ローカル アプリケーション テストの出力に似た文字列になります。

"Vertex AI is a unified machine learning platform [...] With Vertex AI, you can easily build and deploy models that are accurate, scalable, and secure."

次のステップ