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."