创建一个可用于搜索的批量视频仓库。
设置最小批量视频仓库
设置最小批量视频仓库有两种常用方法。
方案 1:先部署一个空索引,然后逐步添加视频素材资源。 此方法的典型 API 顺序如下所示:
- 设置语料库:依次选择
CreateCorpus和CreateDataSchema。 - 设置一个空索引:
CreateIndex、CreateIndexEndpoint和DeployIndex。 - 添加视频素材资源:
CreateAsset、UploadAsset、AnalyzeAsset和IndexAsset。- (可选)添加视频注释:
CreateAnnotation。
- (可选)添加视频注释:
- 设置语料库:依次选择
方案 2:先导入视频素材资源,然后再部署索引。 此方法的典型 API 顺序如下所示:
- 设置语料库:依次选择
CreateCorpus和CreateDataSchema。 - 添加视频素材资源:
CreateAsset、UploadAsset和AnalyzeAsset。- (可选)添加视频注释:
CreateAnnotation。
- (可选)添加视频注释:
- 使用现有素材资源设置索引:
CreateIndex、CreateIndexEndpoint和DeployIndex。
- 设置语料库:依次选择
选择方法:最适合您的方法取决于您的具体需求。如果您需要尽快开始搜索视频,不妨采用第一种方法。如果您要导入大量视频,则可能需要使用后一种方法。
创建语料库
首先,您必须创建一个语料库资源。创建批量视频仓库语料库时,请将 EMBEDDING_SEARCH 指定为 searchCapabilitySetting 属性的默认值。
REST 和命令行
在指定项目下创建语料库资源,并可选择指定语料库的显示名称和说明。
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - DISPLAY_NAME:仓库的显示名称。
- WAREHOUSE_DESCRIPTION:仓库的说明 (
corpus)。
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora
请求 JSON 正文:
{
"display_name": "DISPLAY_NAME",
"description": "WAREHOUSE_DESCRIPTION",
"type": "VIDEO_ON_DEMAND",
"search_capability_setting": {
"search_capabilities": {
"type": "EMBEDDING_SEARCH"
}
}
}
如需发送请求,请选择以下方式之一:
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"
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" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/warehouseoperations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.visionai.v1.CreateCorpusMetadata"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.visionai.v1.Corpus",
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID",
"displayName": "DISPLAY_NAME",
"description": "WAREHOUSE_DESCRIPTION",
"type": "VIDEO_ON_DEMAND",
"search_capability_setting": {
"search_capabilities": {
"type": "EMBEDDING_SEARCH"
}
}
}
}
创建、上传和分析素材资源
如需将视频添加到批量视频仓库,请先创建素材资源。
REST 和命令行
如需创建资产资源,请使用 projects.locations.corpora.assets.create 方法发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-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 正文:
{
}
如需发送请求,请选择以下方式之一:
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"
}
下一步是通过 Cloud Storage URI 上传视频。请注意,批量视频仓库不会存储视频文件的副本。UploadAsset API 仅验证视频元数据,以确保没有违反任何配额或限制。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- ASSET_ID:目标素材资源的 ID。
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:upload
请求 JSON 正文:
{
"asset_source": {
"asset_gcs_source": {
"gcs_uri": "GCS_URI"
}
}
}
如需发送请求,请选择以下方式之一:
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/ASSET_ID:upload"
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/ASSET_ID:upload" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/operations/OPERATION_ID",
}
上传的视频需要先经过分析,然后才能进入搜索索引。
REST 和命令行
使用 projects.locations.corpora.assets.analyze 方法分析视频资产。默认情况下,批量视频仓库会对视频内容运行嵌入分析。
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- ASSET_ID:目标素材资源的 ID。
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:analyze
请求 JSON 正文:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
}
如需发送请求,请选择以下方式之一:
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/ASSET_ID:analyze"
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/ASSET_ID:analyze" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/operations/OPERATION_ID"
}
创建数据架构
如果您想使用自定义元数据为视频添加注释并搜索元数据,则必须使用数据架构。每个数据架构都有一个唯一的键,该键将与注释相关联,并用作搜索中的过滤条件。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- DATASCHEMA_KEY:此键必须与用户指定的注释的键匹配,并且在
corpus中是唯一的。例如data-key。 - ANNOTATION_DATA_TYPE:注释的数据类型。可用的值包括:
DATA_TYPE_UNSPECIFIEDINTEGERFLOATSTRINGDATETIMEGEO_COORDINATEPROTO_ANYBOOLEAN
如需了解详情,请参阅 API 参考文档。
- ANNOTATION_GRANULARITY:此
dataSchema下的注释的粒度。可用的值包括:GRANULARITY_UNSPECIFIED- 未指定粒度。GRANULARITY_ASSET_LEVEL- 资产级精细程度(注释不得包含媒体资产的时间分区信息)。GRANULARITY_PARTITION_LEVEL- 分区级精细度(注释必须包含媒体资产的时间分区信息)。
- SEARCH_STRATEGY:可用的枚举值之一。要应用于注释键的搜索策略类型。可用的值包括:
NO_SEARCHEXACT_SEARCHSMART_SEARCH
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
请求 JSON 正文:
{
"key": "DATASCHEMA_KEY",
"schema_details": {
"type": "ANNOTATION_DATA_TYPE",
"granularity": "ANNOTATION_GRANULARITY",
"search_strategy": {
"search_strategy_type": "SEARCH_STRATEGY"
}
}
}
如需发送请求,请选择以下方式之一:
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/dataSchemas"
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/dataSchemas" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID",
"key": "data-key",
"schemaDetails": {
"type": "BOOLEAN",
"granularity": "GRANULARITY_ASSET_LEVEL",
"searchStrategy": {
"search_strategy_type": "EXACT_SEARCH"
}
}
}
创建注解
您可以使用资产级注释或带有相对时间划分的注释来为视频添加注释。必须使用现有的数据架构键指定每个注释。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- ASSET_ID:目标素材资源的 ID。
- ANNOTATION_ID:(可选)用户为注释 ID 提供的值。在此请求中,该值以以下形式添加到请求网址中:
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
请求 JSON 正文:
{
"user_specified_annotation": {
"key": "object-detected",
"value": {
"str_value": "cat"
},
"partition": {
"relative_temporal_partition": {
"start_offset": {
"seconds": "60"
},
"end_offset": {
"seconds": "300"
}
}
}
}
}
如需发送请求,请选择以下方式之一:
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/ASSET_ID/annotations"
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/ASSET_ID/annotations" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
"userSpecifiedAnnotation": {
"key": "object-detected",
"value": {
"strValue": "cat"
},
"partition": {
"relative_temporal_partition": {
"start_offset": "60s",
"end_offset": "300s"
}
}
}
}
创建索引
添加视频资产和注释后,您可以继续为语料库创建索引。索引会捕获创建时语料库的状态,其中包括所有已分析的素材资源和注释。
REST 和命令行
此示例展示了如何创建索引资源。
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- INDEX_ID:(可选)用户为索引 ID 提供的值。在此请求中,该值以以下形式添加到请求网址中:
- https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes
请求 JSON 正文:
{
"display_name": "DISPLAY_NAME",
"description": "INDEX_DESCRIPTION",
}
如需发送请求,请选择以下方式之一:
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/indexes"
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/indexes" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata"
}
}
将索引部署到索引端点
必须先将索引部署到索引端点,然后才能用于搜索。索引端点提供发送搜索请求的接入点。
此示例展示了如何创建索引端点。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - INDEX_ENDPOINT_ID:(可选)用户为索引端点 ID 提供的值。在此请求中,该值以以下形式添加到请求网址中:
- https://REGIONALIZED_ENDPOINT/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints?index_endpoint_id=INDEX_ENDPOINT_ID
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints
请求 JSON 正文:
{
"display_name": "DISPLAY_NAME",
"description": "DESCRIPTION",
}
如需发送请求,请选择以下方式之一:
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/indexEndpoints"
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/indexEndpoints" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexEndpointMetadata"
}
}
以下示例展示了如何将索引部署到索引端点。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - INDEX_ENDPOINT_ID:目标索引端点的 ID。
- CORPUS_ID:目标语料库的 ID。
- INDEX_ID:目标索引的 ID。
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
请求 JSON 正文:
{
"deployedIndex": {
"index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
}
}
如需发送请求,请选择以下方式之一:
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/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex"
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/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.visionai.v1.DeployIndexMetadata",
"deployedIndex": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
}
}
在索引中流式更新资产
您可以使用 IndexAsset 或 RemoveIndexAsset 方法更新或移除已部署索引中的单个素材资源。借助流式更新,您可以在短时间内更新和搜索索引。
以下示例展示了如何更新索引中的资产。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- ASSET_ID:目标素材资源的 ID。
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:index
请求 JSON 正文:
{
"index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
}
如需发送请求,请选择以下方式之一:
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/ASSET_ID:index"
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/ASSET_ID:index" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/operations/OPERATION_ID",
}
此示例展示了如何从索引中移除资产。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID匹配的前缀,例如europe-west4-。详细了解 区域级端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您在其中使用 Vertex AI Vision 的区域。例如:
us-central1、europe-west4。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
- ASSET_ID:目标素材资源的 ID。
HTTP 方法和网址:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID:removeIndex
请求 JSON 正文:
{
"index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
}
如需发送请求,请选择以下方式之一:
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/ASSET_ID:removeIndex"
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/ASSET_ID:removeIndex" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/operations/OPERATION_ID",
}
后续步骤
- 了解如何在批量视频仓库中搜索。