建立及更新倉儲素材資源

已部署資料擷取應用程式中的已連線 Vision Warehouse (corpus) 含有一或多個媒體物件資源 (例如影片資源)。這些媒體物件 (asset 資源) 包含中繼資料和資源註解。請使用下列指令建立及更新這些媒體物件。

建立串流影片倉儲素材資源

建立倉庫 (corpus 資源) 後,您可以將一或多個影片 asset 資源新增至倉庫。

REST 和指令列

以下程式碼會在指定倉庫 (corpus) 下建立新的素材資源,並提供選項,可用來指定素材資源的 ID 和 TTL。

使用任何要求資料之前,請先替換以下項目:

  • REGIONALIZED_ENDPOINT:端點可能包含與 LOCATION_ID 相符的前置字串,例如 europe-west4-。進一步瞭解 地區化端點
  • PROJECT_NUMBER:您的 Google Cloud 專案編號
  • LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:us-central1europe-west4。請參閱可用地區
  • CORPUS_ID:目標語料庫的 ID。
  • ASSET_ID:(選用) 使用者提供的素材資源 ID 值。在這個要求中,值會以以下格式加入要求網址:
    • https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets?asset_id=ASSET_ID
  • TIME_TO_LIVE:文集下所有資產的存留時間 (TTL),或特定資產的 TTL。舉例來說,如果詞彙庫中的資產 TTL 為 100 天,請提供 8640000 (秒) 的值。

HTTP 方法和網址:

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

Vertex AI Vision SDK

如要傳送要求來讀取模型輸出串流,您必須安裝 Vertex AI Vision SDK

使用 vaictl 指令列工具建立素材資源時,您無法指定素材資源 ID 或 TTL。

進行下列變數替換:

  • PROJECT_NUMBER:您的 Google Cloud 專案編號。
  • LOCATION_ID:您的位置 ID。例如,us-central1支援的地區瞭解詳情
  • CORPUS_ID:目標倉庫 (corpus 資源) 的 ID。
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 中的欄位。
  • 如果更新遮罩值為 *,要求會更新所有欄位。
  • 如果未指定更新遮罩,系統只會更新要求網址中含有要求主體中提供的值的欄位。

REST 和指令列

以下程式碼範例會使用 projects.locations.corpora.assets.patch 方法修改素材資源的 TTL。

變更存留時間值

這個範例在要求網址中使用 ?updateMask=ttl,並在要求主體中加入新的 ttl.seconds 值,以便更新資產。

使用任何要求資料之前,請先替換以下項目:

  • REGIONALIZED_ENDPOINT:端點可能包含與 LOCATION_ID 相符的前置字串,例如 europe-west4-。進一步瞭解 地區化端點
  • PROJECT_NUMBER:您的 Google Cloud 專案編號
  • LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:us-central1europe-west4。請參閱可用地區
  • CORPUS_ID:目標語料庫的 ID。
  • ASSET_ID:目標素材資源的 ID。
  • ?updateMask=fieldToUpdate:可套用 updateMask 的其中一個可用欄位。可用欄位:
    • 存留時間 (TTL):?updateMask=ttl
    • 更新所有欄位:?updateMask=*

HTTP 方法和網址:

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 值

這個範例在要求網址中使用 ?updateMask=ttl,並包含空白要求主體,以清除資產的 TTL 值。

使用任何要求資料之前,請先替換以下項目:

  • REGIONALIZED_ENDPOINT:端點可能包含與 LOCATION_ID 相符的前置字串,例如 europe-west4-。進一步瞭解 地區化端點
  • PROJECT_NUMBER:您的 Google Cloud 專案編號
  • LOCATION_ID:您使用 Vertex AI Vision 的區域。例如:us-central1europe-west4。請參閱可用地區
  • CORPUS_ID:目標語料庫的 ID。
  • ASSET_ID:目標素材資源的 ID。
  • ?updateMask=fieldToUpdate:可套用 updateMask 的其中一個可用欄位。可用欄位:
    • 存留時間 (TTL):?updateMask=ttl
    • 更新所有欄位:?updateMask=*

HTTP 方法和網址:

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