Une fois que vous avez créé un entrepôt Vision, que vous l'avez ajouté à une application et que vous avez déployé l'application, vous pouvez rechercher les données stockées dans l'entrepôt de flux vidéo.
Rechercher des 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 situer.
Dans l'exemple suivant, prenons l'exemple d'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 pour les 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
: "California" et "Pennsylvania". 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ère de recherche dans chaque requête.
Options de critères de recherche supplémentaires
Plages d'entiers (incluses)
"int_range_array" : { "int_ranges": { "start": "5", "end": "10" } "int_ranges": { "start": "20", "end": "30" } }
Plages de valeurs flottantes (incluses)
"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" } }
Booléens
"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 auxquels est ajouté le next_page_token
renvoyé.
Le tableau facet_results
affiche le contenu qui correspond à la requête d'origine.
La réponse ci-dessus indique que l'une des caméras de sécurité est située dans un magasin d'articles de sport, tandis que l'autre est située dans une épicerie.
Pour limiter cette requête afin qu'elle n'affiche que les images du supermarché, 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 le facette Grocery (Épicerie) est sélectionnée, toute réponse contiendra l'annotation "store-type":"Grocery"
.
Renvoie 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 de clip supplémentaires à renvoyer avec le résultat de la recherche, à l'aide de result_annotation_keys
.
REST
Dans cet exemple, la clé d'annotation fournie par l'utilisateur "camera-location"
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 renvoyer les métadonnées des composants dans la recherche
Vous pouvez spécifier dans les critères de recherche s'il faut renvoyer les annotations correspondantes 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 composants dans les résultats de 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 faire l'objet d'une recherche dans leur schéma de données. Les résultats correspondants sont récupérés et vous sont renvoyés.
Pour utiliser cette fonctionnalité, définissez le champ search_query
dans 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 ordonner les métadonnées des composants renvoyés dans la recherche
Vous pouvez utiliser la fonctionnalité de tri pour trier les résultats de recherche par annotation
fourni par l'utilisateur. Cela peut être utile pour trier les résultats avec des types de schémas de données pouvant être ordonnés, tels que les types chaîne et numérique.
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 grâce à la configuration de la recherche. La configuration de la recherche utilise des données vidéo (telles que les annotations fournies par les utilisateurs et les insights générés par les modèles de compréhension des vidéos Google Cloud ) pour proposer des options de recherche supplémentaires aux utilisateurs. Par exemple, si vous souhaitez cibler des extraits avec des véhicules de couleur spécifique à partir de données vidéo de voiture dans 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 vous montre comment créer une ressource SearchConfig
.
Consignes générales
Pour tous les cas d'utilisation, votre demande doit remplir les conditions suivantes pour être exécutée avec succès :
Request.search_configuration.name
ne doit pas déjà exister.- Le tableau
mapped_fields
ne doit pas être vide et doit correspondre aux 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 même configuration de correspondance exacte/intelligente. - Tous les
mapped_fields
doivent partager la même précision.
Il existe plusieurs cas d'utilisation pour la création d'une SearchConfig
, chacun avec des consignes spécifiques 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 demande.
REST
Vous devez spécifier votre nouvel ID SearchConfig
à la fin de l'URL de la requête, et non en tant que champ dans 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 de facettes un à un
Pour créer un facette pour une seule clé d'annotation fournie par l'utilisateur, vous devez vous assurer que Request.search_configuration.facet_property.mapped_fields
contient un seul élément. La valeur de cet élément doit être un nom de clé d'annotation fourni par l'utilisateur.
L'exemple suivant montre comment créer un mappage 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 dans la requête.
Dans cet exemple, la requête aboutit, car le 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 demandes suivantes échouent, car elles ne répondent pas aux exigences nécessaires.
Requêtes ayant échoué
Échec de la 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" } }"
Échec de la 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" } }"
Requête ayant échoué 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 de facettes personnalisé (un-à-un 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 dans la requête.
L'exemple suivant vous montre comment créer un mappage de facettes pour les clés d'annotation fournies par l'utilisateur "City"
et "State"
.
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 demandes suivantes échouent, car elles ne répondent pas aux exigences nécessaires.
Requêtes ayant échoué
Échec de la 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" } }"
Échec de la 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 une plage
Les facettes de plage sont semblables aux facettes normales, mais chaque bucket de facette couvre une étendue continue. Une configuration supplémentaire (range_facet_config
) fournit au système des informations sur ces plages de buckets de facettes.
Les facettes de 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és de bucket fixes de
DAY
,MONTH
etYEAR
. Cela ne s'applique qu'aux facettes de plage de dates.
Les mêmes conditions s'appliquent aux 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 à plage fixe pour le champ inventory-count
, ce qui donne 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 dans la requête.
Cette requête utilise FixedRangeBucketSpec
pour créer plusieurs buckets avec des granularités égales.
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 des buckets de plage personnalisés
L'exemple suivant crée une spécification de facette à plage fixe pour le champ video-views
, ce qui donne 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 dans 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 précision de 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 dans la requête.
Cette requête utilise DateTimeBucketSpec
pour spécifier comment les valeurs de date 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
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
Utiliser des sélections d'attributs pour effectuer une recherche
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
Mettre à jour une configuration de recherche
Pour modifier le SearchConfig
actuel, votre demande doit répondre aux exigences suivantes :
Request.searchConfig.name
doit déjà exister.- La requête doit contenir au moins un
searchCriteriaProperty
oufacetProperty
non vide. - Le tableau
mappedFields
ne doit pas être vide et doit correspondre aux clés d'annotation 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 fournies 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" ] } }