Actualiser les données structurées et non structurées

Cette page décrit l'actualisation des données structurées et non structurées.

Pour actualiser les applications de votre site Web, consultez Actualiser votre page Web.

Actualiser les données structurées

Vous pouvez actualiser les données d'un data store structuré à condition d'utiliser un schéma identique ou rétrocompatible avec le schéma du data store. Par exemple, l'ajout de nouveaux champs uniquement à un schéma existant est rétrocompatible.

Vous pouvez actualiser les données structurées dans la console Google Cloud ou à l'aide de l'API.

Console

Utiliser la console Google Cloud pour actualiser des données structurées à partir d'une branche de données procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Agent Builder.

    Agent Builder

  2. Dans le menu de navigation, cliquez sur Data stores (Magasins de données).

  3. Dans la colonne Nom, cliquez sur le data store que vous souhaitez modifier.

  4. Dans l'onglet Documents, cliquez sur Importer des données.

  5. Pour actualiser depuis Cloud Storage:

    1. Dans le volet Sélectionner une source de données, choisissez Cloud Storage.
    2. Dans le volet Importer des données à partir de Cloud Storage, cliquez sur Parcourir. sélectionnez le bucket contenant vos données actualisées, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement du bucket directement dans le gs://.
    3. Sous Options d'importation des données, sélectionnez une option d'importation.
    4. Cliquez sur Importer.
  6. Pour actualiser depuis BigQuery:

    1. Dans le volet Sélectionner une source de données, sélectionnez BigQuery.
    2. Dans le volet Importer des données à partir de BigQuery, cliquez sur Parcourir. sélectionnez une table contenant vos données actualisées, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement du tableau directement dans le Chemin d'accès BigQuery.
    3. Sous Options d'importation de données, sélectionnez une option d'importation.
    4. Cliquez sur Importer.

REST

Utilisez la méthode documents.import pour actualiser vos données. en spécifiant la valeur reconciliationMode appropriée.

