视觉仓库索引(适用于图片和批量视频行业)是一种语料库级资源,是经过分析的素材资源和注释的受管理表示形式。索引可以视为一个包含嵌入向量和语义限制的数据集,用于表示媒体内容的含义。索引可以部署到索引端点以供搜索。
在 corpus
上创建索引时,该索引将包含语料库中的所有已分析的资源和所有现有注释。
对于您在创建索引后添加的任何资源或注释,您需要再次分析语料库或这些资源,并更新索引以将其纳入索引中。
创建仓库索引
REST
如需创建索引资源,请使用 projects.locations.corpora.indexes.create
方法发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- 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" } }
更新仓库索引
借助 UpdateIndex API,您可以更新索引的元数据字段(如 display_name
和 description
),以及底层索引内容(assets
及其 annotations
)。
请求中的 update_mask
字段(也称为字段掩码)用于指定更新要在 Index 资源中覆盖的字段。update_mask
中指定的字段与资源相关,而不是与完整请求相关。如果资源字段在掩码中,则会被覆盖。不允许使用空字段掩码。如果掩码为“*”,则会触发索引的完整更新,以及索引数据的完整重建。
REST
如需更新索引资源,请使用 projects.locations.corpora.indexes.patch
方法发送 PATCH 请求。
在使用任何请求数据之前,请先进行以下替换:
- 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。
?update_mask=fieldToUpdate
:您要应用update_mask
的可用字段的列表。在请求正文中为新字段指定相应的值。此新值会替换现有的字段值。您可以将多个字段指定为以逗号分隔的值。可用字段:- 显示名:
?update_mask=display_name
- 说明:
?update_mask=description
- 更新基础指数数据:
?update_mask=entire_corpus
- 更新所有字段:
?update_mask=*
- 显示名:
HTTP 方法和网址:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus
请求 JSON 正文:
{ "display_name": "DISPLAY_NAME", "entire_corpus": true }
如需发送请求,请选择以下方式之一:
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/indexes/INDEX_ID?update_mask=display_name,entire_corpus"
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/indexes/INDEX_ID?update_mask=display_name,entire_corpus" | 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.UpdateIndexMetadata" } }
流式索引更新
IndexAsset
和 RemoveIndexAsset
API 允许对索引进行流式更新。这些 API 仅在 Vision 仓库中支持批量视频。
列出仓库中的索引
REST
如需列出语料库下的索引,请使用 projects.locations.corpora.indexes.list 方法发送 GET 请求。
在使用任何请求数据之前,请先进行以下替换:
- REGIONALIZED_ENDPOINT:端点可能包含与
LOCATION_ID
匹配的前缀,例如europe-west4-
。详细了解 区域化端点。 - PROJECT_NUMBER:您的 Google Cloud 项目编号。
- LOCATION_ID:您使用 Vertex AI Vision 的区域。例如:
us-central1
、europe-west4
。请参阅可用区域。 - CORPUS_ID:目标语料库的 ID。
HTTP 方法和网址:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "indexes": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_1", "display_name": "DISPLAY_NAME_1", "description": "DESCRIPTION_1", "entireCorpus": true, "state": "CREATED" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_2", "display_name": "DISPLAY_NAME_2", "description": "DESCRIPTION_2", "entireCorpus": true, "state": "CREATED" } ] }
获取索引
REST
如需获取有关索引的详细信息,请使用 projects.locations.corpora.indexes.get 方法发送 GET 请求。
在使用任何请求数据之前,请先进行以下替换:
- 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。
HTTP 方法和网址:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID", "display_name": "DISPLAY_NAME", "description": "DESCRIPTION", "entireCorpus": true, "state": "CREATED" }
查看索引下的资产
REST
如需获取索引下现有资产的详细信息,请使用 projects.locations.corpora.indexes.viewAssets 方法发送 GET 请求。
在使用任何请求数据之前,请先进行以下替换:
- 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。
- PAGE_SIZE:(可选)要返回的结果数。
- PAGE_TOKEN:(可选)上一次调用响应提供的
nextPageToken
。可用于获取下一页结果。
HTTP 方法和网址:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "indexedAssets": [ { "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID", "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1" }, { "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID", "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2" } ], "nextPageToken": "NEXT_PAGE_TOKEN" }
使用过滤条件查看已编入索引的资产
您可以使用 projects.locations.corpora.indexes.viewAssets 方法中的 filter
字段提供以英文逗号分隔的资产 ID 列表,以过滤索引下的所有资产,并仅显示所提供的资产。
REST
如需列出并过滤索引下的资源,请使用 projects.locations.corpora.indexes.viewAssets 方法发送 GET 请求。
在使用任何请求数据之前,请先进行以下替换:
- 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。
- PAGE_SIZE:(可选)要返回的结果数。
- PAGE_TOKEN:(可选)上一次调用响应提供的
nextPageToken
。可用于获取下一页结果。 - ASSET_ID_FILTER:(可选)以英文逗号分隔的资产 ID 列表,用于过滤返回的列表。例如:
?filter=ASSET_ID_1"
?filter=ASSET_ID_1,ASSET_ID_2"
HTTP 方法和网址:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "indexedAssets": [ { "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID", "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1" }, { "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID", "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2" } ], "nextPageToken": "NEXT_PAGE_TOKEN" }
删除索引
只有在未将索引部署到 indexEndpoint
的情况下,才能删除索引。在删除已部署的索引之前,请先按照取消部署索引指南操作。
REST
如需删除索引资源,请使用 projects.locations.corpora.indexes.delete 方法发送 DELETE 请求。
在使用任何请求数据之前,请先进行以下替换:
- 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。
HTTP 方法和网址:
DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID", }