Importer depuis Cloud Storage

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

  • Ingestion unique : 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 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 Aperçu public
Les données doivent être actualisées manuellement. Les données sont mises à jour automatiquement 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 ne peut avoir qu'un seul data store d'entité.
Les données provenant 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. L'importation manuelle de données n'étant pas acceptée, les données d'un data store d'entité ne peuvent provenir que d'un seul fichier ou dossier Cloud Storage.
Le contrôle des accès aux sources de données est accepté. 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 accepté. Les données importées peuvent contenir des contrôles d'accès, mais ils ne seront pas respectés.
Vous pouvez créer un data store à l'aide de la Google Cloud console ou de l'API. Vous devez utiliser la console pour créer des connecteurs de données et leurs datastores d'entité.
Conforme à CMEK Conforme à CMEK

Avant de commencer

Pour importer des données à partir d'un projet Google Cloud source différent du Google Cloud projet contenant le data store Gemini Enterprise, accordez les rôles Identity and Access Management (IAM) suivants au service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com compte de service dans le projet contenant le data store Gemini Enterprise :

Importer une seule fois depuis Cloud Storage

Pour ingérer des données depuis Cloud Storage, suivez les étapes ci-dessous pour créer un data store et ingérer des données à l'aide de la Google Cloud console ou de l'API.

Avant d'importer vos données, consultez Préparer les données à ingérer.

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 Google Cloud console, accédez à la Gemini Enterprise page.

    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 directement l'emplacement dans le champ gs://.

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

  8. Cliquez sur Continuer.

  9. Si vous effectuez une importation unique de données structurées :

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

    2. Si des champs importants sont manquants 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 data store.

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

    L'analyseur OCR et l'analyseur de mise en page peuvent entraîner des coûts supplémentaires. Consultez Tarifs des fonctionnalités de 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.

  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 à 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 data store

    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 : par l'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 : par le nom à afficher pour le data store que vous souhaitez créer.

    Facultatif : Pour configurer l'analyse de documents ou activer la segmentation de documents pour RAG, spécifiez l' documentProcessingConfig objet et incluez-le dans votre requête de création de data store. Il est recommandé 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. Importer 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 : par l'ID du data store.
    • INPUT_FILE_PATTERN: par un 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.jsonet 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 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 service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com les autorisations sur le bucket Cloud Storage sous le 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 du 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 dans chaque ligne, et 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 comme les 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 tant 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 inputUris champ.

    • ERROR_DIRECTORY : facultatif. Répertoire Cloud Storage contenant des informations sur les erreurs d'importation , par exemple gs://<your-gcs-bucket>/directory/import_errors. Google vous 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 de Cloud Storage sont actualisées de manière incrémentielle dans votre data store. Une opération upsert est effectuée, ce qui ajoute de nouveaux documents et remplace les documents existants par des documents modifiés portant le même ID. Si vous spécifiez FULL, les documents de votre data store sont 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 sont supprimés de votre data store. Le mode FULL est utile si vous souhaitez supprimer automatiquement les documents dont vous n'avez plus besoin.

    • AUTO_GENERATE_IDS : facultatif. Indique s'il faut générer automatiquement des ID de document. Si la valeur est 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 sur plusieurs importations. Si vous générez automatiquement des ID sur 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. Sinon, 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 échoue.

    • ID_FIELD : facultatif. Spécifie les champs qui sont les ID de document. Pour les documents sources Cloud Storage, idField spécifie le nom des 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é. Sinon, 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, comporter entre 1 et 63 caractères et être conforme à RFC-1034. Sinon, l'importation des documents échoue.

Se connecter à Cloud Storage avec une synchronisation périodique

Avant d'importer vos données, consultez Préparer les données à ingérer.

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 datastore que vous souhaitez créer. Les datastores enfants des connecteurs de données sont appelés datastores d'entité.

Les données sont synchronisées périodiquement avec le data store d'entité. 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 directement l'emplacement dans le champ gs://.

  10. Cliquez sur Continuer.

  11. Sélectionnez 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 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 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 synchronisera périodiquement les données avec l'emplacement Cloud Storage. Vous avez également créé un data store d'entité, 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 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