Después de crear un almacén de Vision, agregarlo a una app y, luego, implementarla, puedes buscar los datos almacenados en el almacén de videos de transmisión.
Cómo buscar metadatos de videos de transmisión
Para buscar los datos (assets
) en tu almacén (corpus
), completa el campo SearchAssetsRequest
con el contenido que deseas encontrar. Este contenido se presenta en varios formatos diferentes:
criteria
: Es el contenido de texto, número o fecha que proporciona el usuario.facet_selections
: Es el contenido de texto que devuelve el servidor y que selecciona el usuario.content_time_ranges
: Son los períodos en los que debe incluirse todo el contenido devuelto.
En el siguiente ejemplo, considera un almacén que contiene grabaciones de cámaras de seguridad de diferentes tipos de tiendas en todo el país. Para recuperar todos los recursos 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 con el método projects.locations.corpora.searchAssets.
En este cuerpo de muestra, el campocriteria
usa valores de 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 criterio 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 flotación (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 el
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 del 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 la solicitud original anexados con el next_page_token
devuelto.
El array facet_results
muestra el contenido que coincidió 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á ubicada en una tienda de comestibles.
Para restringir esta búsqueda y mostrar solo el video de la tienda de comestibles, devuelve la misma solicitud con una selección de facetas.
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" } }
Dado que se seleccionó la faceta Grocery, cualquier respuesta contendrá la anotación "store-type":"Grocery"
.
Devuelve los metadatos de los recursos de clip cuando se realiza una búsqueda
La API de Vertex AI Vision también permite a los usuarios especificar metadatos de clips adicionales para que se muestren con el resultado de la búsqueda, a través de 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 el
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 del 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 devolver los metadatos de los activos en la búsqueda
En los criterios de búsqueda, puedes especificar si se deben devolver las anotaciones coincidentes para cada elemento del 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 ser 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 para "image-classification"
se incorporan al corpus a través de la incorporación de videos en transmisión o una solicitud de CreateAnnotation
.
Después de que se hayan procesado las anotaciones, puedes buscar "image-classification"
y obtener resultados de 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 el
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 del 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:
Usar la búsqueda global para mostrar los metadatos de los activos en la búsqueda
La búsqueda global proporciona un lugar para que los usuarios ingresen consultas de búsqueda, en lugar de especificar criterios individuales. Puedes realizar búsquedas con criterios de tipo cadena que estén configurados como aptos para la búsqueda en su esquema de datos. Se recuperan los resultados coincidentes y se te devuelven.
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 el
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 del 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 ordenamiento a los metadatos de los activos devueltos 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 numéricos y de cadena.
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 el
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 del 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 configuraciones de búsqueda
Vision Warehouse permite a los usuarios personalizar su experiencia de búsqueda a través de la configuración de búsqueda. La Configuración de la Búsqueda usa datos de video, como las anotaciones proporcionadas por el usuario y las estadísticas generadas por los modelos de comprensión de video de Google Cloud , para brindar opciones de búsqueda adicionales al usuario. Por ejemplo, si deseas segmentar clips con vehículos de colores específicos 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
Para 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 proporcionadas por el usuario. - Todos los
mapped_fields
deben ser del mismo tipo. - Todos los
mapped_fields
deben compartir la misma 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 compiles 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.
En este ejemplo, las claves de anotación proporcionadas por el usuario 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 el
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 del corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
objetivo. - 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 una asignación de facetas 1:1
Para crear una faceta 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 el nombre de una clave de anotación proporcionada por el usuario.
En el siguiente ejemplo, se muestra cómo crear una asignación de facetas para la clave de anotación proporcionada por el usuario "Location"
.
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 el 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 el
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 del corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
objetivo. - 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 fallida:
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 fallida:
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 fallida 3:
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 deseen crear una asignación entre un valor de faceta personalizado y una o más claves de anotación proporcionadas por el usuario deben asegurarse de 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 el
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 del corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
objetivo. - 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 fallida:
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 fallida:
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 intervalo continuo. Una configuración adicional (range_facet_config
) le brinda al sistema información sobre estos rangos de bucket 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.
- Intervalo personalizado: Tamaños de bucket programables. Por ejemplo, logarítmica.
- Período: Granularidades de bucket fijas de
DAY
,MONTH
yYEAR
. Esto solo se aplica a las facetas de período.
Se aplican las mismas condiciones que para las facetas singulares, con cierta validación adicional en relación con la especificación del rango.
Especificación de 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 discretizaciones: [-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 la misma granularidad.
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 el
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 del corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
objetivo. - 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 de un 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 el
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 del corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
objetivo. - 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 de bucket del intervalo de fecha y hora
En el siguiente ejemplo, se crea una especificación de rango de fechas para el campo film-date
con una granularidad de 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 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 el
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 del corpus de destino.
- SEARCHCONFIG: Es el nombre de tu
SearchConfig
objetivo. - 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
Cómo usar selecciones de facetas para buscar
Después de crear estos buckets de facetas, puedes usarlas para buscar en el almacén.
REST
En esta solicitud, se usan 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 el
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 del 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
searchCriteriaProperty
ofacetProperty
no vacío. - El array
mappedFields
no debe estar vacío y debe asignarse a las claves de anotación existentes proporcionadas por 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 muestra 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 el
LOCATION_ID
, comoeurope-west4-
. Obtén más información sobre los extremos regionalizados. - PROJECT: Tu Google Cloud ID del proyecto 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 del corpus de destino.
- SEARCHCONFIG_ID: Es el ID de tu
SearchConfig
objetivo. "mappedFields"
: Son 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" ] } }