Un entrepôt Vision connecté (corpus
) dans une application déployée qui ingère des données comporte un ou plusieurs objets multimédias assets
. Vous pouvez fournir plus de détails sur ces objets multimédias assets
avec les ressources dataSchema
et annotation
fournies par l'utilisateur.
Les ressources de schéma de données doivent être créées avant de pouvoir créer une ressource annotation
avec cette clé de schéma de données. Une fois que vous avez créé des schémas de données (ressources dataSchema
) pour indiquer à l'API Vertex AI Vision comment interpréter les annotations de contenu multimédia, vous pouvez créer des ressources annotation
pour le contenu multimédia dans un entrepôt.
Créer un schéma de données (API)
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.
- DATASCHEMA_KEY : cette clé doit correspondre à la clé d'une annotation spécifiée par l'utilisateur et être unique dans un
corpus
. Par exemple,data-key
. - ANNOTATION_DATA_TYPE : type de données de l'annotation. Les valeurs disponibles sont les suivantes :
DATA_TYPE_UNSPECIFIED
INTEGER
FLOAT
STRING
DATETIME
GEO_COORDINATE
PROTO_ANY
BOOLEAN
Pour en savoir plus, consultez la documentation de référence sur les API.
- ANNOTATION_GRANULARITY : précision des annotations sous ce
dataSchema
. Les valeurs disponibles sont les suivantes :GRANULARITY_UNSPECIFIED
: précision non spécifiée.GRANULARITY_ASSET_LEVEL
: précision au niveau du composant (les annotations ne doivent pas contenir d'informations sur la partition temporelle pour le composant multimédia).GRANULARITY_PARTITION_LEVEL
: précision au niveau de la partition (les annotations doivent contenir des informations sur la partition temporelle pour le contenu multimédia).
- SEARCH_STRATEGY : l'une des valeurs d'énumération disponibles. Types de stratégies de recherche à appliquer à la clé d'annotation. Les valeurs disponibles sont les suivantes :
NO_SEARCH
EXACT_SEARCH
SMART_SEARCH
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
Corps JSON de la requête :
{ "key": "DATASCHEMA_KEY", "schema_details": { "type": "ANNOTATION_DATA_TYPE", "granularity": "ANNOTATION_GRANULARITY", "search_strategy": { "search_strategy_type": "SEARCH_STRATEGY" } } }
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/dataSchemas"
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/dataSchemas" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "data-key", "schemaDetails": { "type": "BOOLEAN", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "search_strategy_type": "EXACT_SEARCH" } } }
Mettre à jour le schéma de données (API)
API REST et ligne de commande
Le code suivant met à jour un dataSchema
à l'aide de la méthode projects.locations.corpora.dataSchemas.patch
.
Cet exemple utilise ?updateMask=schemaDetails.type,schemaDetails.granularity
dans l'URL de la requête et inclut de nouvelles valeurs schemaDetails.type
et schemaDetails.granularity
dans le corps de la requête pour mettre à jour le schéma de données.
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.
- DATASCHEMA_ID : ID de votre schéma de données cible.
?updateMask=fieldToUpdate
: l'un des champs disponibles auxquels vous pouvez appliquer unupdateMask
. Spécifiez la nouvelle valeur de champ correspondante dans le corps de la requête. Cette nouvelle valeur remplace la valeur de champ existante. Champs disponibles :- Clé :
?updateMask=key
- Type de schéma :
?updateMask=schemaDetails.type
- Précision du schéma :
?updateMask=schemaDetails.granularity
- Type de stratégie de recherche de schéma :
?updateMask=schemaDetails.searchStrategy.searchStrategyType
- Mettez à jour tous les champs :
?updateMask=*
- Clé :
Méthode HTTP et URL :
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity
Corps JSON de la requête :
{ "key": "original-data-key", "schemaDetails": { "type":"INTEGER", "granularity":"GRANULARITY_PARTITION_LEVEL" "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity"
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/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "original-data-key", "schemaDetails": { "type": "INTEGER", "granularity": "GRANULARITY_PARTITION_LEVEL", "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
Ajouter un schéma de données structurées personnalisé
La structure personnalisée permet aux utilisateurs de définir des conteneurs plus complexes pour stocker des valeurs et fournir une fonctionnalité de recherche. Pour utiliser cette fonctionnalité, le schéma de données doit être défini. Par exemple :
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/dataSchemas
Corps JSON de la requête :
{ "key": "person", "schema_details" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
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/dataSchemas"
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/dataSchemas" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "person", "schemaDetails" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
Après quoi, nous pouvons insérer des annotations
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.
- ASSET_ID : ID de votre élément cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Corps JSON de la requête :
{ "user_specified_annotation" : { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.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/assets/ASSET_ID/annotations"
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/assets/ASSET_ID/annotations" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID", "userSpecifiedAnnotation": { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
Une fois l'annotation indexée, une requête de recherche peut être émise comme suit :
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, "criteria": { "field": "person.name", "text_array": { "txt_values": "John" }, }, }
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 :
Modifier les détails du schéma de l'entrepôt (console)
Les champs de schéma sont générés à partir des modèles via les applications. Vous pouvez également ajouter des champs personnalisés.
Une fois que vous avez modifié les champs pouvant être utilisés pour la création de facettes, vous pouvez les utiliser pour rechercher dans votre entrepôt.
Console
Ouvrez l'onglet Entrepôts du tableau de bord Vertex AI Vision.
Recherchez l'entrepôt de votre choix, puis sélectionnez son nom. La page Détails de l'entrepôt s'affiche.
Sélectionnez les champs que vous souhaitez activer pour la recherche.