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

Depois de criar o notebook, você pode adicionar vários tipos de conteúdo a ele como fontes de dados. Você pode fazer isso em lotes ou como arquivos únicos. Algumas das fontes incluem Documentos Google, Apresentações Google, 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 Apresentações como fonte de dados, autorize o acesso ao Google Drive usando as credenciais de usuário do Google. Para isso, execute o comando gloud auth login a seguir e siga as instruções na CLI.

gcloud auth login --enable-gdrive-access

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. Atribua 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 seu projeto Google Cloud .
  • LOCATION: a localização geográfica do seu repositório de dados, como global. Para mais informações, consulte Locais.
  • NOTEBOOK_ID: o identificador exclusivo do notebook.
  • USER_CONTENT: o conteúdo da fonte de dados.

Você só pode adicionar uma das seguintes fontes de dados como conteúdo:

  • Para conteúdo do Google Drive que consiste em Documentos ou Apresentações Google, 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. Esse ID aparece no URL do arquivo. Para acessar o ID de um arquivo, abra o documento. 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 Documentos Google ou application/vnd.google-apps.presentation para Apresentações Google.
    • 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 uma fonte de dados.
    • DISPLAY_NAME_WEB: o nome de exibição da fonte de dados.
  • Para conteúdo de vídeo, adicione:

     "videoContent": {
       "url": "URL_YOUTUBE"
     }
    

    Substitua URL_YOUTUBE pelo URL do vídeo do YouTube que você quer enviar como uma 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. Observe 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 enviar.
  • 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 enviar. 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. Atribua 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 seu projeto Google Cloud .
  • LOCATION: a localização geográfica do seu repositório de dados, como global. Para mais informações, consulte Locais.
  • NOTEBOOK_ID: o identificador exclusivo do notebook.

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

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

Tipos de conteúdo compatíveis

O arquivo enviado como fonte precisa ser compatível.

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

Extensão do 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 do 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 do 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. Atribua 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 seu projeto Google Cloud .
  • LOCATION: a localização geográfica do seu repositório de dados, como global. Para mais informações, consulte 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. Atribua 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 seu projeto Google Cloud .
  • LOCATION: a localização geográfica do seu repositório de dados, como global. Para mais informações, consulte Locais.
  • NOTEBOOK_ID: o identificador exclusivo do notebook.
  • SOURCE_RESOURCE_NAME: o nome completo dos recursos 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