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 contenu en tant que sources de données. Vous pouvez le faire par lot ou en tant que fichiers individuels. Parmi les sources, vous trouverez des documents Google Docs, des présentations 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 des documents Google Docs ou des présentations 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 gcloud auth login suivante et suivez les instructions de l'CLI.

gcloud auth login --enable-gdrive-access

Ajouter des sources de données par lot

Pour ajouter des sources à un notebook, appelez la notebooks.sources.batchCreate méthode.

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 : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_NUMBER: numéro de votre Google Cloud projet.
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour plus d'informations, consultez la section 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 de présentations 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 qui se trouve dans Google Drive. Cet ID apparaît dans l'URL du fichier. Pour obtenir l'ID de document d'un fichier, ouvrez-le. Son URL suit le modèle 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 entrée 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 de texte 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 le contenu vidéo, ajoutez :

     "videoContent": {
       "youtubeUrl": "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' source objet en réponse, semblable au JSON suivant. Notez les valeurs SOURCE_ID et SOURCE_RESOURCE_NAME, qui sont requises pour effectuer d'autres tâches, telles que la récupération ou la suppression de 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 lot, 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 qui indique le nom à afficher du fichier dans le notebook.
  • CONTENT_TYPE: type de contenu que vous souhaitez importer. Pour obtenir la liste des types de contenu compatibles, consultez la section Types de contenu compatibles.
  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_NUMBER: numéro de votre Google Cloud projet.
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour plus d'informations, consultez la section 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 contenu compatibles

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

Les types de contenu de document suivants sont compatibles :

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

Les types de contenu audio suivants sont compatibles :

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 compatibles :

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 notebooks.sources.get méthode.

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 : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_NUMBER: numéro de votre Google Cloud projet.
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour plus d'informations, consultez la section 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çu lorsque vous l'avez ajoutée à votre notebook.

Si la requête aboutit, vous devriez obtenir 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 en bloc d'un notebook, utilisez la notebooks.sources.batchDelete méthode.

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 : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_NUMBER: numéro de votre Google Cloud projet.
  • LOCATION : emplacement géographique de votre data store, par exemple global. Pour plus d'informations, consultez la section Emplacements.
  • NOTEBOOK_ID : identifiant unique du notebook.
  • SOURCE_RESOURCE_NAME: nom complet de la ressource de la source de données à supprimer. Ce champ suit le modèle suivant : projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/source/SOURCE_ID.

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

Étape suivante