取得 StreamAssist 的搜尋結果

在網頁應用程式中,你可以透過串流回應的形式取得問題解答。本文說明如何使用 REST API 取得答案。如要使用 Gemini Enterprise 網頁應用程式,請參閱「與助理對話」。

StreamAssist 總覽

StreamAssist 提供強大的互動式方式來處理使用者查詢。這項功能採用串流模式,可進行即時來回互動。

API 的主要功能包括:

  • 維持對話脈絡:使用工作階段維持對話脈絡,確保模型能瞭解先前互動範圍內的後續查詢。

  • 納入提供的檔案:將附加檔案做為背景資訊,提供更實用且相關的回覆。

  • 完美整合:可與各種代理程式和工具整合,滿足各種使用者要求。

事前準備

請確認您已備妥以下項目:

  • 已為 Google Cloud啟用 Discovery Engine API。 您可以在控制台的 Discovery Engine API 頁面啟用這項功能。Google Cloud

    前往 Discovery Engine API

  • 已指派 discoveryengine.assistants.assist 權限的 Discovery Engine 角色

  • 現有的 Gemini Enterprise 應用程式。如要建立應用程式,請參閱「建立應用程式」。

取得搜尋結果

你可以使用 streamAssist 方法查詢 Gemini Enterprise 並取得回覆。下列 curl 指令會列出必填欄位。

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "query": {
    "text": "QUERY_TEXT_1"
  }
}'

更改下列內容:

  • ENDPOINT_LOCATION-:API 要求的適用多區域。指派下列其中一個值:
    • 美國多區域:us-
    • eu- 適用於歐盟多區域
    • global-,即可查看全球位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID: Google Cloud 專案的 ID。
  • APP_ID:Gemini Enterprise 應用程式的專屬 ID。
  • LOCATION:資料儲存庫的多區域:globaluseu
  • QUERY_TEXT_1:搜尋查詢文字。

如要進一步瞭解欄位和傳回內容,請參閱「回應本文」。

在同一工作階段中取得搜尋結果

如要在現有工作階段中繼續對話並取得 Gemini Enterprise 的回覆,請使用 streamAssist 方法。下列程式碼範例顯示必要欄位:

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
  "query": {
    "text": "QUERY_TEXT_2"
  }
}'

更改下列內容:

  • ENDPOINT_LOCATION-:API 要求的適用多區域。指派下列其中一個值:
    • 美國多區域:us-
    • eu- 適用於歐盟多區域
    • global-,即可查看全球位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID: Google Cloud 專案的 ID。
  • APP_ID:Gemini Enterprise 應用程式的專屬 ID。
  • LOCATION:資料儲存庫的多區域:globaluseu
  • QUERY_TEXT_2:搜尋查詢文字。
  • SESSION_ID:先前對話或查詢的工作階段 ID。

如要進一步瞭解欄位和傳回內容,請參閱「回應本文」。

上傳檔案並取得搜尋結果 (預覽版)

如要提供更多背景資訊給助理,請將檔案上傳至工作階段,然後查詢檔案內容。步驟如下:

  1. 使用 addContextFile 方法將檔案上傳至工作階段。

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/sessions/SESSION_ID:addContextFile" \
      -d '
    {
      "fileName": "FILE_NAME",
      "mimeType": "MIME_TYPE",
      "fileContents": "BASE64_ENCODED_FILE"
    }'
    
    

    更改下列內容:

    • ENDPOINT_LOCATION-:API 要求的適用多區域。指派下列其中一個值:
      • 美國多區域:us-
      • eu- 適用於歐盟多區域
      • global-,即可查看全球位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • LOCATION:資料儲存庫的多區域:globaluseu
    • APP_ID:Gemini Enterprise 應用程式的專屬 ID。
    • SESSION_ID:先前對話或查詢的工作階段 ID。
    • FILE_NAME:檔案名稱。
    • MIME_TYPE:檔案的 MIME 類型,例如 text/plainapplication/pdf。如要進一步瞭解不同媒體類型,請參閱「媒體類型」。
    • BASE64_ENCODED_FILE:檔案的 Base64 編碼表示法。

    如要進一步瞭解欄位和傳回內容,請參閱「回應本文」。

  2. 使用相同的工作階段,透過 streamAssist 方法上傳檔案,並詢問相關問題。

    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_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
      -d '
    {
      "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
      "fileIds": ["FILE_ID"],
      "query": {
        "text": "QUERY_TEXT_3"
      }
    }'
    
    

    更改下列內容:

    • ENDPOINT_LOCATION-:API 要求的適用多區域。指派下列其中一個值:
      • 美國多區域:us-
      • eu- 適用於歐盟多區域
      • global-,即可查看全球位置
      詳情請參閱「為資料儲存庫指定多區域」。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • APP_ID:Gemini Enterprise 應用程式的專屬 ID。
    • LOCATION:資料儲存庫的多區域:globaluseu
    • QUERY_TEXT_3:搜尋查詢文字。
    • SESSION_ID:先前對話或查詢的工作階段 ID。
    • FILE_ID:您上傳至助理的檔案 ID。

    如要進一步瞭解欄位和傳回內容,請參閱「回應本文」。