Synchroniser depuis Cloud Storage

Vous pouvez créer des data stores à partir de tables Cloud Storage de deux manières :

  • Ingestion ponctuelle : vous importez des données depuis un dossier ou 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 méthodes d'importation des données Cloud Storage dans les data stores Gemini Enterprise.

Ingestion unique Ingestion périodique
Disponibilité générale Version Preview publique
Les données doivent être actualisées manuellement. Les données sont automatiquement mises à jour tous les jours, tous les trois jours ou tous les 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é entité) pour le fichier ou le dossier spécifié. Chaque connecteur de données Cloud Storage ne peut comporter qu'un seul data store'entités.
Vous pouvez combiner les données de plusieurs fichiers, dossiers et buckets dans un seul data store en ingérant d'abord les données d'un emplacement Cloud Storage, puis d'un autre. Étant donné que l'importation manuelle de données n'est pas prise en charge, 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 disponible. 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 data stores d'entités.
compatible avec les CMEK. compatible avec les CMEK.

Importer une seule fois depuis Cloud Storage

Pour ingérer des données depuis 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 :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Accédez à la page Datastores.

  3. Cliquez sur Créer un datastore.

  4. Sur la page Sélectionner une source de données, sélectionnez Cloud Storage.

  5. Dans la section Sélectionnez un dossier ou un fichier à importer, sélectionnez Dossier ou Fichier.

  6. Cliquez sur Parcourir, sélectionnez 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://.

  7. Sélectionnez le type de données que vous importez.

  8. Cliquez sur Continuer.

  9. Si vous effectuez un import ponctuel de données structurées :

    1. Mappez les champs sur les propriétés clés.

    2. Si des champs importants manquent 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.

    3. Cliquez sur Continuer.

  10. Choisissez une région pour votre datastore.

  11. Attribuez un nom à votre datastore

  12. Facultatif : Si vous avez sélectionné des documents non structurés, vous pouvez choisir des options d'analyse et de segmentation pour vos documents. Pour comparer les analyseurs, consultez Analyser des documents. Pour en savoir plus sur le découpage, consultez Découper les documents pour la 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.

  13. Cliquez sur Créer.

  14. 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 ou plusieurs heures.

REST

Pour créer un data store et ingérer des données depuis Cloud Storage à l'aide de la ligne de commande, procédez comme suit.

  1. 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 le découpage des documents pour la RAG, spécifiez l'objet documentProcessingConfig et incluez-le dans votre demande de création de data store. Nous vous recommandons de configurer un analyseur 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.

  2. 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 non structurées avec 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 modèle correspondant à un ou plusieurs fichiers est gs://<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 sous PROJECT_ID, vous devez accorder au compte de service service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com les autorisations "Lecteur des objets Storage" 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 les autorisations service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com sur le bucket Cloud Storage du projet "123".

    • DATA_SCHEMA (facultatif) : Les valeurs sont document, custom, csv et content. La valeur par défaut est document.

      • 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 le 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. Gemini Enterprise génère automatiquement les ID pour 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 et correspond aux 128 premiers bits de SHA256(GCS_URI) encodés sous forme de chaîne hexadécimale. Vous pouvez spécifier plusieurs modèles 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 associé à un champ de document. Spécifiez le chemin d'accès au fichier CSV à l'aide du champ inputUris.

    • ERROR_DIRECTORY (facultatif) : Un répertoire Cloud Storage contenant des informations sur les erreurs d'importation (par exemple, gs://<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 sont FULL et INCREMENTAL. La valeur par défaut est INCREMENTAL. Si vous spécifiez INCREMENTAL, les données seront actualisées de manière incrémentielle depuis Cloud Storage vers votre data store. Cette opération d'upsert ajoute de nouveaux documents et remplace les documents existants par des documents mis à jour portant le même ID. Si vous spécifiez FULL, les documents de votre data store seront entièrement rebasés. En d'autres termes, les documents nouveaux et modifiés sont ajoutés à votre data store, et les documents qui ne se trouvent pas dans Cloud Storage en sont supprimés. Le mode FULL est utile si vous souhaitez supprimer automatiquement les documents dont vous n'avez plus besoin.

    • AUTO_GENERATE_IDS (facultatif) : Indique si les ID de document doivent être générés automatiquement. Si la valeur est définie sur true, 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 lors de plusieurs importations. Si vous générez automatiquement des ID lors de plusieurs importations, Google vous recommande vivement de définir reconciliationMode sur FULL pour conserver des ID de document cohérents.

      Spécifiez autoGenerateIds uniquement lorsque gcsSource.dataSchema est défini sur custom ou csv. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée. Si vous ne spécifiez pas autoGenerateIds ou si vous le définissez sur false, vous devez spécifier idField. Sinon, l'importation des documents échouera.

    • ID_FIELD (facultatif) : Spécifie les champs qui correspondent aux ID de document. Pour les documents sources Cloud Storage, idField spé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". Cela identifie tous les champs JSON portant le nom "my_id" comme ID de document.

      Spécifiez ce champ uniquement lorsque (1) gcsSource.dataSchema est défini sur custom ou csv, et (2) auto_generate_ids est défini sur false ou n'est pas spécifié. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

      Notez que le nom du champ JSON spécifié par id_field doit être de type chaîne, doit comporter entre 1 et 63 caractères, et doit être conforme à la norme RFC-1034. Sinon, l'importation des documents échouera.

Se connecter à Cloud Storage avec une synchronisation périodique

Avant d'importer vos données, consultez Préparer les données pour l'ingestion.

La procédure suivante décrit 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 data store que vous souhaitez créer. Les data stores enfants des connecteurs de données sont appelés data stores d'entités.

Les données sont synchronisées périodiquement avec le data store d'entités. Vous pouvez spécifier une synchronisation quotidienne, tous les trois jours ou tous les cinq jours.

Console

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Accédez à la page Datastores.

  3. Cliquez sur Créer un datastore.

  4. Sur la page Source, sélectionnez Cloud Storage.

  5. Sélectionnez le type de données que vous importez.

  6. Cliquez sur Périodique.

  7. 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.

  8. Dans la section Sélectionnez un dossier ou un fichier à importer, sélectionnez Dossier ou Fichier.

  9. Cliquez sur Parcourir, sélectionnez 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://.

  10. Cliquez sur Continuer.

  11. Choisissez une région pour votre connecteur de données.

  12. Attribuez un nom à votre connecteur de données.

  13. Facultatif : Si vous avez sélectionné des documents non structurés, vous pouvez choisir des options d'analyse et de segmentation pour vos documents. Pour comparer les analyseurs, consultez Analyser des documents. Pour en savoir plus sur le découpage, consultez Découper les documents pour la 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.

  14. Cliquez sur Créer.

    Vous avez créé un connecteur de données qui synchronise régulièrement les données avec l'emplacement Cloud Storage. Vous avez également créé un data store d'entités nommé gcs_store.

  15. 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.

    Onglet 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 de cette source sont synchronisées à 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 prochaine synchronisation a lieu environ 24, 72 ou 120 heures plus tard.

Étapes suivantes