Atualize dados estruturados e não estruturados

Esta página descreve a atualização de dados estruturados e não estruturados.

Para atualizar as apps do Website, consulte o artigo Atualize a página Web.

Atualize os dados estruturados

Pode atualizar os dados num arquivo de dados estruturados, desde que use um esquema que seja igual ou retrocompatível com o esquema no arquivo de dados. Por exemplo, adicionar apenas novos campos a um esquema existente é retrocompatível.

Pode atualizar os dados estruturados na Google Cloud consola ou através da API.

Consola

Para usar a consola Google Cloud para atualizar dados estruturados de uma ramificação de um repositório de dados, siga estes passos:

  1. Na Google Cloud consola, aceda à página Aplicações de IA.

    Aplicações de IA

  2. No menu de navegação, clique em Armazenamentos de dados.

  3. Na coluna Nome, clique no arquivo de dados que quer editar.

  4. No separador Documentos, clique em Importar dados.

  5. Para atualizar a partir do Cloud Storage:

    1. No painel Selecione uma origem de dados, selecione Cloud Storage.
    2. No painel Importar dados do Cloud Storage, clique em Procurar, selecione o contentor que contém os dados atualizados e, de seguida, clique em Selecionar. Em alternativa, introduza a localização do contentor 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 atualizar a partir do BigQuery:

    1. No painel Selecione uma origem de dados, selecione BigQuery.
    2. No painel Importar dados do BigQuery, clique em Procurar, selecione uma tabela que contenha os dados atualizados e, de seguida, clique em Selecionar. Em alternativa, introduza a localização 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 seus dados, especificando o valor reconciliationMode adequado.

