创建和更新仓库素材资源

已部署的数据提取应用中关联的 Vision 仓库 (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 为 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。

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