Pour actualiser des données structurées à partir de BigQuery ou de Cloud Storage à l'aide de la ligne de commande, procédez comme suit :

  1. Recherchez l'ID de votre data store. Si vous disposez déjà de votre data store ID, passez à l'étape suivante.

    1. Dans la console Google Cloud, accédez à la page Agent Builder et cliquez sur Data Stores dans le menu de navigation.

      Accéder à la page "Datastores"

    2. Cliquez sur le nom de votre data store.

    3. Sur la page Données de votre data store, obtenez l'ID du data store.

  2. Pour importer vos données structurées depuis BigQuery, appelez la méthode suivante. Vous pouvez importer depuis BigQuery ou Cloud Storage. Pour importer à partir de Cloud Storage, passez à l'étape suivante.

    curl -X POST \
    -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/branches/0/documents:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID",
        "dataSchema": "DATA_SCHEMA_BQ",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": AUTO_GENERATE_IDS,
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    
    • PROJECT_ID : ID de votre projet Google Cloud
    • DATA_STORE_ID : ID du data store Vertex AI Search.
    • DATASET_ID : nom de votre ensemble de données BigQuery.
    • TABLE_ID : nom de votre table BigQuery.
    • DATA_SCHEMA_BQ : champ facultatif permettant de spécifier le schéma à utiliser lors de l'analyse des données de la source BigQuery. Peut avoir les valeurs suivantes :
      • document : valeur par défaut. La table BigQuery que vous utilisez doit être conforme au schéma BigQuery par défaut suivant. Vous pouvez définir vous-même l'ID de chaque document, tout en encapsulant l'ensemble des données dans la chaîne json_data.
      • custom : tout schéma de table BigQuery est accepté, et l'outil de création d'agents Vertex AI génère automatiquement les ID de chaque document importé.
    • ERROR_DIRECTORY : champ facultatif permettant de spécifier 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 à Vertex AI Agent Builder de créer automatiquement un répertoire temporaire.
    • RECONCILIATION_MODE: champ facultatif permettant de spécifier la manière dont documents importés sont rapprochés avec les documents existants dans data store de destination. Il peut avoir les valeurs suivantes:
      • INCREMENTAL : valeur par défaut. Permet d'actualiser de manière incrémentielle les données de BigQuery vers votre entrepôt de données. Cela fait une opération upsert qui ajoute de nouveaux documents et remplace les documents existants par documents mis à jour avec la même pièce d'identité.
      • FULL : entraîne une rebase complète des documents de votre magasin de données. Par conséquent, les documents nouveaux et mis à jour sont ajoutés à votre data store. les documents qui ne sont pas dans BigQuery sont supprimés de vos données Google Store. Le mode FULL est utile si vous souhaitez supprimer automatiquement les documents dont vous n'avez plus besoin.
    • AUTO_GENERATE_IDS: champ facultatif permettant de spécifier s'il faut générer automatiquement des ID de document. Si ce paramètre est défini sur true, les ID de document sont générés en fonction d'un hachage de la charge utile. Notez que la génération Les ID de document peuvent ne pas rester cohérents sur plusieurs importations. Si vous générez automatiquement des ID pour plusieurs importations, Google vous recommande vivement de définir reconciliationMode sur FULL afin de maintenir la cohérence des ID de document.

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

    • ID_FIELD: champ facultatif permettant de spécifier les champs ID de document. Pour les fichiers sources BigQuery, idField indique le nom de la colonne de la table BigQuery qui contient les ID des documents.

      Spécifiez idField uniquement lorsque ces deux conditions sont remplies. Sinon, une erreur INVALID_ARGUMENT est renvoyée:

      • bigquerySource.dataSchema est définie sur custom.
      • auto_generate_ids est défini sur false ou n'est pas spécifié.

      De plus, la valeur du nom de la colonne BigQuery doit ê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.

    Voici le schéma BigQuery par défaut. Votre table BigQuery doit être conforme à ce schéma lorsque vous définissez dataSchema sur document.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Pour importer vos données structurées à partir de Cloud Storage, appelez la méthode suivante. Vous pouvez importer des données depuis BigQuery ou Cloud Storage. Pour importer à partir de BigQuery, revenez à l'étape précédente.

    curl -X POST \
    -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/branches/0/documents:import" \
    -d '{
      "gcsSource": {
        "inputUris": ["GCS_PATHS"],
        "dataSchema": "DATA_SCHEMA_GCS",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    
    • PROJECT_ID : ID de votre projet Google Cloud
    • DATA_STORE_ID : ID du data store Vertex AI Search.
    • GCS_PATHS: une liste d'URI séparés par une virgule à utiliser Emplacements Cloud Storage à partir desquels vous souhaitez importer des données Chaque URI peut être 2 000 caractères. Les URI peuvent correspondre au chemin d'accès complet d'un objet de stockage ou peuvent correspondre au modèle d'un ou de plusieurs objets. Par exemple, gs://bucket/directory/*.json est un chemin valide.
    • DATA_SCHEMA_GCS: champ facultatif permettant de spécifier le schéma à utiliser lors de l'analyse de données à partir de la source BigQuery. Peut avoir les valeurs suivantes :
      • document : valeur par défaut. La table BigQuery que vous utilisez doit être conforme au schéma BigQuery par défaut suivant. Vous pouvez définir vous-même l'ID de chaque document, tout en encapsulant l'ensemble des données dans la chaîne json_data.
      • custom : tout schéma de table BigQuery est accepté, et l'outil de création d'agents Vertex AI génère automatiquement les ID de chaque document importé.
    • ERROR_DIRECTORY : champ facultatif permettant de spécifier 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 à Vertex AI Agent Builder de créer automatiquement un répertoire temporaire.
    • RECONCILIATION_MODE: champ facultatif permettant de spécifier la manière dont documents importés sont rapprochés avec les documents existants dans data store de destination. Il peut avoir les valeurs suivantes:
      • INCREMENTAL : valeur par défaut. Permet d'actualiser de manière incrémentielle les données de BigQuery vers votre entrepôt de données. Cela fait une opération upsert qui ajoute de nouveaux documents et remplace les documents existants par documents mis à jour avec la même pièce d'identité.
      • FULL : entraîne une rebase complète des documents de votre magasin de données. Par conséquent, des documents nouveaux et modifiés sont ajoutés à votre entrepôt de données, et les documents qui ne figurent pas dans BigQuery sont supprimés de votre entrepôt de données. Le mode FULL est utile si vous souhaitez supprimer automatiquement dont vous n'avez plus besoin.

Python

Pour en savoir plus, consultez les API Python de Vertex AI Agent Builder documentation de référence.

Pour vous authentifier auprès de Vertex AI Agent Builder, 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.


from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"
# bigquery_dataset = "YOUR_BIGQUERY_DATASET"
# bigquery_table = "YOUR_BIGQUERY_TABLE"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    bigquery_source=discoveryengine.BigQuerySource(
        project_id=project_id,
        dataset_id=bigquery_dataset,
        table_id=bigquery_table,
        data_schema="custom",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)

