Sincronizar do Cloud Storage

É possível criar repositórios de dados com tabelas do Cloud Storage de duas maneiras:

  • Ingestão única: você importa dados de uma pasta ou arquivo do Cloud Storage para um repositório de dados. Os dados no repositório de dados não mudam, a menos que você atualize manualmente.

  • Ingestão periódica: você importa dados de uma pasta ou arquivo do Cloud Storage e define uma frequência de sincronização que determina a frequência com que o repositório de dados é atualizado com os dados mais recentes desse local do Cloud Storage.

A tabela a seguir compara as duas maneiras de importar dados do Cloud Storage para os repositórios de dados do Gemini Enterprise.

Ingestão única Ingestão periódica
Disponibilidade geral (GA). Pré-lançamento público.
Os dados precisam ser atualizados manualmente. Os dados são atualizados automaticamente a cada um, três ou cinco dias. Não é possível atualizar os dados manualmente.
O Gemini Enterprise cria um único repositório de dados com base em uma pasta ou arquivo do Cloud Storage. O Gemini Enterprise cria um conector de dados e associa um repositório de dados (chamado de repositório de dados de entidade) a ele para o arquivo ou pasta especificados. Cada conector de dados do Cloud Storage pode ter um único repositório de dados de entidade.
É possível combinar dados de vários arquivos, pastas e buckets em um repositório de dados. Para isso, primeiro ingira dados de um local do Cloud Storage e depois de outro. Como a importação manual de dados não é compatível, os dados em um repositório de dados de entidade só podem ser originados de um arquivo ou pasta do Cloud Storage.
O controle de acesso à fonte de dados é compatível. Para mais informações, consulte Controle de acesso à fonte de dados. O controle de acesso à fonte de dados não é compatível. Os dados importados podem conter controles de acesso, mas eles não serão respeitados.
É possível criar um repositório de dados usando o consoleGoogle Cloud ou a API. Você precisa usar o console para criar conectores de dados e os armazenamentos de dados de entidades deles.
Compatível com CMEK. Compatível com CMEK.

Importar uma vez do Cloud Storage

Para ingerir dados do Cloud Storage, siga estas etapas para criar um repositório de dados e ingerir dados usando o console Google Cloud ou a API.

Antes de importar seus dados, consulte Preparar dados para ingestão.

Console

Para usar o console e ingerir dados de um bucket do Cloud Storage, siga estas etapas:

  1. No console Google Cloud , acesse a página Gemini Enterprise.

    Gemini Enterprise

  2. Acesse a página Repositório de dados.

  3. Clique em Criar armazenamento de dados.

  4. Na página Selecionar uma fonte de dados, escolha Cloud Storage.

  5. Na seção Selecionar uma pasta ou um arquivo para importar, escolha Pasta ou Arquivo.

  6. Clique em Procurar, escolha os dados que você preparou para ingestão e clique em Selecionar. Se preferir, insira o local diretamente no campo gs://.

  7. Selecione o tipo de dados que você está importando.

  8. Clique em Continuar.

  9. Se você estiver fazendo uma importação única de dados estruturados:

    1. Mapear campos para propriedades principais.

    2. Se houver campos importantes faltando no esquema, use Adicionar novo campo para incluir.

      Para mais informações, consulte Sobre a detecção e edição automáticas.

    3. Clique em Continuar.

  10. Escolha uma região para o repositório de dados.

  11. Insira um nome para o repositório de dados.

  12. Opcional: se você selecionou documentos não estruturados, é possível escolher opções de análise e divisão em partes. Para comparar analisadores, consulte Analisar documentos. Para informações sobre fragmentação, consulte Fragmentar documentos para RAG.

    O analisador de OCR e o analisador de layout podem gerar custos adicionais.

    Para selecionar um analisador, expanda Opções de processamento de documentos e especifique as opções de analisador que você quer usar.

  13. Clique em Criar.

  14. Para verificar o status da ingestão, acesse a página Repositórios de dados e clique no nome do repositório de dados para conferir os detalhes na página Dados. Quando a coluna de status na guia Atividade mudar de Em andamento para Importação concluída, a ingestão será concluída.

    Dependendo do tamanho dos dados, a ingestão pode levar de vários minutos a várias horas.

REST

