Vous pouvez créer des datastores à partir de tables Cloud Storage de deux manières :
Ingestion ponctuelle : vous importez des données d'un dossier ou d'un fichier Cloud Storage dans un data store. Les données du data store ne changent pas, sauf si vous les actualisez manuellement.
Ingestion périodique : vous importez des données à partir d'un dossier ou d'un fichier Cloud Storage, et vous définissez une fréquence de synchronisation qui détermine la fréquence à laquelle le data store est mis à jour avec les données les plus récentes de cet emplacement Cloud Storage.
Le tableau suivant compare les deux façons d'importer des données Cloud Storage dans des datastores Gemini Enterprise.
| Ingestion unique | Ingestion périodique |
|---|---|
| Disponibilité générale (DG). | Version Preview publique. |
| Les données doivent être actualisées manuellement. | Les données sont automatiquement mises à jour tous les un, trois ou cinq jours. Les données ne peuvent pas être actualisées manuellement. |
| Gemini Enterprise crée un seul data store à partir d'un dossier ou d'un fichier dans Cloud Storage. | Gemini Enterprise crée un connecteur de données et lui associe un data store (appelé data store d'entité) pour le fichier ou le dossier spécifié. Chaque connecteur de données Cloud Storage peut avoir un seul data store d'entités. |
| Les données de plusieurs fichiers, dossiers et buckets peuvent être combinées dans un seul data store en ingérant d'abord les données d'un emplacement Cloud Storage, puis d'autres données d'un autre emplacement. | Comme l'importation manuelle de données n'est pas possible, les données d'un data store d'entités ne peuvent provenir que d'un seul fichier ou dossier Cloud Storage. |
| Le contrôle des accès aux sources de données est pris en charge. Pour en savoir plus, consultez Contrôle des accès aux sources de données. | Le contrôle des accès aux sources de données n'est pas disponible. Les données importées peuvent contenir des contrôles d'accès, mais ceux-ci ne seront pas respectés. |
| Vous pouvez créer un data store à l'aide de la consoleGoogle Cloud ou de l'API. | Vous devez utiliser la console pour créer des connecteurs de données et leurs datastores d'entités. |
| Compatible avec les CMEK. | Compatible avec les CMEK. |
Avant de commencer
Pour importer des données à partir d'un projet source Google Cloud différent du projetGoogle Cloud avec le data store Gemini Enterprise, attribuez les rôles IAM (Identity and Access Management) suivants au compte de serviceservice-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.comdans le projet contenant le data store Gemini Enterprise :
- Administrateur des objets de l'espace de stockage (
roles/storage.objectAdmin) - Lecteur des objets de l'espace de stockage (
roles/storage.objectViewer)
Importer une fois depuis Cloud Storage
Pour ingérer des données à partir de Cloud Storage, suivez la procédure ci-dessous pour créer un data store et ingérer des données à l'aide de la console Google Cloud ou de l'API.
Avant d'importer vos données, consultez Préparer les données pour l'ingestion.
Console
Pour ingérer des données à partir d'un bucket Cloud Storage à l'aide de la console, procédez comme suit :
Dans la console Google Cloud , accédez à la page Gemini Enterprise.
Accédez à la page Datastores.
Cliquez sur Créer un datastore.
Sur la page Sélectionner une source de données, sélectionnez Cloud Storage.
Dans la section Sélectionnez un dossier ou un fichier à importer, sélectionnez Dossier ou Fichier.
Cliquez sur Parcourir et choisissez les données que vous avez préparées pour l'ingestion, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement directement dans le champ
gs://.Sélectionnez le type de données que vous importez.
Cliquez sur Continuer.
Si vous effectuez une importation ponctuelle de données structurées :
Mappez les champs aux propriétés de clé.
S'il manque des champs importants dans le schéma, utilisez Ajouter un champ pour les ajouter.
Pour en savoir plus, consultez À propos de la détection et de la modification automatiques.
Cliquez sur Continuer.
Choisissez une région pour votre datastore.
Attribuez un nom à votre datastore
Facultatif : Si vous avez sélectionné des documents non structurés, vous pouvez sélectionner des options d'analyse et de segmentation pour vos documents. Pour comparer les analyseurs, consultez Analyser des documents. Pour en savoir plus sur la segmentation, consultez Segmenter des documents pour le RAG.
L'analyseur OCR et l'analyseur de mise en page peuvent entraîner des coûts supplémentaires. Consultez la page Tarifs des fonctionnalités Document AI.
Pour sélectionner un analyseur, développez Options de traitement des documents et spécifiez les options d'analyseur que vous souhaitez utiliser.
Cliquez sur Créer.
Pour vérifier l'état de l'ingestion, accédez à la page Datastores, puis cliquez sur le nom de votre datastore pour afficher des informations détaillées sur la page Données. Lorsque la colonne "État" de l'onglet Activité passe de En cours à Importation terminée, l'ingestion est terminée.
Selon la taille de vos données, l'ingestion peut prendre de quelques minutes à plusieurs heures.
REST
Pour créer un data store et ingérer des données à partir de Cloud Storage à l'aide de la ligne de commande, procédez comme suit :
Créer un datastore
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME", "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], "contentConfig": "CONTENT_REQUIRED", }'Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.DATA_STORE_ID: ID du data store que vous souhaitez créer. Cet ID ne peut contenir que des lettres minuscules, des chiffres, des traits de soulignement et des traits d'union.DATA_STORE_DISPLAY_NAME: nom à afficher du data store que vous souhaitez créer.
Facultatif : Pour configurer l'analyse des documents ou activer la segmentation des documents pour le RAG, spécifiez l'objet
documentProcessingConfiget incluez-le dans votre requête de création de data store. Nous vous recommandons de configurer un analyseur par OCR pour les PDF si vous ingérez des PDF numérisés. Pour savoir comment configurer les options d'analyse ou de segmentation, consultez Analyser et segmenter des documents.Importez des données depuis Cloud Storage.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "gcsSource": { "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"], "dataSchema": "DATA_SCHEMA", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.DATA_STORE_ID: ID du data store.INPUT_FILE_PATTERN: modèle de fichier dans Cloud Storage contenant vos documents.Pour les données structurées ou les données non structurées avec des métadonnées, un exemple de modèle de fichier d'entrée est
gs://<your-gcs-bucket>/directory/object.json, et un exemple de correspondance de modèle avec un ou plusieurs fichiers estgs://<your-gcs-bucket>/directory/*.json.Pour les documents non structurés, un exemple est
gs://<your-gcs-bucket>/directory/*.pdf. Chaque fichier correspondant au modèle devient un document.Si
<your-gcs-bucket>ne se trouve pas sousPROJECT_ID, vous devez accorder au compte de serviceservice-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.comles autorisations "Lecteur des objets de l'espace de stockage" pour le bucket Cloud Storage. Par exemple, si vous importez un bucket Cloud Storage du projet source "123" vers le projet de destination "456", accordez des autorisationsservice-456@gcp-sa-discoveryengine.iam.gserviceaccount.comsur le bucket Cloud Storage du projet "123".DATA_SCHEMA(facultatif) : Les valeurs sontdocument,custom,csvetcontent. La valeur par défaut estdocument.document: importez des données non structurées avec des métadonnées pour les documents non structurés. Chaque ligne du fichier doit respecter l'un des formats suivants. Vous pouvez définir l'ID de chaque document :{ "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }{ "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
custom: importez un fichier JSON pour les documents structurés. Les données sont organisées selon un schéma. Vous pouvez spécifier le schéma. Sinon, il est détecté automatiquement. Vous pouvez placer la chaîne JSON du document dans un format cohérent directement sur chaque ligne, et Gemini Enterprise génère automatiquement les ID de chaque document importé.content: importez des documents non structurés (PDF, HTML, DOC, TXT, PPTX). L'ID de chaque document est généré automatiquement en tant que 128 premiers bits de SHA256(GCS_URI) encodés sous forme de chaîne hexadécimale. Vous pouvez spécifier plusieurs formats de fichiers d'entrée, à condition que les fichiers correspondants ne dépassent pas la limite de 100 000 fichiers.csv: incluez une ligne d'en-tête dans votre fichier CSV, chaque en-tête étant mappé à un champ de document. Spécifiez le chemin d'accès au fichier CSV à l'aide du champinputUris.
ERROR_DIRECTORY(facultatif) : Un répertoire Cloud Storage pour les informations d'erreur concernant l'importation, par exemplegs://<your-gcs-bucket>/directory/import_errors. Google recommande de laisser ce champ vide pour permettre à Gemini Enterprise de créer automatiquement un répertoire temporaire.RECONCILIATION_MODE(facultatif) : Les valeurs sontFULLetINCREMENTAL. La valeur par défaut estINCREMENTAL. La spécification deINCREMENTALentraîne une actualisation incrémentielle des données de Cloud Storage vers votre data store. Cette opération effectue un upsert, qui ajoute de nouveaux documents et remplace les documents existants par des documents mis à jour portant le même ID. La spécification deFULLentraîne un rebasage complet des documents de votre data store. En d'autres termes, les documents nouveaux et mis à jour sont ajoutés à votre data store, et les documents qui ne se trouvent pas dans Cloud Storage sont supprimés de votre data store. Le modeFULLest utile si vous souhaitez supprimer automatiquement les documents dont vous n'avez plus besoin.AUTO_GENERATE_IDS(facultatif) : Spécifie si les ID de document doivent être générés automatiquement. Si la valeur est définie surtrue, les ID de document sont générés en fonction d'un hachage de la charge utile. Notez que les ID de document générés peuvent ne pas rester cohérents sur plusieurs importations. Si vous générez automatiquement des ID sur plusieurs importations, Google vous recommande vivement de définirreconciliationModesurFULLpour conserver des ID de document cohérents.Ne spécifiez
autoGenerateIdsque lorsquegcsSource.dataSchemaest défini surcustomoucsv. Sinon, une erreurINVALID_ARGUMENTest renvoyée. Si vous ne spécifiez pasautoGenerateIdsou si vous le définissez surfalse, vous devez spécifieridField. Sinon, l'importation des documents échoue.ID_FIELD(facultatif) : Spécifie les champs qui sont les ID de document. Pour les documents sources Cloud Storage,idFieldspécifie le nom dans les champs JSON qui sont des ID de document. Par exemple, si{"my_id":"some_uuid"}est le champ d'ID de document dans l'un de vos documents, spécifiez"idField":"my_id". Tous les champs JSON portant le nom"my_id"sont ainsi identifiés comme des ID de document.Ne spécifiez ce champ que si : (1)
gcsSource.dataSchemaest défini surcustomoucsv, et (2)auto_generate_idsest défini surfalseou n'est pas spécifié. Sinon, une erreurINVALID_ARGUMENTest renvoyée.Notez que le nom du champ JSON spécifié par
id_fielddoit être de type chaîne, comporter entre 1 et 63 caractères et être conforme à la norme RFC-1034. Sinon, l'importation des documents échoue.
Se connecter à Cloud Storage avec synchronisation périodique
Avant d'importer vos données, consultez Préparer les données pour l'ingestion.
La procédure suivante explique comment créer un connecteur de données qui associe un emplacement Cloud Storage à un connecteur de données Gemini Enterprise, et comment spécifier un dossier ou un fichier dans cet emplacement pour le datastore que vous souhaitez créer. Les datastores enfants de connecteurs de données sont appelés datastores d'entités.
Les données sont synchronisées régulièrement avec le data store d'entités. Vous pouvez spécifier une synchronisation quotidienne, tous les trois jours ou tous les cinq jours.
Console
Dans la console Google Cloud , accédez à la page Gemini Enterprise.
Accédez à la page Datastores.
Cliquez sur Créer un datastore.
Sur la page Source, sélectionnez Cloud Storage.
Sélectionnez le type de données que vous importez.
Cliquez sur Périodique.
Sélectionnez la fréquence de synchronisation, c'est-à-dire la fréquence à laquelle vous souhaitez que le connecteur Gemini Enterprise se synchronise avec l'emplacement Cloud Storage. Vous pourrez modifier la fréquence ultérieurement.
Dans la section Sélectionnez un dossier ou un fichier à importer, sélectionnez Dossier ou Fichier.
Cliquez sur Parcourir et choisissez les données que vous avez préparées pour l'ingestion, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement directement dans le champ
gs://.Cliquez sur Continuer.
Choisissez une région pour votre connecteur de données.
Attribuez un nom à votre connecteur de données.
Facultatif : si vous avez sélectionné des documents non structurés, vous pouvez sélectionner des options d'analyse et de segmentation pour vos documents. Pour comparer les analyseurs, consultez Analyser des documents. Pour en savoir plus sur la segmentation, consultez Segmenter des documents pour le RAG.
L'analyseur OCR et l'analyseur de mise en page peuvent entraîner des coûts supplémentaires.
Pour sélectionner un analyseur, développez Options de traitement des documents et spécifiez les options d'analyseur que vous souhaitez utiliser.
Cliquez sur Créer.
Vous avez maintenant créé un connecteur de données, qui synchronisera régulièrement les données avec l'emplacement Cloud Storage. Vous avez également créé un data store d'entités nommé
gcs_store.Pour vérifier l'état de l'ingestion, accédez à la page Datastores, puis cliquez sur le nom de votre connecteur de données pour afficher des informations détaillées sur la page Données.
Activité d'ingestion de données Lorsque la colonne "État" de l'onglet Activité d'ingestion de données passe de En cours à Réussie, la première ingestion est terminée.
Selon la taille de vos données, l'ingestion peut prendre de quelques minutes à plusieurs heures.
Une fois que vous avez configuré votre source de données et importé des données pour la première fois, les données sont synchronisées à partir de cette source à la fréquence que vous avez sélectionnée lors de la configuration. La première synchronisation a lieu environ une heure après la création du connecteur de données. La synchronisation suivante a lieu environ 24, 72 ou 120 heures plus tard.
Étapes suivantes
Pour associer votre data store à une application, créez une application et sélectionnez votre data store en suivant les étapes décrites dans Créer une application de recherche.
Pour prévisualiser l'apparence de vos résultats de recherche une fois votre application et votre datastore configurés, consultez Prévisualiser les résultats de recherche.