Después de crear un almacén de Vision, agregarlo a una app y implementarlo, puedes buscar los datos almacenados en el almacén de videos de transmisión.
Busca metadatos de videos de transmisión
Para buscar los datos (assets
) en tu almacén (corpus
), propaga SearchAssetsRequest
con el contenido que deseas encontrar. Este contenido se presenta en varios formatos:
criteria
: Es el texto, el número o la fecha que proporciona el usuario.facet_selections
: Es el contenido de texto que muestra el servidor y que selecciona el usuario.content_time_ranges
: Son los períodos en los que debe incluirse todo el contenido que se muestra.
En el siguiente ejemplo, considera un almacén que contiene videos de cámaras de seguridad de diferentes tipos de tiendas en todo el país. Para recuperar todos los activos de los años 2018 o 2020 etiquetados con la anotación "state": "California"
o la anotación "state":"Pennsylvania"
, envía la siguiente solicitud:
REST
Para buscar recursos, envía una solicitud POST mediante el método projects.locations.corpora.searchAssets.
En este cuerpo de muestra, el campocriteria
usa valores textArray
para proporcionar dos txt_values
: “California” y “Pennsylvania”. También puedes proporcionar criterios de búsqueda para otros tipos de datos. Solo puedes especificar un tipo de criterios de búsqueda en cada solicitud.
Opciones de criterios de búsqueda adicionales
Rangos de números enteros (inclusivos)
"int_range_array" : { "int_ranges": { "start": "5", "end": "10" } "int_ranges": { "start": "20", "end": "30" } }
Rangos de números de punto flotante (inclusivos)
"float_range_array" : { "float_ranges": { "start": "2.6", "end": "14.3" } "float_ranges": { "start": "205.3", "end": "205.8" } }
Ubicaciones geográficas (coordenadas y radio)
"geo_location_array": { "circle_areas": { "latitude": "37.4221", "longitude": "122.0841", "radius_meter": "500" }, "circle_areas": { "latitude": "12.46523", "longitude": "-95.2146", "radius_meter": "100" } }
Booleanos
"bool_value" : { "value": "true" }
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Cuerpo JSON de la solicitud:
{ "page_size": "2", "content_time_ranges": { "date_time_ranges": { "start": { "year":"2018", "month":"1", "day":"1", }, "end": { "year":"2019", "month":"1", "day":"1", } }, "date_time_ranges": { "start": { "year":"2020", "month":"1", "day":"1", }, "end": { "year":"2021", "month":"1", "day":"1", } } }, "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:searchAssets"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:searchAssets" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Para recuperar la siguiente página de resultados, pasa los parámetros de solicitud originales con el next_page_token
que se muestra.
El array facet_results
muestra el contenido que coincide con la búsqueda original.
La respuesta anterior indica que una de las cámaras de seguridad está ubicada en una tienda de artículos deportivos, mientras que la otra está en una tienda de comestibles.
Para restringir esta consulta de modo que solo muestre el video de la tienda de comestibles, pasa la misma solicitud con una selección de faceta.
Cuerpo JSON de la solicitud con selección de facetas:
{ "page_size": "2", "content_time_ranges": { "date_time_ranges": { "start": { "year":"2018", "month":"1", "day":"1", }, "end": { "year":"2018", "month":"12", "day":"31", } }, "date_time_ranges": { "start": { "year":"2020", "month":"1", "day":"1", }, "end": { "year":"2020", "month":"12", "day":"31", } } }, "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "facet_selections": { "facetId": "state", "displayName": "State", "buckets": { "value": { "stringValue": "California" } }, "buckets": { "value": { "stringValue": "Pennsylvania" } }, "bucketType": "FACET_BUCKET_TYPE_VALUE" }, "facet_selections": { "facetId": "store-type", "displayName": "StoreType", "buckets": { "value": { "stringValue": "Sporting Goods" } }, "buckets": { "value": { "stringValue": "Grocery" }, "selected": "true" }, "bucketType": "FACET_BUCKET_TYPE_VALUE" } }
Debido a que se seleccionó la faceta Supermercado, cualquier respuesta contendrá la anotación "store-type":"Grocery"
.
Cómo mostrar metadatos de activos de clip durante la búsqueda
La API de Vertex AI Vision también permite a los usuarios especificar metadatos de clip adicionales para mostrar con el resultado de la búsqueda mediante result_annotation_keys
.
REST
En este ejemplo, la clave de anotación proporcionada por el usuario "camera-location"
se especifica en el cuerpo de la solicitud, y el valor de la clave ("Sunnyvale"
) se proporciona en la respuesta.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Cuerpo JSON de la solicitud:
{ "page_size": "2", "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "result_annotation_keys": "camera-location" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:searchAssets"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:searchAssets" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Usa criterios para mostrar metadatos de activos en la búsqueda
Puedes especificar en los criterios de búsqueda si deseas mostrar las anotaciones coincidentes para cada elemento de resultado de la búsqueda. Esta función es compatible con tipos de esquemas de datos limitados: INTEGER
, FLOAT
, BOOLEAN
, STRING
(solo EXACT_SEARCH
) y la anotación debe estar a nivel de la partición.
Supongamos que creas el siguiente esquema de datos en un corpus de almacén:
{ "key": "image-classification", "schema_details": { "type":"STRING", "granularity":"GRANULARITY_PARTITION_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } }
Algunas anotaciones de "image-classification"
se transfieren al corpus mediante la transferencia de videos ininterrumpidos o una solicitud CreateAnnotation
.
Una vez que se transfieran las anotaciones, puedes buscar "image-classification"
y obtener los resultados de los videos y sus anotaciones correspondientes:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Cuerpo JSON de la solicitud:
{ "page_size": "5", "facet_selections": { "facet_id": "image-classification", "fetch_matched_annotations": "true", "bucket_type": "FACET_BUCKET_TYPE_VALUE", "buckets": { "value": { "string_value": "cat" }, "selected" : "true" }, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:searchAssets"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:searchAssets" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Usa la búsqueda global para mostrar metadatos de activos en la búsqueda
La búsqueda global proporciona un lugar para que los usuarios ingresen búsquedas, en lugar de especificar criterios individuales. Puedes realizar búsquedas con criterios de tipo de cadena configurados para que se puedan buscar en su esquema de datos. Se recuperan y muestran los resultados que coinciden.
Para usar esta función, establece el campo search_query
en SearchAssetsRequest
:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Cuerpo JSON de la solicitud:
{ "page_size": "2", "search_query': "Pennsylvania" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:searchAssets"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:searchAssets" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Aplica la especificación de orden para ordenar los metadatos de los activos que se muestran en la búsqueda
Puedes usar la función de ordenamiento para ordenar los resultados de la búsqueda según el annotation
proporcionado por el usuario. Esto puede ser útil para ordenar los resultados con tipos de esquemas de datos que se pueden ordenar, como los tipos de cadenas y numéricos.
Para usar esta función, especifica schema_key_sorting_strategy
, que requiere al menos una clave de esquema de datos y un orden ascendente o descendente:
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Cuerpo JSON de la solicitud:
{ "page_size": "2", "schemaKeySortingStrategy": { "options": { "data_schema_key": "stream-display-name", "sort_decreasing": true } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:searchAssets"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:searchAssets" | Select-Object -Expand Content
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Crea parámetros de configuración de búsqueda
Vision Warehouse permite a los usuarios personalizar su experiencia de búsqueda mediante la configuración de la búsqueda. La configuración de búsqueda usa datos de video, como las anotaciones proporcionadas por el usuario y las estadísticas generadas por los Google Cloud modelos de comprensión de video, para proporcionarle al usuario opciones de búsqueda adicionales. Por ejemplo, si deseas segmentar clips con vehículos de un color específico a partir de los datos de videos de automóviles en tu almacén, puedes usar una configuración de búsqueda específica para tu consulta.
Puedes usar un SearchConfig
para establecer opciones de configuración más detalladas.
En el siguiente ejemplo, se muestra cómo crear un recurso SearchConfig
.
Lineamientos generales
En todos los casos de uso, tu solicitud debe cumplir con las siguientes condiciones para ejecutarse correctamente:
Request.search_configuration.name
no debe existir.- El array
mapped_fields
no debe estar vacío y debe asignarse a las claves de anotación existentes que proporciona el usuario. - Todos los
mapped_fields
deben ser del mismo tipo. - Todos los
mapped_fields
deben compartir la configuración de concordancia exacta o inteligente. - Todos los
mapped_fields
deben compartir el mismo nivel de detalle.
Existen varios casos de uso para crear un SearchConfig
, cada uno con lineamientos distintos que debes seguir.
Crea una configuración de búsqueda con criterios de búsqueda personalizados
En esta sección, se describe cómo asignar un operador personalizado a una o más claves de anotación proporcionadas por el usuario. En este caso, debes cumplir con los lineamientos generales cuando compilas tu solicitud.
REST
Debes especificar tu nuevo ID de SearchConfig
al final de la URL de la solicitud, no como un campo en la solicitud.
Las claves de anotación que proporciona el usuario en este ejemplo son "player"
, "coach"
y "cheerleader"
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
de destino. - El
SearchConfig
en este ejemplo esperson
.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person
Cuerpo JSON de la solicitud:
{ "search_criteria_property": { "mapped_fields": "player", "mapped_fields": "coach", "mapped_fields": "cheerleader", } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs?search_config_id=person"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs?search_config_id=person" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person", "searchCriteriaProperty": { "mappedFields": [ "player", "coach", "cheerleader" ] } }
Crea una configuración de búsqueda con asignación de facetas 1:1
Para crear un fragmento para una sola clave de anotación proporcionada por el usuario, debes asegurarte de que Request.search_configuration.facet_property.mapped_fields
contenga un solo elemento. El valor de este elemento debe ser un nombre de clave de anotación proporcionado por el usuario.
En el siguiente ejemplo, se muestra cómo crear una asignación de facetas para la clave de anotación "Location"
que proporciona el usuario.
REST
Debes especificar tu nuevo ID de SearchConfig
al final de la URL de la solicitud, no como un campo en la solicitud.
En este ejemplo, la solicitud se realiza correctamente porque search_config_id
(Location
) en la URL de solicitud hace referencia a una clave de anotación existente proporcionada por el usuario, y
mapped_fields
contiene exactamente un elemento con un valor igual a search_config_id
(Location
).
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
de destino. - El
SearchConfig
en este ejemplo esLocation
.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Cuerpo JSON de la solicitud:
{ "facet_property": { "mapped_fields": "Location", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs?search_config_id=Location"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
Las siguientes solicitudes fallan porque no cumplen con los requisitos necesarios.
Solicitudes con errores
Solicitud 1 que no se pudo realizar:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { "mapped_fields": "City", /* City is not equal to search_config_id. */ "display_name": "City", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Solicitud 2 que no se pudo realizar:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=City \ -d "{ "facet_property": { "mapped_fields": "City", /* City doesn't map to an existing user-given annotation key. */ "display_name": "City", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Solicitud 3 que no se pudo realizar:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { "mapped_fields": "Location", "mapped_fields": "City", /* mapped_fields contains more than 1 element. */ "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Crea una configuración de búsqueda con una asignación de facetas personalizada de 1:1 o más
Los clientes que quieran crear una asignación entre un valor de faceta personalizado y uno o más claves de anotación proporcionadas por el usuario deben asegurarse de que se cumpla lo siguiente:
Request.search_configuration
debe contener unSearchCriteriaProperty
de modo queRequest.search_configuration.search_criteria_property.mapped_fields
contenga los mismos elementos queRequest.search_configuration.facet_property.mapped_fields
.
REST
Debes especificar tu nuevo ID de SearchConfig
al final de la URL de la solicitud, no como un campo en la solicitud.
En el siguiente ejemplo, se muestra cómo crear una asignación de facetas para las claves de anotación proporcionadas por el usuario "City"
y "State"
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
de destino. - El
SearchConfig
en este ejemplo esLocation
.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Cuerpo JSON de la solicitud:
{ "search_criteria_property": { "mapped_fields": "City", "mapped_fields": "State", "mapped_fields": "Province", } "facet_property": { "mapped_fields": "City", "mapped_fields": "State", "display_name": "Province", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs?search_config_id=Location"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
Las siguientes solicitudes fallan porque no cumplen con los requisitos necesarios.
Solicitudes con errores
Solicitud 1 que no se pudo realizar:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "facet_property": { /* Request is missing a SearchCriteriaProperty object.*/ "mapped_fields": "City", "mapped_fields": "State", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Solicitud 2 que no se pudo realizar:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \ -d "{ "search_criteria_property": { "mapped_fields": "City", "mapped_fields": "State", } "facet_property": { "mapped_fields": "City", "mapped_fields": "State", "mapped_fields": "Province", /* Province is missing from search_criteria_property. */ "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }"
Crea una configuración de búsqueda con facetas basadas en rangos
Las facetas de rango son similares a las facetas normales, pero cada bucket de faceta abarca un período continuo. Una configuración adicional (range_facet_config
) le brinda al sistema información sobre estos rangos de buckets de facetas.
Las facetas de rango están disponibles para lo siguiente:
- Números enteros
- Fechas
Existen tres tipos de facetas de rango:
- Rango fijo: Cada bucket tiene el mismo tamaño.
- Rango personalizado: Tamaños de bucket programables. Por ejemplo, logarítmica.
- Período: Niveles de detalle fijos de los buckets de
DAY
,MONTH
yYEAR
. Esto solo se aplica a los componentes facetados de período.
Las mismas condiciones se aplican como facetas singulares, con alguna validación adicional en cuanto a la especificación del rango.
Especificación del bucket de rango fijo
En el siguiente ejemplo, se crea una especificación de faceta de rango fijo para el campo inventory-count
, lo que genera los buckets [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf]
.
REST
Debes especificar tu nuevo ID de SearchConfig
al final de la URL de la solicitud, no como un campo en la solicitud.
Esta solicitud usa FixedRangeBucketSpec
para crear varios buckets con niveles de detalle iguales.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
de destino. - El
SearchConfig
en este ejemplo esinventory-count
.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count
Cuerpo JSON de la solicitud:
{ "facet_property": { "mapped_fields": "inventory-count", "display_name": "Inventory Count", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_FIXED_RANGE", "fixed_range_bucket_spec": { "bucket_start": { "integer_value": 0 }, "bucket_granularity": { "integer_value": 10 }, "bucket_count": 5 } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs?search_config_id=inventory-count"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs?search_config_id=inventory-count" | Select-Object -Expand Content
Especificación del bucket de rango personalizado
En el siguiente ejemplo, se crea una especificación de faceta de rango fijo para el campo video-views
, lo que genera los buckets [inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf)
.
REST
Debes especificar tu nuevo ID de SearchConfig
al final de la URL de la solicitud, no como un campo en la solicitud.
Esta solicitud usa CustomRangeBucketSpec
para especificar cómo se agrupan los valores en buckets.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
de destino. - El
SearchConfig
en este ejemplo esvideo-views
.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views
Cuerpo JSON de la solicitud:
{ "facet_property": { "mapped_fields": "video-views", "display_name": "Video Views", "result_size": "6", "bucket_type":"FACET_BUCKET_TYPE_CUSTOM_RANGE", "custom_range_bucket_spec": { "endpoints": { "integer_value": 0 }, "endpoints": { "integer_value": 10 }, "endpoints": { "integer_value": 100 }, "endpoints": { "integer_value": 1000 }, "endpoints": { "integer_value": 10000 } } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs?search_config_id=video-views"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs?search_config_id=video-views" | Select-Object -Expand Content
Especificación del bucket de período
En el siguiente ejemplo, se crea una especificación de período para el campo film-date
con nivel de detalle DAY
.
REST
Debes especificar tu nuevo ID de SearchConfig
al final de la URL de la solicitud, no como un campo en la solicitud.
Esta solicitud usa DateTimeBucketSpec
para especificar cómo se agrupan los valores de fecha.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
de destino. - El
SearchConfig
en este ejemplo esfilm-date
.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date
Cuerpo JSON de la solicitud:
{ "facet_property": { "mapped_fields": "film-date", "display_name": "Film Date", "result_size": "5", "bucket_type": "FACET_BUCKET_TYPE_DATETIME", "datetime_bucket_spec": { "granularity": "DAY" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs?search_config_id=film-date"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs?search_config_id=film-date" | Select-Object -Expand Content
Usa selecciones de facetas para realizar búsquedas
Después de crear estos buckets de facetas, puedes usarlos para buscar en el almacén.
REST
Esta solicitud usa objetos facetSelections
para especificar un grupo de buckets de facetas.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT_NUMBER: Tu Google Cloud número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
Método HTTP y URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Cuerpo JSON de la solicitud:
{ "page_size": "10", "facet_selections": { "facet_id": "inventory-count", "buckets": { "range": { "end" : { "integer_value": 0 } } }, "buckets": { "range": { "start" : { "integer_value": 20 }, "end" : { "integer_value": 30 } } } }, "facet_selections": { "facet_id": "video-views", "buckets": { "range": { "start" : { "integer_value": 100 }, "end" : { "integer_value": 1000 } } } }, "facet_selections": { "facet_id": "film-date", "buckets": { "range": { "start" : { "datetime_value": { "year": 2022, "month": 9, "day": 10 } }, "end" : { "datetime_value": { "year": 2022, "month": 9, "day": 11 } } } } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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:searchAssets"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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:searchAssets" | Select-Object -Expand Content
Actualiza una configuración de búsqueda
Para actualizar el SearchConfig
actual, tu solicitud debe cumplir con los siguientes requisitos:
Request.searchConfig.name
ya debe existir.- La solicitud debe contener al menos un elemento
searchCriteriaProperty
ofacetProperty
no vacío. - El array
mappedFields
no debe estar vacío y debe asignarse a las claves de anotación existentes que proporciona el usuario. - Todos los
mappedFields
deben ser del mismo tipo. - Todos los
mappedFields
deben compartir el mismo nivel de detalle. - Todos los
mappedFields
deben compartir las mismas opciones de coincidencia semánticaSearchConfig
.
LÍNEA DE REST Y CMD
En el siguiente ejemplo de código, se actualiza un recurso de configuración de búsqueda de almacén con el método projects.locations.corpora.searchConfigs.patch
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- REGIONALIZED_ENDPOINT: El extremo puede incluir un prefijo que coincida con
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT: Tu Google Cloud ID o número de proyecto.
- LOCATION_ID: La región en la que usas Vertex AI Vision. Por ejemplo:
us-central1
,europe-west4
. Consulta las regiones disponibles. - CORPUS_ID: Es el ID de tu corpus de destino.
- SEARCHCONFIG_ID: Es el ID de tu
SearchConfig
de destino. "mappedFields"
: Una o más claves de anotación existentes proporcionadas por el usuario.
Método HTTP y URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID
Cuerpo JSON de la solicitud:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": "dataschema2" } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
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/searchConfigs/SEARCHCONFIG_ID"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$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/searchConfigs/SEARCHCONFIG_ID" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": [ "dataschema2" ] } }