Para atualizar dados estruturados do BigQuery ou Cloud Storage através da linha de comandos, siga estes passos:

  1. Encontre o ID da loja de dados. Se já tiver o ID do armazenamento de dados, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA e, no menu de navegação, clique em Armazenamentos de dados.

      Aceda à página Armazenamentos de dados

    2. Clique no nome do seu arquivo de dados.

    3. Na página Dados da sua loja de dados, obtenha o ID da loja de dados.

  2. Para importar os seus dados estruturados do BigQuery, chame o seguinte método. Pode importar dados do BigQuery ou do Cloud Storage. Para importar a partir do Cloud Storage, avance para o passo seguinte.

    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"
      }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .
    • DATA_STORE_ID: o ID do arquivo de dados do Vertex AI Search.
    • DATASET_ID: o nome do seu conjunto de dados do BigQuery.
    • TABLE_ID: o nome da sua tabela do BigQuery.
    • DATA_SCHEMA_BQ: um campo opcional para especificar o esquema a usar ao analisar dados da origem do BigQuery. Pode ter os seguintes valores:
      • document: o valor predefinido. A tabela do BigQuery que usa tem de estar em conformidade com o seguinte esquema do BigQuery predefinido. Pode definir o ID de cada documento, enquanto envolve todos os dados na string json_data.
      • custom: qualquer esquema de tabela do BigQuery é aceite e as aplicações de IA geram 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. A Google recomenda que deixe este campo vazio para permitir que as aplicações de IA criem 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 arquivo de dados de destino. Pode ter os seguintes valores:
      • INCREMENTAL: o valor predefinido. Provoca uma atualização incremental dos dados do BigQuery para o seu repositório de dados. Esta ação executa uma operação de inserção/atualização, que adiciona novos documentos e substitui os documentos existentes por documentos atualizados com o mesmo ID.
      • FULL: faz uma nova base completa dos documentos no seu repositório de dados. Por conseguinte, os documentos novos e atualizados são adicionados ao seu repositório de dados e os documentos que não estão no BigQuery são removidos do seu repositório de dados. O modo FULL é útil se quiser eliminar automaticamente documentos de que já não precisa.
    • AUTO_GENERATE_IDS: um campo opcional para especificar se os IDs dos documentos devem ser gerados automaticamente. Se estiver definido como true, os IDs dos documentos são gerados com base num hash da carga útil. Tenha em atenção que os IDs dos documentos gerados podem não permanecer consistentes em várias importações. Se gerar automaticamente IDs em várias importações, a Google recomenda vivamente que defina reconciliationMode como FULL para manter IDs de documentos consistentes.

      Especifique autoGenerateIds apenas quando bigquerySource.dataSchema estiver definido como custom. Caso contrário, é devolvido um erro INVALID_ARGUMENT. Se não especificar autoGenerateIds ou o definir como false, tem de especificar idField. Caso contrário, não é possível importar os documentos.

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

      Especifique idField apenas quando estas duas condições forem satisfeitas. Caso contrário, é devolvido um erro INVALID_ARGUMENT:

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

      Além disso, o valor do nome da coluna do BigQuery tem de ser do tipo string, ter entre 1 e 63 carateres e estar em conformidade com a RFC-1034. Caso contrário, a importação dos documentos falha.

    Segue-se o esquema predefinido do BigQuery. A tabela do BigQuery tem de estar em conformidade com este esquema quando define dataSchema como document.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Para importar os dados estruturados do Cloud Storage, chame o seguinte método. Pode importar dados do BigQuery ou do Cloud Storage. Para importar do BigQuery, aceda ao passo 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"
      }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .
    • DATA_STORE_ID: o ID do arquivo de dados do Vertex AI Search.
    • GCS_PATHS: uma lista de URIs separados por vírgulas para localizações do Cloud Storage a partir das quais quer importar. Cada URI pode ter 2000 carateres. Os URIs podem corresponder ao caminho completo de um objeto de armazenamento ou podem corresponder 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 usar ao analisar dados da origem do BigQuery. Pode ter os seguintes valores:
      • document: o valor predefinido. A tabela do BigQuery que usa tem de estar em conformidade com o seguinte esquema do BigQuery predefinido. Pode definir o ID de cada documento, enquanto envolve todos os dados na string json_data.
      • custom: qualquer esquema de tabela do BigQuery é aceite e as aplicações de IA geram 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. A Google recomenda que deixe este campo vazio para permitir que as aplicações de IA criem 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 arquivo de dados de destino. Pode ter os seguintes valores:
      • INCREMENTAL: o valor predefinido. Provoca uma atualização incremental dos dados do BigQuery para o seu repositório de dados. Esta ação executa uma operação de inserção/atualização, que adiciona novos documentos e substitui os documentos existentes por documentos atualizados com o mesmo ID.
      • FULL: faz uma nova base completa dos documentos no seu repositório de dados. Por conseguinte, os documentos novos e atualizados são adicionados ao seu repositório de dados e os documentos que não estão no BigQuery são removidos do seu repositório de dados. O modo FULL é útil se quiser eliminar automaticamente documentos de que já não precisa.

Python

Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.

Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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)

Atualize dados não estruturados

Pode atualizar dados não estruturados na Google Cloud consola ou através da API.

Consola

Para usar a Google Cloud consola para atualizar dados não estruturados de uma ramificação de um repositório de dados, siga estes passos:

  1. Na Google Cloud consola, aceda à página Aplicações de IA.

    Aplicações de IA

  2. No menu de navegação, clique em Armazenamentos de dados.

  3. Na coluna Nome, clique no arquivo de dados que quer editar.

  4. No separador Documentos, clique em Importar dados.

  5. Para carregar a partir de um contentor do Cloud Storage (com ou sem metadados):

    1. No painel Selecione uma origem de dados, selecione Cloud Storage.
    2. No painel Importar dados do Cloud Storage, clique em Procurar, selecione o contentor que contém os dados atualizados e, de seguida, clique em Selecionar. Em alternativa, introduza a localização do contentor 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 carregar a partir do BigQuery:

    1. No painel Selecione uma origem de dados, selecione BigQuery.
    2. No painel Importar dados do BigQuery, clique em Procurar, selecione uma tabela que contenha os dados atualizados e, de seguida, clique em Selecionar. Em alternativa, introduza a localização 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

Para atualizar dados não estruturados através da API, reimporte-os com o método documents.import, especificando o valor reconciliationMode adequado. Para mais informações sobre a importação de dados não estruturados, consulte o artigo Dados não estruturados.

Python

Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.

Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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)