Atualizar dados estruturados e não estruturados

Esta página descreve atualização estruturada e não estruturados.

Para atualizar os apps do seu site, consulte Atualizar sua página da Web.

Atualizar dados estruturados

É possível atualizar os dados em um repositório de dados estruturados, desde que você use um esquema que seja igual ou compatível com versões anteriores do esquema no repositório de dados. Para exemplo, adicionar apenas novos campos a um esquema existente é compatível com versões anteriores.

É possível atualizar os dados estruturados no console do Google Cloud ou usando a API.

Console

Para usar o console do Google Cloud e atualizar dados estruturados de uma filial de uma loja de dados, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Criador de agentes.

    Agent Builder.

  2. No menu de navegação, clique em Repositórios de dados.

  3. Na coluna Nome, clique no repositório de dados que você quer editar.

  4. Na guia Documentos, clique em Importar dados.

  5. Para atualizar do Cloud Storage:

    1. No painel Selecionar uma fonte de dados, escolha Cloud Storage.
    2. No painel Importar dados do Cloud Storage, clique em Procurar, selecione o bucket que contém os dados atualizados e clique em Selecionar. Como alternativa, insira o local do bucket diretamente no gs://.
    3. Em Opções de importação de dados, selecione uma opção.
    4. Clique em Importar.
  6. Para atualizar a partir do BigQuery:

    1. No painel Selecionar uma fonte de dados, escolha BigQuery.
    2. No painel Importar dados do BigQuery, clique em Procurar, selecione uma tabela que contenha os dados atualizados e clique em Selecionar. Como alternativa, insira o local da tabela diretamente no campo Caminho do BigQuery.
    3. Em Opções de importação de dados, selecione uma opção de importação.
    4. Clique em Importar.

REST

Use o método documents.import para atualizar os dados. especificando o valor reconciliationMode apropriado.

Para atualizar dados estruturados do BigQuery ou do Cloud Storage usando o linha de comando, siga estas etapas:

  1. Encontre o ID do repositório de dados. Se você já tem seu repositório de dados ID, pule para a próxima etapa.

    1. No console do Google Cloud, acesse a página Agent Builder e No menu de navegação, clique em Repositórios de dados.

      Acesse a página "Repositórios de dados"

    2. Clique no nome do seu repositório de dados.

    3. Na página Dados do seu repositório de dados, encontre o ID do repositório.

  2. Para importar seus dados estruturados do BigQuery, chame o seguinte: . É possível importar do BigQuery ou do Cloud Storage. Para importar do Cloud Storage, pule para a próxima etapa.

    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: o ID do seu projeto do Google Cloud.
    • DATA_STORE_ID: o ID do repositório de dados da Vertex AI para Pesquisa.
    • DATASET_ID: o nome do conjunto de dados do BigQuery.
    • TABLE_ID: o nome da tabela do BigQuery.
    • DATA_SCHEMA_BQ: um campo opcional para especificar o esquema a ser usado ao analisar dados da origem do BigQuery. Pode ter os seguintes valores:
      • document: o valor padrão. A tabela do BigQuery que você usa precisa estar em conformidade com o esquema padrão do BigQuery a seguir. Você você mesmo pode definir o ID de cada documento, encapsulando todo dados na string json_data.
      • custom: qualquer esquema de tabela do BigQuery é aceito, e a Vertex AI Agent Builder gera automaticamente os IDs para cada documento importado.
    • ERROR_DIRECTORY: um campo opcional para especificar um diretório do Cloud Storage para informações de erro sobre a importação, por exemplo, gs://<your-gcs-bucket>/directory/import_errors. O Google recomenda deixar esse campo em branco para permitir que o Vertex AI Agent Builder crie automaticamente um diretório temporário.
    • RECONCILIATION_MODE: um campo opcional para especificar como os documentos importados são reconciliados com os documentos existentes no armazenamento de dados de destino. Pode ter os seguintes valores:
      • INCREMENTAL: o valor padrão. Causa uma atualização incremental de dados do BigQuery para o armazenamento de dados. Isso faz uma operação de upsert, que adiciona novos documentos e substitui os documentos existentes por documentos atualizados com o mesmo ID.
      • FULL: causa uma rebase completa dos documentos no armazenamento de dados. Portanto, documentos novos e atualizados são adicionados ao seu repositório de dados, e documentos que não estão no BigQuery são removidos dos seus dados loja on-line. O modo FULL é útil se você quer excluir automaticamente documentos desnecessários.
    • AUTO_GENERATE_IDS: um campo opcional para especificar se é necessário automaticamente os IDs de documentos. Se definido como true, os IDs de documentos são gerados com base em um hash do payload. Observe que gerados IDs de documentos podem não permanecer consistentes em várias importações. Se você gerar IDs automaticamente em várias importações, o Google recomenda definir reconciliationMode como FULL para manter os IDs de documentos consistentes.

      Especifique autoGenerateIds apenas quando bigquerySource.dataSchema for Defina como custom. Caso contrário, um erro INVALID_ARGUMENT é retornado. Se você não especificar autoGenerateIds ou defini-lo como false, é preciso especificar idField. Caso contrário, a importação dos documentos vai falhar.

    • ID_FIELD: um campo opcional para especificar quais são os campos IDs de documentos. Para arquivos de origem do BigQuery, idField indica o nome da coluna na tabela do BigQuery que contém os IDs de documento.

      Especifique idField somente quando ambas as condições forem atendidas. Caso contrário, um erro INVALID_ARGUMENT será retornado:

      • bigquerySource.dataSchema é definida como custom;
      • auto_generate_ids está definido como false ou não foi especificado.

      Além disso, o valor do nome da coluna do BigQuery deve ser string, deve ter entre 1 e 63 caracteres e deve obedecer para RFC-1034. Caso contrário, o documentos não são importados.

    Este é o esquema padrão do BigQuery. Sua tabela do BigQuery precisa estar em conformidade com esse esquema quando você define dataSchema como document.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Para importar dados estruturados do Cloud Storage, chame o método a seguir. É possível importar do BigQuery ou do Cloud Storage. Para importar do BigQuery, acesse a etapa 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: o ID do seu projeto do Google Cloud.
    • DATA_STORE_ID: o ID do repositório de dados da Vertex AI para Pesquisa.
    • GCS_PATHS: uma lista de URIs separados por vírgulas para Locais do Cloud Storage de onde você quer importar. Cada URI pode ser 2.000 caracteres. Os URIs podem corresponder ao caminho completo de um objeto de armazenamento ou ao padrão de um ou mais objetos. Por exemplo, gs://bucket/directory/*.json é um caminho válido.
    • DATA_SCHEMA_GCS: um campo opcional para especificar o esquema a ser usado. ao analisar dados da origem do BigQuery. Pode ter os seguintes valores:
      • document: o valor padrão. A tabela do BigQuery que você usa precisa estar em conformidade com o esquema padrão do BigQuery a seguir. Você você mesmo pode definir o ID de cada documento, encapsulando todo dados na string json_data.
      • custom: qualquer esquema de tabela do BigQuery é aceito, e a Vertex AI Agent Builder gera automaticamente os IDs para cada documento importado.
    • ERROR_DIRECTORY: um campo opcional para especificar um diretório do Cloud Storage para informações de erro sobre a importação, por exemplo, gs://<your-gcs-bucket>/directory/import_errors. O Google recomenda deixar esse campo em branco para permitir que o Vertex AI Agent Builder crie automaticamente um diretório temporário.
    • RECONCILIATION_MODE: um campo opcional para especificar como os documentos importados são reconciliados com os documentos existentes no armazenamento de dados de destino. Pode ter os seguintes valores:
      • INCREMENTAL: o valor padrão. Causa uma atualização incremental de dados do BigQuery para o armazenamento de dados. Isso faz uma operação de upsert, que adiciona novos documentos e substitui os documentos existentes por documentos atualizados com o mesmo ID.
      • FULL: causa uma realocação completa dos documentos no repositório de dados. Portanto, documentos novos e atualizados são adicionados ao repositório de dados, e aqueles que não estão no BigQuery são removidos dele. O modo FULL é útil se você quiser excluir automaticamente documentos que não são mais necessários.

