Vous pouvez mettre à jour les données structurées et non structurées avec des métadonnées du schéma compatibles avec un schéma.
Vous pouvez mettre à jour le schéma dans la Google Cloud console ou à l'aide de la
schemas.patch méthode d'API.
Pour mettre à jour le schéma, vous pouvez ajouter des champs, modifier les annotations indexables, pouvant faire l'objet d'une recherche et récupérables pour un champ, ou marquer un champ comme propriété clé, tel que title, uri et description.
Mettre à jour votre schéma
Vous pouvez mettre à jour votre schéma dans la Google Cloud console ou à l'aide de l'API.
Console
Pour mettre à jour un schéma dans la Google Cloud console, procédez comme suit :
Consultez la section Conditions requises et limites pour vérifier que la mise à jour de votre schéma est valide.
Si vous mettez à jour des annotations de champ (en définissant des champs comme indexables, récupérables, pouvant faire l'objet d'une recherche dynamique ou pouvant être complétés), consultez Configurer les paramètres de champ pour connaître les limites et les exigences de chaque type d'annotation.
Vérifiez que vous avez terminé l'ingestion des données. Sinon, il est possible que le schéma ne soit pas encore disponible pour être modifié.
Dans la Google Cloud console, accédez à la Gemini Enterprise page.
Dans le menu de navigation, cliquez sur Datastores.
Dans la colonne Nom, cliquez sur le data store dont vous souhaitez mettre à jour le schéma.
Cliquez sur l'onglet Schema (Schéma) pour afficher le schéma de vos données.
Cet onglet peut être vide si vous modifiez les champs pour la première fois.
Cliquez sur le bouton Modifier.
Mettez à jour votre schéma :
Mapper les propriétés clés : dans la colonne Key properties (Propriétés clés) de votre schéma, sélectionnez une propriété clé à laquelle mapper un champ. Par exemple, si un champ appelé
detailscontient toujours la description d'un document, mappez ce champ à la propriété clé Description.Modifier le nombre de dimensions (avancé) : vous pouvez modifier ce paramètre si vous utilisez des embeddings vectoriels personnalisés avec Gemini Enterprise. Consultez la section Utiliser des embeddings personnalisés dans la documentation de Vertex AI Search.
Modifier les annotations de champ : pour modifier les annotations d'un champ, cochez ou décochez le paramètre d'annotation du champ. Les annotations disponibles sont Récupérable, Indexable, Pouvant faire l'objet d'une recherche dynamique, Pouvant faire l'objet d'une recherche et Pouvant être complété. Certains paramètres de champ sont soumis à des limites. Consultez Configurer les paramètres de champ pour obtenir des descriptions et des exigences pour chaque type d'annotation.
Ajouter un champ : l'ajout de champs à votre schéma avant d'importer de nouveaux documents avec ces champs peut réduire le temps nécessaire à Gemini Enterprise pour réindexer vos données après l'importation.
Cliquez sur Add new fields (Ajouter des champs) pour développer cette section.
Cliquez sur add_box Add node (Ajouter un nœud) et spécifiez les paramètres du nouveau champ.
Pour indiquer un tableau, définissez Array (Tableau) sur Yes (Oui). Par exemple, pour ajouter un tableau de chaînes, définissez type sur
stringet Array (Tableau) surYes(Oui).
Cliquez sur Save (Enregistrer) pour appliquer les modifications apportées à votre schéma.
La modification du schéma déclenche la réindexation. Pour les datastores volumineux, la réindexation peut prendre plusieurs heures.
REST
Pour utiliser l'API afin de modifier votre schéma, procédez comme suit :
Consultez les sections Conditions requises et limites et Exemples de limites (REST uniquement) pour vérifier que les modifications apportées à votre schéma sont valides.
Pour modifier le schéma des datastores contenant des données non structurées avec des métadonnées, passez à l'étape 5 pour appeler la méthode
schema.patch.Si vous modifiez des annotations de champ (en définissant des champs comme indexables, récupérables, pouvant faire l'objet d'une recherche dynamique ou pouvant faire l'objet d'une recherche), consultez Configurer les paramètres de champ pour connaître les limites et les exigences de chaque type d'annotation.
Si vous modifiez un schéma détecté automatiquement, assurez-vous d'avoir terminé l'ingestion des données. Sinon, il est possible que le schéma ne soit pas encore disponible pour être modifié.
Recherchez l'ID de votre data store. Si vous disposez déjà de l'ID de votre data store, passez à l'étape suivante.
Dans la Google Cloud console, accédez à la page Gemini Enterprise, puis cliquez sur Datastores dans le menu de navigation.
Cliquez sur le nom de votre data store.
Sur la page Données de votre data store, obtenez l'ID du data store.
Utilisez la méthode d'API schemas.patch pour fournir votre nouveau schéma JSON en tant qu'objet JSON.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.DATA_STORE_ID: par l'ID du data store.JSON_SCHEMA_OBJECT: par votre nouveau schéma JSON en tant qu'objet JSON. Exemple :{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" } } }
Facultatif : consultez le schéma en suivant la procédure Afficher une définition de schéma.
C#
Avant d'essayer cet exemple, suivez les instructions de configuration pour C# décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Gemini Enterprise C#.
Pour vous authentifier auprès de Gemini Enterprise, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration Go décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'Go API Gemini Enterprise.
Pour vous authentifier auprès de Gemini Enterprise, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration Java décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'APIJava Gemini Enterprise.
Pour vous authentifier auprès de Gemini Enterprise, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration Python décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Python Gemini Enterprise.
Pour vous authentifier auprès de Gemini Enterprise, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Avant d'essayer cet exemple, suivez les instructions de configuration pour Ruby décrites dans le guide de démarrage rapide de Gemini Enterprise à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'Ruby API Gemini Enterprise.
Pour vous authentifier auprès de Gemini Enterprise, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Conditions requises et limites
Lorsque vous modifiez un schéma, assurez-vous que le nouveau schéma est rétrocompatible avec celui que vous modifiez. Pour modifier un schéma avec un nouveau schéma qui n'est pas rétrocompatible, vous devez supprimer tous les documents du data store, supprimer le schéma, puis en créer un.
La modification d'un schéma déclenche la réindexation de tous les documents. La réindexation d'un data store volumineux peut prendre plusieurs heures, voire plusieurs jours.
Les modifications de schéma ne sont pas compatibles avec les éléments suivants :
- Modifier un type de champ. Une modification de schéma n'est pas compatible avec la modification du type de champ. Par exemple, un champ mappé à
integerne peut pas être remplacé parstring. - Supprimer un champ. Une fois défini, un champ ne peut pas être supprimé. Vous pouvez continuer à ajouter des champs, mais vous ne pouvez pas supprimer un champ existant.
Exemples de limites (REST uniquement)
Cette section présente des exemples de types de modifications de schéma valides et non valides. Ces exemples utilisent le schéma JSON suivant :
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string",
"keyPropertyMapping": "description"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"keyPropertyMapping": "category"
}
}
}
}
Exemples de modifications acceptées
Les modifications suivantes apportées à l'exemple de schéma sont acceptées.
Ajouter un champ. Dans cet exemple, le champ
properties.uria été ajouté au schéma.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string", "keyPropertyMapping": "description" }, "uri": { // Added field. This is supported. "type": "string", "keyPropertyMapping": "uri" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }Ajouter ou supprimer des annotations de propriétés clés pour
title,descriptionouuri. Dans cet exemple,keyPropertyMappinga été ajouté au champtitle.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" // Added "keyPropertyMapping". This is supported. }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
Exemples de modifications de schéma non valides
Les modifications suivantes apportées à l'exemple de schéma ne sont pas acceptées.
Modifier un type de champ. Dans cet exemple, le champ
titlea été remplacé par "number" (nombre) au lieu de "string" (chaîne). Cette modification n'est pas acceptée.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "number" // Changed from string. Not allowed. }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }Supprimer un champ. Dans cet exemple, le champ
titlea été supprimé. Cette modification n'est pas acceptée.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { // "title" is removed. Not allowed. "description": { "type": "string", "keyPropertyMapping": "description" }, "uri": { "type": "string", "keyPropertyMapping": "uri" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
Étape suivante
- Afficher la définition de schéma pour les données structurées
- Supprimer un schéma pour les données structurées
- Afficher les résultats de recherche