Actualiza datos estructurados y no estructurados

En esta página, se describe cómo actualizar datos estructurados y no estructurados.

Para actualizar las apps de tu sitio web, consulta Cómo actualizar tu página web.

Actualiza datos estructurados

Puedes actualizar los datos de un almacén de datos estructurados, siempre que uses un esquema que sea el mismo o retrocompatible con el esquema del almacén de datos. Para Por ejemplo, agregar solo campos nuevos a un esquema existente es retrocompatible.

Puedes actualizar los datos estructurados en la consola de Google Cloud o con la API.

Console

Para usar la consola de Google Cloud y actualizar datos estructurados desde una sucursal de un almacén de datos, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Agent Builder.

    Agent Builder

  2. En el menú de navegación, haz clic en almacenes de datos.

  3. En la columna Nombre, haz clic en el almacén de datos que deseas editar.

  4. En la pestaña Documentos, haz clic en Importar datos.

  5. Para actualizar desde Cloud Storage, sigue estos pasos:

    1. En el panel Selecciona una fuente de datos, elige Cloud Storage.
    2. En el panel Importar datos de Cloud Storage, haz clic en Explorar, selecciona el bucket que contiene los datos actualizados y, luego, haz clic en Seleccionar. Como alternativa, ingresa la ubicación del bucket directamente en el campo gs://.
    3. En Opciones de importación de datos, selecciona una opción de importación.
    4. Haga clic en Import.
  6. Para actualizar desde BigQuery, haz lo siguiente:

    1. En el panel Selecciona una fuente de datos, elige BigQuery.
    2. En el panel Importar datos desde BigQuery, haz clic en Explorar, selecciona una tabla que contenga los datos actualizados y, luego, haz clic en Seleccionar. Como alternativa, ingresa la ubicación de la tabla directamente en el campo Ruta de BigQuery.
    3. En Opciones de importación de datos, selecciona una opción de importación.
    4. Haga clic en Import.

REST

Usa el método documents.import para actualizar tus datos. que especifica el valor de reconciliationMode apropiado.

