在筆記本中新增及管理資料來源 (API)

建立筆記本後,您可以將各種內容類型新增為資料來源。你可以批次上傳,也可以逐一上傳。來源包括 Google 文件、Google 簡報、原始文字、網頁內容和 YouTube 影片。

本頁面說明如何執行下列工作:

事前準備

如要將 Google 文件或 Google 簡報新增為資料來源,請使用 Google 使用者憑證授權存取 Google 雲端硬碟。如要這麼做,請執行下列 gloud auth login 指令,然後按照 CLI 中的指示操作。

gcloud auth login --enable-gdrive-access

批次新增資料來源

如要將來源新增至筆記本,請呼叫 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
    }
   ]
  }'

更改下列內容:

  • ENDPOINT_LOCATION:API 要求的適用多區域。指派下列其中一個值:
    • us- 美國多區域
    • 歐盟多區域:eu-
    • global-,即可查看全球位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_NUMBER:您的 Google Cloud 專案編號。
  • LOCATION: 資料存放區的地理位置,例如 global。 詳情請參閱「位置」。
  • NOTEBOOK_ID:筆記本的專屬 ID。
  • USER_CONTENT:資料來源內容。

你只能新增下列其中一個資料來源做為內容:

  • 如果是 Google 文件或 Google 簡報等 Google 雲端硬碟內容,請新增:

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

    更改下列內容:

    • DOCUMENT_ID_GOOGLE:Google 雲端硬碟中的檔案 ID。這個 ID 會顯示在檔案的網址中。如要取得檔案的文件 ID,請開啟檔案。網址模式為: https://docs.google.com/FILE_TYPE/d/DOCUMENT_ID_GOOGLE/edit?resourcekey=RESOURCE_KEY
    • MIME_TYPE:所選文件的 MIME 類型。使用 application/vnd.google-apps.document 適用於 Google 文件,或 application/vnd.google-apps.presentation 適用於 Google 簡報。
    • DISPLAY_NAME_GOOGLE:資料來源的顯示名稱。
  • 如果是原始文字輸入,請新增:

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

    更改下列內容:

    • DISPLAY_NAME_TEXT:資料來源的顯示名稱。
    • TEXT_CONTENT:您要上傳做為資料來源的原始文字內容。
  • 如果是網頁內容,請新增:

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

    更改下列內容:

    • URL_WEBCONTENT:要上傳為資料來源的內容網址。
    • DISPLAY_NAME_WEB:資料來源的顯示名稱。
  • 如果是影片內容,請新增:

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

    URL_YOUTUBE 替換為要上傳做為資料來源的 YouTube 影片網址。

如果要求成功,您應該會收到 source 物件的例項做為回應,類似於下列 JSON。請記下 SOURCE_IDSOURCE_RESOURCE_NAME,這些是執行其他工作 (例如擷取或刪除資料來源) 時的必要項目。

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

上傳檔案做為來源

除了批次新增資料來源,你也可以上傳單一檔案,做為筆記本中的資料來源。如要上傳單一檔案,請呼叫 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" \

更改下列內容:

  • PATH/TO/FILE:要上傳的檔案路徑。
  • FILE_DISPLAY_NAME:這個字串代表筆記本中檔案的顯示名稱。
  • CONTENT_TYPE:要上傳的內容類型。如需支援的內容類型清單,請參閱「支援的內容類型」。
  • ENDPOINT_LOCATION:API 要求的適用多區域。指派下列其中一個值:
    • us- 美國多區域
    • 歐盟多區域:eu-
    • global-,即可查看全球位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_NUMBER:您的 Google Cloud 專案編號。
  • LOCATION: 資料存放區的地理位置,例如 global。 詳情請參閱「位置」。
  • NOTEBOOK_ID:筆記本的專屬 ID。

如果要求成功,您應該會收到類似以下的 JSON 回應。

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

支援的內容類型

上傳做為來源的檔案必須是支援的格式。

支援的文件內容類型如下:

副檔名 內容類型
.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

支援的音訊內容類型如下:

副檔名 內容類型
.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

支援的圖片內容類型如下:

副檔名 內容類型
.png image/png
.jpg image/jpg
.jpeg image/jpeg

擷取來源

如要擷取新增至筆記本的特定來源,請使用 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"

更改下列內容:

  • ENDPOINT_LOCATION:API 要求的適用多區域。指派下列其中一個值:
    • us- 美國多區域
    • 歐盟多區域:eu-
    • global-,即可查看全球位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_NUMBER:您的 Google Cloud 專案編號。
  • LOCATION: 資料存放區的地理位置,例如 global。 詳情請參閱「位置」。
  • NOTEBOOK_ID:建立筆記本時收到的專屬 ID。詳情請參閱「建立記事本」。
  • SOURCE_ID:將來源新增至筆記本時收到的來源 ID。

如果要求成功,您應該會收到類似以下的 JSON 回應。

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

    }
  ]
}

從筆記本中刪除資料來源

如要從筆記本中大量刪除資料來源,請使用 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"
      ]
    }'

更改下列內容:

  • ENDPOINT_LOCATION:API 要求的適用多區域。指派下列其中一個值:
    • us- 美國多區域
    • 歐盟多區域:eu-
    • global-,即可查看全球位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_NUMBER:您的 Google Cloud 專案編號。
  • LOCATION: 資料存放區的地理位置,例如 global。 詳情請參閱「位置」。
  • NOTEBOOK_ID:筆記本的專屬 ID。
  • SOURCE_RESOURCE_NAME:要刪除的資料來源完整資源名稱。這個欄位的格式為: projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/source/SOURCE_ID

如果要求成功,您應該會收到空白的 JSON 物件。

後續步驟