Adicionar e gerenciar fontes de dados em um notebook (API)

Depois de criar o notebook, você pode adicionar vários tipos de conteúdo como fontes de dados. Você pode fazer isso em lotes ou como arquivos únicos. Algumas das fontes incluem documentos do Google Docs, apresentações do Google Slides, texto bruto, conteúdo da web e vídeos do YouTube.

Nesta página, descrevemos como realizar as seguintes tarefas:

Antes de começar

Se você planeja adicionar o Google Docs ou o Google Slides como fonte de dados, autorize o acesso ao Google Drive usando as credenciais de usuário do Google. Para isso, execute o seguinte comando gcloud auth login e siga as instruções na CLI.

gcloud auth login --enable-gdrive-access

Usar o endpoint multirregional dos EUA

Se a assinatura do Gemini Notebook Enterprise estiver na multirregião dos EUA, você poderá enviar as solicitações desta página para o endpoint multirregional dos EUA, discoveryengine.us.rep.googleapis.com. Um endpoint multirregional processa suas solicitações e encerra o TLS na multirregião, para que os dados da solicitação permaneçam nos EUA enquanto estão em trânsito. O uso desse endpoint não muda o local de armazenamento dos notebooks. Para mais informações, consulte Visão geral dos endpoints de API regionais e multirregionais no guia de segurança do Google Cloud.

Para usar o endpoint multirregional dos EUA, faça as seguintes alterações em cada URL de solicitação nesta página:

  1. Substitua o host ENDPOINT_LOCATION-discoveryengine.googleapis.com por discoveryengine.us.rep.googleapis.com.

  2. Defina LOCATION como us.

O restante de cada solicitação permanece o mesmo. Para saber como escolher a multirregião da sua assinatura, consulte Criar uma assinatura. Para ver a lista de endpoints de serviço regionais e multirregionais, consulte Endpoints de serviço regionais e multirregionais no guia da nuvem privada virtual.

Adicionar fontes de dados em lote

Para adicionar fontes a um notebook, chame o método notebooks.sources.batchCreate.

REST

curl -X POST \
  -H "Authorization:Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
     "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/sources:batchCreate" \
  -d '{
  "userContents": [
    {
    USER_CONTENT
    }
   ]
  }'

Substitua:

  • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
    • us para a multirregião dos EUA
    • eu para a multirregião da UE
    • global para o local global
    Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
  • PROJECT_NUMBER: o número do projeto do Google Cloud .
  • LOCATION: a localização geográfica do repositório de dados, como global. Saiba mais em Locais.
  • NOTEBOOK_ID: o identificador exclusivo do notebook.
  • USER_CONTENT: o conteúdo da fonte de dados.

Só é possível adicionar uma das seguintes fontes de dados como conteúdo:

  • Para conteúdo do Google Drive que consiste em arquivos do Google Docs ou do Google Slides, adicione:

     "googleDriveContent": {
       "documentId": "DOCUMENT_ID_GOOGLE",
       "mimeType": "MIME_TYPE",
       "sourceName": "DISPLAY_NAME_GOOGLE"
     }
    

    Substitua:

    • DOCUMENT_ID_GOOGLE: o ID do arquivo que está no Google Drive. Ele aparece no URL do arquivo. Para encontrar o ID de um documento, abra o arquivo. O URL tem o padrão: https://docs.google.com/FILE_TYPE/d/DOCUMENT_ID_GOOGLE/edit?resourcekey=RESOURCE_KEY.
    • MIME_TYPE: o tipo MIME do documento selecionado. Use application/vnd.google-apps.document para o Google Docs ou application/vnd.google-apps.presentation para o Google Slides.
    • DISPLAY_NAME_GOOGLE: o nome de exibição da fonte de dados.
  • Para entrada de texto bruto, adicione:

      "textContent": {
        "sourceName": "DISPLAY_NAME_TEXT",
        "content": "TEXT_CONTENT"
      }
    

    Substitua:

    • DISPLAY_NAME_TEXT: o nome de exibição da fonte de dados.
    • TEXT_CONTENT: o conteúdo de texto bruto que você quer fazer upload como uma fonte de dados.
  • Para conteúdo da Web, adicione:

     "webContent": {
       "url": "URL_WEBCONTENT",
       "sourceName": "DISPLAY_NAME_WEB"
     }
    

    Substitua:

    • URL_WEBCONTENT: o URL do conteúdo que você quer fazer upload como fonte de dados.
    • DISPLAY_NAME_WEB: o nome de exibição da fonte de dados.
  • Para conteúdo de vídeo, adicione:

     "videoContent": {
       "youtubeUrl": "URL_YOUTUBE"
     }
    

    Substitua URL_YOUTUBE pelo URL do vídeo do YouTube que você quer enviar como fonte de dados.

Se a solicitação for bem-sucedida, você vai receber uma instância do objeto source como resposta, semelhante ao JSON a seguir. Anote o SOURCE_ID e o SOURCE_RESOURCE_NAME, que são necessários para realizar outras tarefas, como recuperar ou excluir a fonte de dados.

{
  "sources": [
    {
      "sourceId": {
        "id": "SOURCE_ID"
      },
      "title": "DISPLAY_NAME",
      "metadata": {
        "xyz": "abc"
      },
      "settings": {
        "status": "SOURCE_STATUS_COMPLETE"
      },
      "name": "SOURCE_RESOURCE_NAME"
    }
  ]
}