Para usar a linha de comando e criar um repositório de dados e ingerir dados do Cloud Storage, siga estas etapas.

  1. Crie um repositório de dados.

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

    Substitua:

    • PROJECT_ID: ID do projeto.
    • DATA_STORE_ID: o ID do repositório de dados que você quer criar. Ele só pode conter letras minúsculas, dígitos, sublinhados e hífens.
    • DATA_STORE_DISPLAY_NAME: o nome de exibição do repositório de dados que você quer criar.

    Opcional: para configurar a análise de documentos ou ativar o chunking de documentos para RAG, especifique o objeto documentProcessingConfig e inclua-o na solicitação de criação do repositório de dados. Recomendamos configurar um analisador de OCR para PDFs se você estiver ingerindo PDFs digitalizados. Para saber como configurar opções de análise ou divisão em partes, consulte Analisar e dividir documentos.

  2. Importa dados do 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"
        }
      }'
    

    Substitua:

    • PROJECT_ID: ID do projeto.
    • DATA_STORE_ID: o ID do repositório de dados.
    • INPUT_FILE_PATTERN: um padrão de arquivo no Cloud Storage que contém seus documentos.

      Para dados estruturados ou não estruturados com metadados, um exemplo de padrão de arquivo de entrada é gs://<your-gcs-bucket>/directory/object.json, e um exemplo de correspondência de padrão com um ou mais arquivos é gs://<your-gcs-bucket>/directory/*.json.

      Para documentos não estruturados, um exemplo é gs://<your-gcs-bucket>/directory/*.pdf. Cada arquivo que corresponde ao padrão se torna um documento.

      Se <your-gcs-bucket> não estiver em PROJECT_ID, será necessário conceder à conta de serviço as permissões service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com "Leitor de objetos do Storage" para o bucket do Cloud Storage. Por exemplo, se você estiver importando um bucket do Cloud Storage do projeto de origem "123" para o projeto de destino "456", conceda permissões de service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com no bucket do Cloud Storage no projeto "123".

    • DATA_SCHEMA: opcional. Os valores são document, custom, csv e content. O padrão é document.

      • document: faça upload de dados não estruturados com metadados para documentos não estruturados. Cada linha do arquivo precisa seguir um dos seguintes formatos. É possível definir o ID de cada documento:

        • { "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: faça upload de JSON para documentos estruturados. Os dados são organizados de acordo com um esquema. É possível especificar o esquema. Caso contrário, ele será detectado automaticamente. Você pode colocar a string JSON do documento em um formato consistente diretamente em cada linha, e o Gemini Enterprise gera automaticamente os IDs de cada documento importado.

      • content: faça upload de documentos não estruturados (PDF, HTML, DOC, TXT, PPTX). O ID de cada documento é gerado automaticamente como os primeiros 128 bits de SHA256(GCS_URI) codificados como uma string hexadecimal. É possível especificar vários padrões de arquivo de entrada, desde que os arquivos correspondentes não excedam o limite de 100 mil arquivos.

      • csv: inclua uma linha de cabeçalho no arquivo CSV, com cada cabeçalho mapeado para um campo do documento. Especifique o caminho para o arquivo CSV usando o campo inputUris.

    • ERROR_DIRECTORY: opcional. 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 que o Gemini Enterprise crie automaticamente um diretório temporário.

    • RECONCILIATION_MODE: opcional. Os valores são FULL e INCREMENTAL. O padrão é INCREMENTAL. Especificar INCREMENTAL causa uma atualização incremental de dados do Cloud Storage para seu repositório de dados. Isso faz uma operação de upsert, que adiciona novos documentos e substitui os documentos atuais por documentos atualizados com o mesmo ID. Especificar FULL causa uma rebase completa dos documentos no repositório de dados. Em outras palavras, documentos novos e atualizados são adicionados ao repositório de dados, e os que não estão no Cloud Storage são removidos. O modo FULL é útil se você quiser excluir automaticamente documentos que não precisa mais.

    • AUTO_GENERATE_IDS: opcional. Especifica se os IDs de documentos serão gerados automaticamente. Se definido como true, os IDs de documento serão gerados com base em um hash do payload. Os IDs de documentos gerados 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 IDs de documento consistentes.

      Especifique autoGenerateIds apenas quando gcsSource.dataSchema estiver definido como custom ou csv. Caso contrário, um erro INVALID_ARGUMENT será retornado. Se você não especificar autoGenerateIds ou definir como false, precisará especificar idField. Caso contrário, a importação dos documentos vai falhar.

    • ID_FIELD: opcional. Especifica quais campos são os IDs de documento. Para documentos de origem do Cloud Storage, idField especifica o nome nos campos JSON que são IDs de documentos. Por exemplo, se {"my_id":"some_uuid"} for o campo de ID do documento em um dos seus documentos, especifique "idField":"my_id". Isso identifica todos os campos JSON com o nome "my_id" como IDs de documento.

      Especifique esse campo somente quando: (1) gcsSource.dataSchema estiver definido como custom ou csv e (2) auto_generate_ids estiver definido como false ou não especificado. Caso contrário, um erro INVALID_ARGUMENT será retornado.

      O nome do campo JSON especificado por id_field precisa ser do tipo string, ter entre 1 e 63 caracteres e estar de acordo com a RFC-1034. Caso contrário, os documentos não serão importados.

Conectar-se ao Cloud Storage com sincronização periódica

Antes de importar seus dados, consulte Preparar dados para ingestão.

O procedimento a seguir descreve como criar um conector de dados que associa um local do Cloud Storage a um conector de dados do Gemini Enterprise e como especificar uma pasta ou um arquivo nesse local para o repositório de dados que você quer criar. Os repositórios de dados filhos de conectores de dados são chamados de repositórios de dados de entidade.

Os dados são sincronizados periodicamente com o repositório de dados da entidade. É possível especificar a sincronização diária, a cada três dias ou a cada cinco dias.

Console

  1. No console Google Cloud , acesse a página Gemini Enterprise.

    Gemini Enterprise

  2. Acesse a página Repositório de dados.

  3. Clique em Criar armazenamento de dados.

  4. Na página Origem, selecione Cloud Storage.

  5. Selecione o tipo de dados que você está importando.

  6. Clique em Periódico.

  7. Selecione a Frequência de sincronização, ou seja, com que frequência você quer que o conector do Gemini Enterprise faça a sincronização com o local do Cloud Storage. É possível mudar a frequência depois.

  8. Na seção Selecionar uma pasta ou um arquivo para importar, escolha Pasta ou Arquivo.

  9. Clique em Procurar, escolha os dados que você preparou para ingestão e clique em Selecionar. Se preferir, insira o local diretamente no campo gs://.

  10. Clique em Continuar.

  11. Escolha uma região para o conector de dados.

  12. Insira um nome para o conector de dados.

  13. Opcional: se você selecionou documentos não estruturados, é possível escolher opções de análise e divisão em partes. Para comparar analisadores, consulte Analisar documentos. Para informações sobre fragmentação, consulte Fragmentar documentos para RAG.

    O analisador de OCR e o analisador de layout podem gerar custos adicionais.

    Para selecionar um analisador, expanda Opções de processamento de documentos e especifique as opções de analisador que você quer usar.

  14. Clique em Criar.

    Você criou um conector de dados que sincroniza periodicamente os dados com o local do Cloud Storage. Você também criou um repositório de dados de entidade chamado gcs_store.

  15. Para verificar o status da ingestão, acesse a página Repositórios de dados e clique no nome do conector de dados para conferir os detalhes na página Dados.

    Guia Atividade de ingestão de dados. Quando a coluna de status na guia Atividade de ingestão de dados mudar de Em andamento para Concluída, a primeira ingestão será concluída.

    Dependendo do tamanho dos dados, a ingestão pode levar de vários minutos a várias horas.

Depois de configurar a fonte de dados e importar os dados pela primeira vez, as informações são sincronizadas dessa fonte com uma frequência que você seleciona durante a configuração. Cerca de uma hora depois da criação do conector de dados, a primeira sincronização ocorre. A próxima sincronização ocorre cerca de 24, 72 ou 120 horas depois.

Próximas etapas

  • Para anexar seu repositório de dados a um app, crie um app e selecione o repositório seguindo as etapas em Criar um app de pesquisa.

  • Para ver como os resultados da pesquisa aparecem depois que o app e o repositório de dados são configurados, consulte Visualizar resultados da pesquisa.