Python

Para mais informações, consulte a documentação de referência da API Python do Vertex AI Agent Builder.

Para autenticar no Vertex AI Agent Builder, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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)

Atualizar dados não estruturados

É possível atualizar os dados não estruturados no console do Google Cloud ou usando a API.

Console

Para usar o console do Google Cloud e atualizar dados não estruturados de uma ramificação de uma loja de dados, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Criador de agentes.

    Agent Builder.

  2. No menu de navegação, clique em Repositórios de dados.

  3. Na coluna Nome, clique no repositório de dados que você quer editar.

  4. Na guia Documentos, clique em Importar dados.

  5. Para ingerir de um bucket do Cloud Storage (com ou sem metadados):

    1. No painel Selecionar uma fonte de dados, escolha Cloud Storage.
    2. No painel Importar dados do Cloud Storage, clique em Procurar, selecione o bucket que contém os dados atualizados e clique em Selecionar. Como alternativa, insira o local do bucket diretamente no campo gs://.
    3. Em Opções de importação de dados, selecione uma opção de importação.
    4. Clique em Importar.
  6. Para fazer a transferência do BigQuery:

    1. No painel Selecionar uma fonte de dados, escolha BigQuery.
    2. No painel Importar dados do BigQuery, clique em Procurar. selecionar uma tabela que contenha seus dados atualizados e, em seguida, Clique em Selecionar. Como alternativa, insira a localização da tabela diretamente em no campo Caminho do BigQuery.
    3. Em Opções de importação de dados, selecione uma opção de importação.
    4. Clique em Importar.

REST

Para atualizar dados não estruturados usando a API, importe-os novamente usando o método documents.import, especificando o valor reconciliationMode adequado. Para mais informações sobre como importar dados não estruturados, consulte Dados não estruturados.

Python

Para mais informações, consulte a documentação de referência da API Python do Vertex AI Agent Builder.

Para autenticar no Vertex AI Agent Builder, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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)