Une fois que vous avez créé un entrepôt Vision, l'avez ajouté à une application et déployé l'application, vous pouvez rechercher les données stockées dans l'entrepôt de vidéos en streaming.
Rechercher dans les métadonnées de vidéos en streaming
Pour rechercher des données (assets
) dans votre entrepôt (corpus
), renseignez SearchAssetsRequest
avec le contenu que vous souhaitez trouver. Ce contenu se présente sous différents formats:
criteria
: contenu textuel, numérique ou de date fourni par l'utilisateur.facet_selections
: contenu textuel renvoyé par le serveur et sélectionné par l'utilisateur.content_time_ranges
: plages de dates dans lesquelles tous les contenus renvoyés doivent se trouver.
Dans l'exemple suivant, imaginons un entrepôt contenant des images de caméras de sécurité de différents types de magasins à travers le pays. Pour récupérer tous les composants des années 2018 ou 2020 tagués avec l'annotation "state": "California"
ou l'annotation "state":"Pennsylvania"
, envoyez la requête suivante:
REST
Pour rechercher des composants, envoyez une requête POST à l'aide de la méthode projects.locations.corpora.searchAssets.
Dans cet exemple de corps, le champcriteria
utilise des valeurs textArray
pour fournir deux txt_values
: "Californie" et "Pennsylvanie". Vous pouvez également fournir des critères de recherche pour d'autres types de données. Vous ne pouvez spécifier qu'un seul type de critères de recherche dans chaque requête.
Autres options de critères de recherche
Plages d'entiers (inclusives)
"int_range_array" : { "int_ranges": { "start": "5", "end": "10" } "int_ranges": { "start": "20", "end": "30" } }
Plages de nombres à virgule flottante (inclusives)
"float_range_array" : { "float_ranges": { "start": "2.6", "end": "14.3" } "float_ranges": { "start": "205.3", "end": "205.8" } }
Géolocalisations (coordonnées et rayon)
"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" } }
Valeurs booléennes
"bool_value" : { "value": "true" }
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "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" } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Pour récupérer la page de résultats suivante, transmettez les paramètres de requête d'origine suivis du next_page_token
renvoyé.
Le tableau facet_results
affiche le contenu correspondant à la requête d'origine.
La réponse ci-dessus indique qu'une des caméras de sécurité est installée dans un magasin d'articles de sport, tandis que l'autre est installée dans un supermarché.
Pour limiter cette requête à la seule vidéo de l'épicerie, renvoyez la même requête avec une sélection de facettes.
Corps JSON de la requête avec sélection de facettes:
{ "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" } }
Étant donné que la facette Épicerie est sélectionnée, toute réponse contiendra l'annotation "store-type":"Grocery"
.
Renvoyer les métadonnées des composants de clip lors d'une recherche
L'API Vertex AI Vision permet également aux utilisateurs de spécifier des métadonnées d'extrait supplémentaires à renvoyer avec le résultat de recherche, à l'aide de result_annotation_keys
.
REST
Dans cet exemple, la clé d'annotation "camera-location"
fournie par l'utilisateur est spécifiée dans le corps de la requête, et la valeur de la clé ("Sunnyvale"
) est fournie dans la réponse.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "page_size": "2", "criteria": { "field": "state", "text_array": { "txt_values": "California", "txt_values": "Pennsylvania" } }, "result_annotation_keys": "camera-location" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Utiliser des critères pour afficher les métadonnées des éléments dans la recherche
Dans les critères de recherche, vous pouvez spécifier si les annotations correspondantes doivent être renvoyées pour chaque élément de résultat de recherche. Cette fonctionnalité est compatible avec un nombre limité de types de schémas de données: INTEGER
, FLOAT
, BOOLEAN
, STRING
(EXACT_SEARCH
uniquement). L'annotation doit être au niveau de la partition.
Supposons que vous créiez le schéma de données suivant dans un corpus d'entrepôt:
{ "key": "image-classification", "schema_details": { "type":"STRING", "granularity":"GRANULARITY_PARTITION_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } }
Certaines annotations pour "image-classification"
sont ingérées dans le corpus à l'aide de l'ingestion de vidéos en streaming ou d'une requête CreateAnnotation
.
Une fois les annotations ingérées, vous pouvez rechercher "image-classification"
et obtenir les résultats vidéo et leurs annotations correspondantes:
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "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" }, } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Utiliser la recherche globale pour afficher les métadonnées des éléments dans la recherche
La recherche globale permet aux utilisateurs de saisir des requêtes de recherche au lieu de spécifier des critères individuels. Vous pouvez effectuer des recherches en fonction de critères de type chaîne définis comme pouvant être recherchés dans le schéma de données. Les résultats correspondants sont récupérés et renvoyés.
Pour utiliser cette fonctionnalité, définissez le champ search_query
de SearchAssetsRequest
:
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "page_size": "2", "search_query': "Pennsylvania" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
Appliquer une spécification de tri pour trier les métadonnées des éléments renvoyés dans la recherche
Vous pouvez utiliser la fonctionnalité de tri pour trier les résultats de recherche en fonction des annotation
fournies par l'utilisateur. Cela peut être utile pour trier les résultats avec des types de schémas de données pouvant être triés, tels que les types de chaîne et de nombre.
Pour utiliser cette fonctionnalité, spécifiez schema_key_sorting_strategy
, qui nécessite au moins une clé de schéma de données et un ordre croissant/décroissant:
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "page_size": "2", "schemaKeySortingStrategy": { "options": { "data_schema_key": "stream-display-name", "sort_decreasing": true } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.
Créer des configurations de recherche
Vision Warehouse permet aux utilisateurs de personnaliser leur expérience de recherche via la configuration de la recherche. La configuration de la recherche utilise des données vidéo, telles que les annotations fournies par l'utilisateur et les insights générés par les Google Cloud modèles de compréhension vidéo, pour fournir à l'utilisateur des options de recherche supplémentaires. Par exemple, si vous souhaitez cibler des extraits avec des véhicules de couleur spécifique à partir des données vidéo sur les voitures de votre entrepôt, vous pouvez utiliser une configuration de recherche spécifique pour votre requête.
Vous pouvez utiliser un SearchConfig
pour définir des options de configuration plus précises.
L'exemple suivant montre comment créer une ressource SearchConfig
.
Consignes générales
Pour tous les cas d'utilisation, votre requête doit remplir les conditions suivantes pour s'exécuter correctement:
Request.search_configuration.name
ne doit pas déjà exister.- Le tableau
mapped_fields
ne doit pas être vide et doit correspondre à des clés d'annotation existantes fournies par l'utilisateur. - Tous les
mapped_fields
doivent être du même type. - Tous les
mapped_fields
doivent partager la configuration de la correspondance exacte/intelligente. - Tous les
mapped_fields
doivent partager la même précision.
La création d'une SearchConfig
peut s'appliquer à plusieurs cas d'utilisation, chacun d'eux étant associé à des consignes distinctes que vous devez suivre.
Créer une configuration de recherche avec des critères de recherche personnalisés
Cette section explique comment mapper un opérateur personnalisé à une ou plusieurs clés d'annotation fournies par l'utilisateur. Dans ce cas, vous devez respecter les consignes générales lorsque vous créez votre requête.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ de la requête.
Dans cet exemple, les clés d'annotation fournies par l'utilisateur sont "player"
, "coach"
et "cheerleader"
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG: nom de votre
SearchConfig
cible. - Dans cet exemple,
SearchConfig
estperson
.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person
Corps JSON de la requête :
{ "search_criteria_property": { "mapped_fields": "player", "mapped_fields": "coach", "mapped_fields": "cheerleader", } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person", "searchCriteriaProperty": { "mappedFields": [ "player", "coach", "cheerleader" ] } }
Créer une configuration de recherche avec un mappage des facettes en 1:1
Pour créer une facette pour une seule clé d'annotation donnée par l'utilisateur, vous devez vous assurer que Request.search_configuration.facet_property.mapped_fields
ne contient qu'un seul élément. La valeur de cet élément doit être un nom de clé d'annotation donné par l'utilisateur.
L'exemple suivant montre comment créer une mise en correspondance de facettes pour la clé d'annotation "Location"
fournie par l'utilisateur.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ de la requête.
Dans cet exemple, la requête aboutit, car search_config_id
(Location
) dans l'URL de la requête fait référence à une clé d'annotation existante fournie par l'utilisateur, et
mapped_fields
contient exactement un élément dont la valeur est égale à search_config_id
(Location
).
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG: nom de votre
SearchConfig
cible. - Dans cet exemple,
SearchConfig
estLocation
.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Corps JSON de la requête :
{ "facet_property": { "mapped_fields": "Location", "display_name": "Location", "result_size": "5", "bucket_type":"FACET_BUCKET_TYPE_VALUE" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Les requêtes suivantes échouent, car elles ne répondent pas aux exigences requises.
Requêtes ayant échoué
Demande 1:
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" } }"
Demande 2:
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" } }"
Échec de la requête 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" } }"
Créer une configuration de recherche avec un mappage personnalisé de 1:1 ou plus
Les clients qui souhaitent créer un mappage entre une valeur de facette personnalisée et une ou plusieurs clés d'annotation fournies par l'utilisateur doivent s'assurer que:
Request.search_configuration
doit contenir unSearchCriteriaProperty
tel queRequest.search_configuration.search_criteria_property.mapped_fields
contienne les mêmes éléments queRequest.search_configuration.facet_property.mapped_fields
.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ de la requête.
L'exemple suivant montre comment créer un mappage de facettes pour les clés d'annotation "City"
et "State"
fournies par l'utilisateur.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG: nom de votre
SearchConfig
cible. - Dans cet exemple,
SearchConfig
estLocation
.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location
Corps JSON de la requête :
{ "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" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Les requêtes suivantes échouent, car elles ne répondent pas aux exigences requises.
Requêtes ayant échoué
Demande 1:
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" } }"
Demande 2:
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" } }"
Créer une configuration de recherche avec des facettes basées sur des plages
Les facettes de plage sont semblables aux facettes normales, mais chaque bucket de facette couvre une plage continue. Une configuration supplémentaire (range_facet_config
) fournit au système des informations sur ces plages de buckets de facettes.
Les attributs de la plage sont disponibles pour:
- Entiers
- Dates
Il existe trois types de facettes de plage:
- Plage fixe : chaque bucket a la même taille.
- Plage personnalisée : tailles de bin programmables. (par exemple, logarithmique).
- Plage de dates : granularité de bucket fixe de
DAY
,MONTH
etYEAR
. Cela ne s'applique qu'aux facettes de plage de dates.
Les mêmes conditions s'appliquent en tant que facettes uniques, avec une validation supplémentaire concernant la spécification de la plage.
Spécification de bucket à plage fixe
L'exemple suivant crée une spécification de facette de plage fixe pour le champ inventory-count
, et génère les buckets suivants : [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf]
.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ de la requête.
Cette requête utilise FixedRangeBucketSpec
pour créer plusieurs buckets avec une granularité égale.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG: nom de votre
SearchConfig
cible. - Dans cet exemple,
SearchConfig
estinventory-count
.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count
Corps JSON de la requête :
{ "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 } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Spécification du bucket de plage personnalisée
L'exemple suivant crée une spécification de facette de plage fixe pour le champ video-views
, et génère les buckets suivants : [inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf)
.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ de la requête.
Cette requête utilise CustomRangeBucketSpec
pour spécifier comment les valeurs sont divisées en buckets.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG: nom de votre
SearchConfig
cible. - Dans cet exemple,
SearchConfig
estvideo-views
.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views
Corps JSON de la requête :
{ "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 } } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Spécification de bucket de plage de dates / heures
L'exemple suivant crée une spécification de plage de dates pour le champ film-date
avec une granularité DAY
.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ de la requête.
Cette requête utilise DateTimeBucketSpec
pour spécifier comment les valeurs de date sont réparties en buckets.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG: nom de votre
SearchConfig
cible. - Dans cet exemple,
SearchConfig
estfilm-date
.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date
Corps JSON de la requête :
{ "facet_property": { "mapped_fields": "film-date", "display_name": "Film Date", "result_size": "5", "bucket_type": "FACET_BUCKET_TYPE_DATETIME", "datetime_bucket_spec": { "granularity": "DAY" } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Effectuer une recherche à l'aide de sélections de facettes
Une fois ces buckets de facettes créés, vous pouvez les utiliser pour effectuer des recherches dans l'entrepôt.
REST
Cette requête utilise des objets facetSelections
pour spécifier un groupe de buckets de facettes.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER: numéro de votre projet Google Cloud.
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
Corps JSON de la requête :
{ "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 } } } } } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Modifier une configuration de recherche
Pour mettre à jour l'SearchConfig
actuelle, votre demande doit remplir les conditions suivantes:
Request.searchConfig.name
doit déjà exister.- La requête doit contenir au moins un élément
searchCriteriaProperty
oufacetProperty
non vide. - Le tableau
mappedFields
ne doit pas être vide et doit correspondre aux clés d'annotation existantes fournies par l'utilisateur. - Tous les
mappedFields
doivent être du même type. - Tous les
mappedFields
doivent partager la même précision. - Tous les
mappedFields
doivent partager les mêmes options de correspondance sémantiqueSearchConfig
.
API REST et ligne de commande
L'exemple de code suivant met à jour une ressource de configuration de recherche dans l'entrepôt à l'aide de la méthode projects.locations.corpora.searchConfigs.patch
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT: le point de terminaison peut inclure un préfixe correspondant à
LOCATION_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT: ID ou numéro de votre projet. Google Cloud
- LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple:
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID: ID de votre corpus cible.
- SEARCHCONFIG_ID: ID de votre
SearchConfig
cible. "mappedFields"
: une ou plusieurs clés d'annotation existantes définies par l'utilisateur.
Méthode HTTP et URL :
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID
Corps JSON de la requête :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": "dataschema2" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
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
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1", "searchCriteriaProperty": { "mappedFields": [ "dataschema2" ] } }