Para actualizar datos estructurados de BigQuery o Cloud Storage con el línea de comandos, sigue estos pasos:

  1. Busca el ID del almacén de datos. Si ya tienes el ID del almacén de datos, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder y, en el menú de navegación, haz clic en Almacenes de datos.

      Ve a la página Almacenes de datos.

    2. Haz clic en el nombre de tu almacén de datos.

    3. En la página Datos de tu almacén de datos, obtén el ID del almacén de datos.

  2. Para importar datos estructurados de BigQuery, llama a . Puedes importar desde BigQuery o Cloud Storage. Para importar desde Cloud Storage, dirígete a al siguiente paso.

    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: El ID del proyecto de Google Cloud.
    • DATA_STORE_ID: Es el ID del almacén de datos de Vertex AI Search.
    • DATASET_ID: Es el nombre de tu conjunto de datos de BigQuery.
    • TABLE_ID: Es el nombre de tu tabla de BigQuery.
    • DATA_SCHEMA_BQ: Es un campo opcional para especificar el esquema que se usará cuando se analicen los datos de la fuente de BigQuery. Puede tener la los siguientes valores:
      • document: Es el valor predeterminado. La tabla de BigQuery que uses debe cumplir con el siguiente esquema predeterminado de BigQuery. Tú puedes definir el ID de cada documento tú mismo, mientras unes todo en la cadena json_data.
      • custom: Se acepta cualquier esquema de tabla de BigQuery, y Vertex AI Agent Builder genera automáticamente los IDs de cada documento que se importa.
    • ERROR_DIRECTORY: Es un campo opcional para especificar un directorio de Cloud Storage para obtener información sobre los errores de la importación, por ejemplo, gs://<your-gcs-bucket>/directory/import_errors. Google recomienda dejar este campo vacío para permitir que Vertex AI Agent Builder cree automáticamente un directorio temporal.
    • RECONCILIATION_MODE: Es un campo opcional para especificar cómo se concilian los documentos importados con los documentos existentes en el almacén de datos de destino. Puede tener los siguientes valores:
      • INCREMENTAL: Es el valor predeterminado. Genera una actualización incremental de los datos de BigQuery a tu almacén de datos. Esto realiza una inserción o actualización que agrega documentos nuevos y reemplaza los existentes por documentos actualizados con el mismo ID.
      • FULL: Genera una rebase completa de los documentos en tu almacén de datos. Por lo tanto, se agregan documentos nuevos y actualizados a tu almacén de datos. los documentos que no están en BigQuery se quitan de tus datos en una tienda física. El modo FULL es útil si quieres borrar automáticamente documentos que ya no necesitas.
    • AUTO_GENERATE_IDS: Es un campo opcional para especificar si se desea generar los IDs de documento automáticamente. Si se establece en true, los IDs de los documentos se generan en función de un hash de la carga útil. Ten en cuenta que los datos generados es posible que los IDs de los documentos no permanezcan coherentes en varias importaciones. Si automáticamente los IDs a partir de varias importaciones, Google se recomienda configurar reconciliationMode en FULL para que se mantenga IDs de documentos coherentes.

      Especifica autoGenerateIds solo cuando bigquerySource.dataSchema sea se define en custom. De lo contrario, se generará un error INVALID_ARGUMENT que se devuelven. Si no especificas autoGenerateIds ni lo configuras como false, debes especificar idField. De lo contrario, los documentos no se importarán.

    • ID_FIELD: Es un campo opcional para especificar qué campos se incluyen en la IDs de documento. Para los archivos fuente de BigQuery, idField indica el nombre de la columna en la tabla de BigQuery que contiene los IDs de documento.

      Especifica idField solo cuando se cumplan ambas condiciones, de lo contrario, se mostrará un error INVALID_ARGUMENT:

      • bigquerySource.dataSchema se configura como custom.
      • auto_generate_ids se configura como false o no se especifica.

      Además, el valor del nombre de la columna de BigQuery debe ser string, debe tener entre 1 y 63 caracteres, y debe cumplir a RFC-1034. De lo contrario, el no se pueden importar.

    Este es el esquema predeterminado de BigQuery. Tu tabla de BigQuery debe cumplir con este esquema cuando establezcas dataSchema en document.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Para importar tus datos estructurados de Cloud Storage, llama al siguiente método. Puedes importar desde BigQuery o Cloud Storage. Para importar desde BigQuery, ve al paso anterior.

    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: El ID del proyecto de Google Cloud.
    • DATA_STORE_ID: Es el ID del almacén de datos de Vertex AI Search.
    • GCS_PATHS: Es una lista de URIs separados por comas a las ubicaciones de Cloud Storage desde las que deseas realizar la importación. Cada URI puede 2,000 caracteres de longitud Los URIs pueden coincidir con la ruta de acceso completa de un objeto de almacenamiento o puede coincidir con el patrón de uno o más objetos. Por ejemplo, gs://bucket/directory/*.json es una ruta válida.
    • DATA_SCHEMA_GCS: Es un campo opcional para especificar el esquema que se usará cuando se analicen los datos de la fuente de BigQuery. Puede tener la los siguientes valores:
      • document: Es el valor predeterminado. La tabla de BigQuery que uses debe cumplir con el siguiente esquema predeterminado de BigQuery. Tú puedes definir el ID de cada documento tú mismo, mientras unes todo en la cadena json_data.
      • custom: Se acepta cualquier esquema de tabla de BigQuery, y Vertex AI Agent Builder genera automáticamente los IDs de cada documento que se importa.
    • ERROR_DIRECTORY: Es un campo opcional para especificar un directorio de Cloud Storage para obtener información sobre los errores de la importación, por ejemplo, gs://<your-gcs-bucket>/directory/import_errors. Google recomienda dejar este campo vacío para permitir que Vertex AI Agent Builder cree automáticamente un directorio temporal.
    • RECONCILIATION_MODE: Es un campo opcional para especificar cómo se concilian los documentos importados con los documentos existentes en el almacén de datos de destino. Puede tener los siguientes valores:
      • INCREMENTAL: Es el valor predeterminado. Genera una actualización incremental de los datos de BigQuery a tu almacén de datos. Esto realiza una inserción o actualización que agrega documentos nuevos y reemplaza los existentes por documentos actualizados con el mismo ID.
      • FULL: provoca una reubicación completa de los documentos en el almacén de datos. Por lo tanto, se agregan documentos nuevos y actualizados a tu almacén de datos, y se quitan los documentos que no están en BigQuery. El modo FULL es útil si quieres borrar automáticamente los documentos que ya no necesitas.

Python

Para obtener más información, consulta la API de Python de Vertex AI Agent Builder documentación de referencia.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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)

Actualiza datos no estructurados

Puedes actualizar los datos no estructurados en la consola de Google Cloud o con la API.

Console

Para usar la consola de Google Cloud y actualizar datos no estructurados de una sucursal de un almacén de datos, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Agent Builder.

    Agent Builder

  2. En el menú de navegación, haz clic en almacenes de datos.

  3. En la columna Nombre, haz clic en el almacén de datos que deseas editar.

  4. En la pestaña Documentos, haz clic en Importar datos.

  5. Para transferir datos desde un bucket de Cloud Storage (con o sin metadatos), sigue estos pasos:

    1. En el panel Selecciona una fuente de datos, elige Cloud Storage.
    2. En el panel Importar datos de Cloud Storage, haz clic en Explorar, selecciona el bucket que contiene los datos actualizados y, luego, haz clic en Seleccionar. También puedes ingresar la ubicación del bucket directamente en el gs://.
    3. En Opciones de importación de datos, selecciona una opción de importación.
    4. Haga clic en Import.
  6. Para transferir datos desde BigQuery, sigue estos pasos:

    1. En el panel Selecciona una fuente de datos, selecciona BigQuery.
    2. En el panel Importar datos desde BigQuery, haz clic en Explorar, selecciona una tabla que contenga los datos actualizados y, luego, haz clic en Seleccionar. También puedes ingresar la ubicación de la tabla directamente en el campo Ruta de acceso de BigQuery
    3. En Opciones de importación de datos, selecciona una opción de importación.
    4. Haga clic en Import.

REST

Para actualizar datos no estructurados con la API, vuelve a importarlos usando documents.import y especifica la opción reconciliationMode. Para obtener más información sobre la importación de datos consulta Datos no estructurados.

Python

Para obtener más información, consulta la API de Python de Vertex AI Agent Builder documentación de referencia.

Para autenticarte en Vertex AI Agent Builder, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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)