Fazer upload de um arquivo como fonte

Além de adicionar fontes de dados em lotes, é possível fazer upload de arquivos únicos que podem ser usados como fontes de dados no notebook. Para fazer upload de um único arquivo, chame o método notebooks.sources.uploadFile.

REST

curl -X POST --data-binary "@PATH/TO/FILE" \
  -H "Authorization:Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-Upload-File-Name: FILE_DISPLAY_NAME" \
  -H "X-Goog-Upload-Protocol: raw" \
  -H "Content-Type: CONTENT_TYPE" \
  "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/upload/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/sources:uploadFile" \

Substitua:

  • PATH/TO/FILE: o caminho para o arquivo que você quer fazer upload.
  • FILE_DISPLAY_NAME: uma string que indica o nome de exibição do arquivo no notebook.
  • CONTENT_TYPE: o tipo de conteúdo que você quer fazer upload. Para ver uma lista de tipos de conteúdo compatíveis, consulte Tipos de conteúdo compatíveis.
  • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
    • us para a multirregião dos EUA
    • eu para a multirregião da UE
    • global para o local global
    Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
  • PROJECT_NUMBER: o número do projeto do Google Cloud .
  • LOCATION: a localização geográfica do repositório de dados, como global. Saiba mais em Locais.
  • NOTEBOOK_ID: o identificador exclusivo do notebook.

Se a solicitação for bem-sucedida, você vai receber uma resposta JSON semelhante a esta:

{
  "sourceId": {
    "id": "SOURCE_ID"
  }
}

Tipos de conteúdo compatíveis

O arquivo que você envia como fonte precisa ser compatível.

Os seguintes tipos de conteúdo de documento são aceitos:

Extensão de arquivo Tipo de conteúdo
.pdf application/pdf
.txt text/plain
.md text/markdown
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Os seguintes tipos de conteúdo de áudio são aceitos:

Extensão de arquivo Tipo de conteúdo
.3g2 audio/3gpp2
.3gp audio/3gpp
.aac audio/aac
.aif audio/aiff
.aifc audio/aiff
.aiff audio/aiff
.amr audio/amr
.au audio/basic
.avi video/x-msvideo
.cda application/x-cdf
.m4a audio/m4a
.mid audio/midi
.midi audio/midi
.mp3 audio/mpeg
.mp4 video/mp4
.mpeg audio/mpeg
.ogg audio/ogg
.opus audio/ogg
.ra audio/vnd.rn-realaudio
.ram audio/vnd.rn-realaudio
.snd audio/basic
.wav audio/wav
.weba audio/webm
.wma audio/x-ms-wma

Os seguintes tipos de conteúdo de imagem são aceitos:

Extensão de arquivo Tipo de conteúdo
.png image/png
.jpg image/jpg
.jpeg image/jpeg

Recuperar uma fonte

Para recuperar uma fonte específica adicionada a um notebook, use o método notebooks.sources.get.

REST

curl -X GET \
  -H "Authorization:Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/sources/SOURCE_ID"

Substitua:

  • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
    • us para a multirregião dos EUA
    • eu para a multirregião da UE
    • global para o local global
    Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
  • PROJECT_NUMBER: o número do projeto do Google Cloud .
  • LOCATION: a localização geográfica do repositório de dados, como global. Saiba mais em Locais.
  • NOTEBOOK_ID: o identificador exclusivo que você recebeu ao criar o notebook. Para mais informações, consulte Criar um notebook.
  • SOURCE_ID: o identificador da fonte que você recebeu ao adicionar a fonte ao notebook.

Se a solicitação for bem-sucedida, você vai receber uma resposta JSON semelhante a esta.

{
  "sources": [
    {
      "sourceId": {
        "id": "SOURCE_ID"
      },
      "title": "DISPLAY_NAME",
      "metadata": {
        "wordCount": 148,
        "tokenCount": 160
      },
      "settings": {
        "status": "SOURCE_STATUS_COMPLETE"
      },
     "name": "SOURCE_RESOURCE_NAME"

    }
  ]
}

Excluir fontes de dados de um notebook

Para excluir fontes de dados em massa de um notebook, use o método notebooks.sources.batchDelete.

REST

  curl -X POST \
    -H "Authorization:Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/sources:batchDelete" \
    -d '{
      "names": [
        "SOURCE_RESOURCE_NAME_1",
        "SOURCE_RESOURCE_NAME_2"
      ]
    }'

Substitua:

  • ENDPOINT_LOCATION: a multirregião da sua solicitação de API. Especifique um dos seguintes valores:
    • us para a multirregião dos EUA
    • eu para a multirregião da UE
    • global para o local global
    Para mais informações, consulte Especificar uma multirregião para seu repositório de dados.
  • PROJECT_NUMBER: o número do projeto do Google Cloud .
  • LOCATION: a localização geográfica do repositório de dados, como global. Saiba mais em Locais.
  • NOTEBOOK_ID: o identificador exclusivo do notebook.
  • SOURCE_RESOURCE_NAME: o nome completo do recurso da fonte de dados a ser excluída. Esse campo tem o padrão: projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/source/SOURCE_ID.

Se a solicitação for bem-sucedida, você vai receber um objeto JSON vazio.

A seguir