Ajouter et gérer des sources de données dans un notebook (API)

Une fois votre notebook créé, vous pouvez y ajouter différents types de contenus en tant que sources de données. Vous pouvez le faire par lots ou en tant que fichiers individuels. Parmi les sources, on trouve Google Docs, Google Slides, du texte brut, du contenu Web et des vidéos YouTube.

Cette page explique comment effectuer les tâches suivantes :

Avant de commencer

Si vous prévoyez d'ajouter Google Docs ou Google Slides comme source de données, vous devez autoriser l'accès à Google Drive à l'aide des identifiants utilisateur Google. Pour ce faire, exécutez la commande gloud auth login suivante et suivez les instructions de la CLI.

gcloud auth login --enable-gdrive-access

Ajouter des sources de données par lot

Pour ajouter des sources à un notebook, appelez la méthode 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
    }
   ]
  }'

Remplacez les éléments suivants :

  • ENDPOINT_LOCATION : région multirégionale pour votre requête API. Attribuez l'une des valeurs suivantes :
    • us- pour la multirégion des États-Unis
    • eu- pour la multirégion de l'UE
    • global- pour l'emplacement "Global"
    Pour en savoir plus, consultez Spécifier une multirégion pour votre datastore.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud .
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour en savoir plus, consultez Emplacements.
  • NOTEBOOK_ID : identifiant unique du notebook.
  • USER_CONTENT : contenu de la source de données.

Vous ne pouvez ajouter qu'une seule des sources de données suivantes comme contenu :

  • Pour le contenu Google Drive composé de documents Google Docs ou Google Slides, ajoutez :

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

    Remplacez les éléments suivants :

    • DOCUMENT_ID_GOOGLE : ID du fichier dans Google Drive. Cet ID figure dans l'URL du fichier. Pour obtenir l'ID de document d'un fichier, ouvrez-le. Son URL suit le format suivant : https://docs.google.com/FILE_TYPE/d/DOCUMENT_ID_GOOGLE/edit?resourcekey=RESOURCE_KEY.
    • MIME_TYPE : type MIME du document sélectionné. Utilisez application/vnd.google-apps.document pour Google Docs ou application/vnd.google-apps.presentation pour Google Slides.
    • DISPLAY_NAME_GOOGLE : nom à afficher de la source de données.
  • Pour une saisie de texte brut, ajoutez :

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

    Remplacez les éléments suivants :

    • DISPLAY_NAME_TEXT : nom à afficher de la source de données.
    • TEXT_CONTENT : contenu textuel brut que vous souhaitez importer en tant que source de données.
  • Pour le contenu Web, ajoutez :

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

    Remplacez les éléments suivants :

    • URL_WEBCONTENT : URL du contenu que vous souhaitez importer en tant que source de données.
    • DISPLAY_NAME_WEB : nom à afficher de la source de données.
  • Pour les contenus vidéo, ajoutez :

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

    Remplacez URL_YOUTUBE par l'URL de la vidéo YouTube que vous souhaitez importer en tant que source de données.

Si la requête aboutit, vous devriez obtenir une instance de l'objet source en réponse, semblable au code JSON suivant. Notez les SOURCE_ID et SOURCE_RESOURCE_NAME, qui sont nécessaires pour effectuer d'autres tâches, comme récupérer ou supprimer la source de données.

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

Importer un fichier en tant que source

En plus d'ajouter des sources de données par lots, vous pouvez importer des fichiers individuels qui peuvent être utilisés comme sources de données dans votre notebook. Pour importer un seul fichier, appelez la méthode 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" \

Remplacez les éléments suivants :

  • PATH/TO/FILE : chemin d'accès au fichier que vous souhaitez importer.
  • FILE_DISPLAY_NAME : chaîne indiquant le nom à afficher du fichier dans le notebook.
  • CONTENT_TYPE : type de contenu que vous souhaitez importer. Pour obtenir la liste des types de contenus acceptés, consultez Types de contenus acceptés.
  • ENDPOINT_LOCATION : région multirégionale pour votre requête API. Attribuez l'une des valeurs suivantes :
    • us- pour la multirégion des États-Unis
    • eu- pour la multirégion de l'UE
    • global- pour l'emplacement "Global"
    Pour en savoir plus, consultez Spécifier une multirégion pour votre datastore.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud .
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour en savoir plus, consultez Emplacements.
  • NOTEBOOK_ID : identifiant unique du notebook.

Si la requête aboutit, vous devriez obtenir une réponse JSON semblable à la suivante.

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

Types de contenus acceptés

Le fichier que vous importez en tant que source doit être compatible.

Les types de contenu de document suivants sont acceptés :

File extension (Extension de fichier) Type de contenu
.pdf application/pdf
Fichiers .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

Les types de contenus audio suivants sont acceptés :

File extension (Extension de fichier) Type de contenu
.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

Les types de contenu d'image suivants sont acceptés :

File extension (Extension de fichier) Type de contenu
.png image/png
.jpg image/jpg
.jpeg image/jpeg

Récupérer une source

Pour récupérer une source spécifique ajoutée à un notebook, utilisez la méthode 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"

Remplacez les éléments suivants :

  • ENDPOINT_LOCATION : région multirégionale pour votre requête API. Attribuez l'une des valeurs suivantes :
    • us- pour la multirégion des États-Unis
    • eu- pour la multirégion de l'UE
    • global- pour l'emplacement "Global"
    Pour en savoir plus, consultez Spécifier une multirégion pour votre datastore.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud .
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour en savoir plus, consultez Emplacements.
  • NOTEBOOK_ID : identifiant unique que vous avez reçu lorsque vous avez créé le notebook. Pour en savoir plus, consultez Créer un notebook.
  • SOURCE_ID : identifiant de la source que vous avez reçue lorsque vous l'avez ajoutée à votre notebook.

Si la requête aboutit, vous devriez recevoir une réponse JSON semblable à la suivante.

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

    }
  ]
}

Supprimer des sources de données d'un notebook

Pour supprimer des sources de données de manière groupée à partir d'un notebook, utilisez la méthode 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"
      ]
    }'

Remplacez les éléments suivants :

  • ENDPOINT_LOCATION : région multirégionale pour votre requête API. Attribuez l'une des valeurs suivantes :
    • us- pour la multirégion des États-Unis
    • eu- pour la multirégion de l'UE
    • global- pour l'emplacement "Global"
    Pour en savoir plus, consultez Spécifier une multirégion pour votre datastore.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud .
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour en savoir plus, consultez Emplacements.
  • NOTEBOOK_ID : identifiant unique du notebook.
  • SOURCE_RESOURCE_NAME : nom complet de la ressource de la source de données à supprimer. Ce champ a le format suivant : projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/source/SOURCE_ID.

Si la requête aboutit, vous devriez recevoir un objet JSON vide.

Étapes suivantes