ノートブックでデータソースを追加して管理する(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 マルチリージョンの場合: eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号。
  • LOCATION: データストアの地理的なロケーション(global など)。詳細については、ロケーションをご覧ください。
  • NOTEBOOK_ID: ノートブックの固有識別子。
  • USER_CONTENT: データソースのコンテンツ。

コンテンツとして追加できるデータソースは、次のいずれか 1 つのみです。

  • Google ドキュメントまたは Google スライドで構成される Google ドライブのコンテンツの場合は、以下を追加します。

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

    次のように置き換えます。

    • DOCUMENT_ID_GOOGLE: Google ドライブ内のファイルの ID。この ID はファイルの URL に表示されます。ファイルのドキュメント ID を取得するには、ファイルを開きます。URL のパターンは https://docs.google.com/FILE_TYPE/d/DOCUMENT_ID_GOOGLE/edit?resourcekey=RESOURCE_KEY です。
    • MIME_TYPE: 選択したドキュメントの MIME タイプ。Google ドキュメントの場合は application/vnd.google-apps.document、Google スライドの場合は application/vnd.google-apps.presentation を使用します。
    • 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: データソースとしてアップロードするコンテンツの URL。
    • DISPLAY_NAME_WEB: データソースの表示名。
  • 動画コンテンツの場合は、以下を追加します。

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

    URL_YOUTUBE は、データソースとしてアップロードする YouTube 動画の URL に置き換えます。

リクエストが成功すると、次の JSON のような source オブジェクトのインスタンスがレスポンスとして返されます。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 マルチリージョンの場合: eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号。
  • LOCATION: データストアの地理的なロケーション(global など)。詳細については、ロケーションをご覧ください。
  • NOTEBOOK_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 マルチリージョンの場合: eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号。
  • LOCATION: データストアの地理的なロケーション(global など)。詳細については、ロケーションをご覧ください。
  • NOTEBOOK_ID: ノートブックの作成時に受け取った一意の識別子。詳細については、ノートブックを作成するをご覧ください。
  • SOURCE_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 マルチリージョンの場合: eu-
    • グローバル ロケーションの場合は global-
    詳細については、データストアのマルチリージョンを指定するをご覧ください。
  • PROJECT_NUMBER: Google Cloud プロジェクトの番号。
  • LOCATION: データストアの地理的なロケーション(global など)。詳細については、ロケーションをご覧ください。
  • NOTEBOOK_ID: ノートブックの固有識別子。
  • SOURCE_RESOURCE_NAME: 削除するデータソースの完全なリソース名。このフィールドのパターンは projects/PROJECT_NUMBER/locations/LOCATION/notebooks/NOTEBOOK_ID/source/SOURCE_ID です。

リクエストが成功すると、空の JSON オブジェクトが返されます。

次のステップ