Actualiser les données non structurées

Vous pouvez actualiser les données non structurées dans la console Google Cloud ou à l'aide de l'API.

Console

Pour utiliser la console Google Cloud afin d'actualiser les données non structurées à partir d'une branche d'un entrepôt de données, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Agent Builder.

    Agent Builder

  2. Dans le menu de navigation, cliquez sur Data stores (Magasins de données).

  3. Dans la colonne Nom, cliquez sur le data store que vous souhaitez modifier.

  4. Dans l'onglet Documents, cliquez sur Importer des données.

  5. Pour ingérer des données à partir d'un bucket Cloud Storage (avec ou sans métadonnées) :

    1. Dans le volet Sélectionner une source de données, choisissez Cloud Storage.
    2. Dans le volet Importer des données à partir de Cloud Storage, cliquez sur Parcourir, sélectionnez le bucket contenant vos données actualisées, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement du bucket directement dans le champ gs://.
    3. Sous Options d'importation de données, sélectionnez une option d'importation.
    4. Cliquez sur Importer.
  6. Pour effectuer une ingestion depuis BigQuery:

    1. Dans le volet Sélectionner une source de données, sélectionnez BigQuery.
    2. Dans le volet Importer des données depuis BigQuery, cliquez sur Parcourir, sélectionnez une table contenant vos données actualisées, puis cliquez sur Sélectionner. Vous pouvez également saisir l'emplacement du tableau directement dans le champ Chemin d'accès BigQuery.
    3. Sous Options d'importation de données, sélectionnez une option d'importation.
    4. Cliquez sur Importer.

REST

Pour actualiser des données non structurées à l'aide de l'API, réimportez-les à l'aide de la méthode documents.import, en spécifiant la valeur reconciliationMode appropriée. Pour en savoir plus sur l'importation de données non structurées, consultez la section Données non structurées.

Python

Pour en savoir plus, consultez les API Python de Vertex AI Agent Builder documentation de référence.

Pour vous authentifier auprès de Vertex AI Agent Builder, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"

# Examples:
# - Unstructured documents
#   - `gs://bucket/directory/file.pdf`
#   - `gs://bucket/directory/*.pdf`
# - Unstructured documents with JSONL Metadata
#   - `gs://bucket/directory/file.json`
# - Unstructured documents with CSV Metadata
#   - `gs://bucket/directory/file.csv`
# gcs_uri = "YOUR_GCS_PATH"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    gcs_source=discoveryengine.GcsSource(
        # Multiple URIs are supported
        input_uris=[gcs_uri],
        # Options:
        # - `content` - Unstructured documents (PDF, HTML, DOC, TXT, PPTX)
        # - `custom` - Unstructured documents with custom JSONL metadata
        # - `document` - Structured documents in the discoveryengine.Document format.
        # - `csv` - Unstructured documents with CSV metadata
        data_schema="content",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)