ウェアハウス アセットを作成して更新する

データ取り込み用にデプロイされたアプリに接続された Vision Warehouse(corpus)には、1 つ以上のメディア オブジェクト リソース(動画リソースなど)があります。これらのメディア オブジェクト(asset リソース)には、メタデータとリソース アノテーションが含まれています。次のコマンドを使用して、これらのメディア オブジェクトを作成および更新します。

ストリーミング動画ウェアハウス アセットを作成する

ウェアハウスを作成corpus リソース)したら、1 つ以上の動画 asset リソースをウェアハウスに追加できます。

REST とコマンドライン

次のコードは、指定されたウェアハウス(corpus)に新しいアセットを作成します。アセットの ID と TTL を指定するオプションがあります。

リクエストのデータを使用する前に、次のように置き換えます。

  • REGIONALIZED_ENDPOINT: エンドポイントには、LOCATION_ID に一致するプレフィックス(europe-west4- など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号
  • LOCATION_ID: Agent Platform Vision を使用しているリージョン。たとえば、us-central1europe-west4 などです。利用可能なリージョンをご覧ください。
  • CORPUS_ID: ターゲット コーパスの ID。
  • ASSET_ID:(省略可)ユーザーが指定したアセット ID の値。このリクエストでは、値は次の形式でリクエスト URL に追加されます。
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets?asset_id=ASSET_ID
  • TIME_TO_LIVE: コーパス内のすべてのアセットの有効期間(TTL)、または特定のアセットの TTL。たとえば、TTL が 100 日のアセットを含むコーパスの場合は、値 8640000(秒)を指定します。

HTTP メソッドと URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets

リクエストの本文(JSON):

{
  "ttl": {
    "seconds": TIME_TO_LIVE
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID",
  "ttl": "TIME_TO_LIVEs"
}

Gemini Enterprise Agent Platform Vision SDK

モデル出力ストリームを読み取るリクエストを送信するには、Gemini Enterprise Agent Platform Vision SDK をインストールする必要があります。

vaictl コマンドライン ツールを使用してアセットを作成する場合、アセット ID または TTL を指定することはできません。

次の変数を置き換えます。

vaictl --project-id=PROJECT_NUMBER \
--location-id=LOCATION_ID \
--service-endpoint=warehouse-visionai.googleapis.com \
create asset CORPUS_ID

アセットを作成したら、vaictl コマンドライン ツールを使用して、そのアセットのウェアハウスに動画データを直接取り込むことができます。

ストリーミング動画ウェアハウス アセットを更新する

次のコードサンプルを使用して、アセットの有効期間(TTL)を更新します。更新できるのは TTL フィールドのみです。

次のコードサンプルで updateMask クエリ パラメータを使用して、アセットの TTL を更新します。クエリ パラメータを使用して、TTL フィールドのみを更新できます。updateMask は次のように機能します。

  • 指定した場合、updateMask のフィールドのみが更新されます。
  • 更新マスクの値が * の場合、リクエストはすべてのフィールドを更新します。
  • 更新マスクが指定されていない場合、リクエスト URL のフィールドのうち、リクエスト本文で値が指定されているフィールドのみが更新されます。

REST とコマンドライン

次のコードサンプルは、projects.locations.corpora.assets.patch メソッドを使用してアセットの TTL を変更します。

TTL 値を変更する

このサンプルでは、リクエスト URL で ?updateMask=ttl を使用し、リクエスト本文に新しい ttl.seconds 値を含めてアセットを更新します。

リクエストのデータを使用する前に、次のように置き換えます。

  • REGIONALIZED_ENDPOINT: エンドポイントには、LOCATION_ID に一致するプレフィックス(europe-west4- など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号
  • LOCATION_ID: Agent Platform Vision を使用しているリージョン。たとえば、us-central1europe-west4 などです。利用可能なリージョンをご覧ください。
  • CORPUS_ID: ターゲット コーパスの ID。
  • ASSET_ID: ターゲット アセットの ID。
  • ?updateMask=fieldToUpdate: updateMask を適用できる使用可能なフィールドの 1 つ。使用可能なフィールド:
    • 有効期間(TTL): ?updateMask=ttl
    • すべてのフィールドを更新する: ?updateMask=*

HTTP メソッドと URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl

リクエストの本文(JSON):

{
  "ttl": {
    "seconds": "1"
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}

TTL 値を削除する

このサンプルでは、リクエスト URL で ?updateMask=ttl を使用し、アセットの TTL 値をクリアするために空のリクエスト本文を含めています。

リクエストのデータを使用する前に、次のように置き換えます。

  • REGIONALIZED_ENDPOINT: エンドポイントには、LOCATION_ID に一致するプレフィックス(europe-west4- など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号
  • LOCATION_ID: Agent Platform Vision を使用しているリージョン。たとえば、us-central1europe-west4 などです。利用可能なリージョンをご覧ください。
  • CORPUS_ID: ターゲット コーパスの ID。
  • ASSET_ID: ターゲット アセットの ID。
  • ?updateMask=fieldToUpdate: updateMask を適用できる使用可能なフィールドの 1 つ。使用可能なフィールド:
    • 有効期間(TTL): ?updateMask=ttl
    • すべてのフィールドを更新する: ?updateMask=*

HTTP メソッドと URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl

リクエストの本文(JSON):

{}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID?updateMask=ttl" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}