Method: projects.locations.collections.engines.assistants.streamAssist

以串流方式協助使用者查詢。

HTTP 要求

POST https://discoveryengine.googleapis.com/v1alpha/{name=projects/*/locations/*/collections/*/engines/*/assistants/*}:streamAssist

這個網址使用 gRPC 轉碼語法。

路徑參數

參數
name

string

這是必要旗標,Assistant 的資源名稱。格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/assistants/{assistant}

要求主體

要求主體包含下列結構的資料:

JSON 表示法
{
  "query": {
    object (Query)
  },
  "answerGenerationMode": enum (AnswerGenerationMode),
  "session": string,
  "assistSkippingMode": enum (AssistSkippingMode),
  "fileIds": [
    string
  ],
  "userMetadata": {
    object (AssistUserMetadata)
  },
  "languageCode": string,
  "googleSearchGroundingEnabled": boolean,
  "webGroundingEnabled": boolean,
  "dataStoreSpecs": [
    {
      object (DataStoreSpec)
    }
  ],
  "agentsConfig": {
    object (AgentsConfig)
  },
  "agentsSpec": {
    object (AgentsSpec)
  },
  "assistGenerationConfig": {
    object (AssistGenerationConfig)
  },
  "cannedQuery": string,
  "toolsSpec": {
    object (ToolsSpec)
  },
  "generationSpec": {
    object (GenerationSpec)
  }
}
欄位
query

object (Query)

(選用步驟) 目前的使用者查詢。

只有在提供 fileIds 時,系統才支援空白查詢。在這種情況下,系統會根據這些情境檔案生成答案。

answerGenerationMode

enum (AnswerGenerationMode)

(選用步驟) 生成答案的模式。如未指定,則預設為 NORMAL

session

string

(選用步驟) 要求使用的工作階段。如果指定,助理就能存取工作階段記錄,並將查詢和答案儲存在該處。

如果將 - 指定為工作階段 ID,或將其留空,系統就會建立新的工作階段,並自動產生 ID。

格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}

assistSkippingMode

enum (AssistSkippingMode)

(選用步驟) 決定助理不會回覆查詢的案例。如果略過回答,系統會在 AssistResponse.answer 中列出原因。AssistAnswer.assist_skipped_reasons

fileIds[]

string

(選用步驟) 用於回答要求的檔案 ID。上傳檔案時,系統會在 AddContextFileResponse.file_id 中傳回檔案 ID。

userMetadata

object (AssistUserMetadata)

(選用步驟) 啟動查詢的使用者相關資訊。

languageCode
(deprecated)

string

(選用步驟) 已淘汰,請改用 [preferredLanguageCode][UserMetadata.preferred_language_code]。如果語言偵測失敗,系統會使用此語言回覆。無論語言偵測結果為何,動作建立的錯誤訊息都會使用這個語言。

googleSearchGroundingEnabled
(deprecated)

boolean

(選用步驟) 已淘汰,請勿使用這個欄位。

webGroundingEnabled
(deprecated)

boolean

(選用步驟) 已淘汰,請勿使用這個欄位。

dataStoreSpecs[]
(deprecated)

object (DataStoreSpec)

(選用步驟) 已淘汰:請改用 [dataStoreSpecs][ToolSpec.VertexAiSearchSpec.data_store_specs]。定義 DataStore 的規格,可在搜尋呼叫中進行篩選,以及這些資料儲存庫的設定。只有在Engine有多個資料儲存庫時,系統才會考量這項因素。

如果未設定這個欄位,系統會使用引擎中的所有資料儲存庫,但 ignoreDataStores 設為 true 時除外。

agentsConfig

object (AgentsConfig)

(選用步驟) 用於處理要求的代理程式設定。

agentsSpec

object (AgentsSpec)

(選用步驟) 用於處理要求的代理程式規格。

assistGenerationConfig
(deprecated)

object (AssistGenerationConfig)

(選用步驟) 已淘汰,請改用 generationSpec。要求層級生成設定。這項設定可用於覆寫引擎層級的預設生成設定。

cannedQuery

string

(選用步驟) 這項要求的 CannedQuery 資源名稱。只有在工作階段為新工作階段時,才能設定這個參數,否則系統會傳回 INVALID_ARGUMENT 錯誤。

如果提供 StreamAssistRequest.session,但對應的 Session 中沒有任何輪次,或未提供 StreamAssistRequest.session (並建立新的 Session),則系統會將該工作階段視為新工作階段。

如果提供 cannedQuery 參數,系統會在處理期間考量相應的 CannedQueryCannedQuery 中會說明並記錄確切的行為。

格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/assistants/{assistant}/cannedQueries/{cannedQuery}

toolsSpec

object (ToolsSpec)

(選用步驟) 用於處理要求的工具規格。

generationSpec

object (GenerationSpec)

(選用步驟) 要求的生成設定規格。

回應主體

AssistantService.StreamAssist 方法的回應。

如果成功,回應主體會含有以下結構的資料:

JSON 表示法
{
  "answer": {
    object (AssistAnswer)
  },
  "sessionInfo": {
    object (SessionInfo)
  },
  "statusUpdates": [
    {
      object (StatusUpdate)
    }
  ],
  "assistToken": string,
  "toolResult": [
    {
      object (ToolResult)
    }
  ],
  "finalResultToolInvocationId": string
}
欄位
answer

object (AssistAnswer)

assistants.assist 答案資源物件,內含 AI 助理對使用者查詢的最終回覆部分內容。

如果目前的回應未在先前傳送的 AssistAnswer.replies 中新增任何內容,則不會顯示這項資訊。

觀察 AssistAnswer.state,看看是否會出現更多部分。當狀態為 IN_PROGRESS 時,每個回應中的 AssistAnswer.replies 欄位都會包含回覆 (回覆片段),這些回覆會附加至先前回應中收到的回覆。AssistAnswer.name不會填寫。

如果狀態為 SUCCEEDEDFAILEDSKIPPED,回應會是最後一個回應,且 AssistAnswer.name 會包含值。

sessionInfo

object (SessionInfo)

工作階段資訊。只會包含在回應串流的最終 StreamAssistResponse 中。

statusUpdates[]

object (StatusUpdate)

選用進度更新。

assistToken

string

全域不重複 ID,用於識別目前的要求和回應串流配對。用於意見回饋和支援服務。

toolResult[]
(deprecated)

object (ToolResult)

工具呼叫結果。

finalResultToolInvocationId

string

如果這個欄位存在,則包含工具調用的 ID,其結果會做為最終答案。

授權範圍

需要下列其中一種 OAuth 範圍:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/discoveryengine.readwrite
  • https://www.googleapis.com/auth/discoveryengine.assist.readwrite

詳情請參閱Authentication Overview

IAM 權限

需要 name 資源的下列 IAM 權限:

  • discoveryengine.assistants.assist

詳情請參閱 IAM 說明文件

AnswerGenerationMode

可用的答案生成模式。

列舉
ANSWER_GENERATION_MODE_UNSPECIFIED 未指定答案生成模式。
NORMAL 一般答案生成模式。可能會觸發幾次搜尋和通話動作。
RESEARCH 研究答案生成模式。深入瞭解查詢,觸發許多與查詢相關的各種主題搜尋。
AGENT 虛擬服務專員答案生成模式。使用 agentsConfig 中定義的虛擬服務專員生成答案。

AssistSkippingMode

可略過的輔助要求行為。

列舉
ASSIST_SKIPPING_MODE_UNSPECIFIED 預設值。如果查詢並非尋求協助,可以略過回答。
REQUEST_ASSIST 要求 Google 助理回答。如果查詢未通過政策檢查,系統仍可能會略過答案。

AgentsConfig

用於處理要求的代理程式設定。

JSON 表示法
{

  // Union field config can be only one of the following:
  "noCodeAgentsConfig": {
    object (NoCodeAgentsConfig)
  },
  "assistantAgentConfigId": string,
  "agent": string,
  "inlineAgent": {
    object (Agent)
  },
  "vertexAiAgentId": string
  // End of list of possible types for union field config.
}
欄位
聯集欄位 config。設定不同類型的代理程式。config 只能是下列其中一項:
noCodeAgentsConfig
(deprecated)

object (NoCodeAgentsConfig)

(選用步驟) 已淘汰:無程式碼 Agentspace 代理程式的設定。設定完成後,系統會根據設定處理 assistants.assist 要求。請改用 agent

assistantAgentConfigId

string

選填。代理程式的 ID,來自 Assistant.agent_configs

agent

string

要使用的代理程式名稱。格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/assistants/{assistant}/agents/{agent}

inlineAgent

object (Agent)

要使用的 Agent 內嵌定義。如果提供,系統會使用根據這項定義的代理程式。這是代理商的暫時代表,系統會忽略 Agent.name 欄位。

vertexAiAgentId

string

選用。來自 Assistant.vertex_ai_agent_configs 的服務專員 ID。ID 可以是設定中註冊的全名,也可以是最後一個斜線後的部分。

NoCodeAgentsConfig

已淘汰:無程式碼 Agentspace 代理程式的設定。請改用 agent

JSON 表示法
{
  "agent": string
}
欄位
agent

string

(選用步驟) 要使用的代理程式名稱。

AgentsSpec

用於處理要求的代理程式規格。

JSON 表示法
{
  "agentSpecs": [
    {
      object (AgentSpec)
    }
  ]
}
欄位
agentSpecs[]

object (AgentSpec)

(選用步驟) 用於處理要求的代理程式規格。

AgentSpec

代理程式規格。

JSON 表示法
{
  "agentId": string
}
欄位
agentId

string

必要。用於識別處理要求的代理程式資源。

這個欄位必須符合 RFC-1034,長度上限為 63 個字元。

ToolsSpec

用於處理要求的工具規格。

JSON 表示法
{
  "toolRegistry": string,
  "vertexAiSearchSpec": {
    object (VertexAiSearchSpec)
  },
  "webGroundingSpec": {
    object (WebGroundingSpec)
  },
  "imageGenerationSpec": {
    object (ImageGenerationSpec)
  },
  "videoGenerationSpec": {
    object (VideoGenerationSpec)
  }
}
欄位
toolRegistry

string

(選用步驟) 要使用的工具登錄名稱。格式:projects/{project}/locations/{location}/toolRegistries/{toolRegistry}

vertexAiSearchSpec

object (VertexAiSearchSpec)

(選用步驟) Vertex AI Search 工具的規格。

webGroundingSpec

object (WebGroundingSpec)

(選用步驟) 網頁基準工具的規格。如有這個欄位,系統會啟用網頁搜尋功能,以建立回覆基準。只有在 Assistant.web_grounding_type 為 [WEB_GROUNDING_TYPE_GOOGLE_SEARCH][] 或 [WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH][] 時,這項功能才會運作。

imageGenerationSpec

object (ImageGenerationSpec)

(選用步驟) 圖像生成工具的規格。

videoGenerationSpec

object (VideoGenerationSpec)

(選用步驟) 影片生成工具的規格。

VertexAiSearchSpec

Vertex AI Search 工具的規格。

JSON 表示法
{
  "disabled": boolean,
  "dataStoreSpecs": [
    {
      object (DataStoreSpec)
    }
  ],
  "filter": string
}
欄位
disabled
(deprecated)

boolean

(選用步驟) 已淘汰,請勿使用這個欄位。Vertex AI Search 工具是否已停用。預設值為 false,工具預設為啟用。

dataStoreSpecs[]

object (DataStoreSpec)

(選用步驟) 定義 DataStore 的規格,可在搜尋呼叫中進行篩選,以及這些資料儲存庫的設定。只有在Engine有多個資料儲存庫時,系統才會考量這項因素。

filter

string

(選用步驟) 篩選器語法包含運算式語言,可從要篩選的文件的一或多個欄位建構述詞。篩選運算式會區分大小寫。

如果無法辨識這個欄位,系統會傳回 INVALID_ARGUMENT

如要在 Vertex AI Search 中進行篩選,請將左側的篩選鍵對應至 Vertex AI Search 後端定義的鍵屬性,這項對應是由客戶在結構定義中定義。舉例來說,媒體客戶的結構定義中可能會有「name」欄位。在本例中,篩選器會如下所示:filter --> name:'ANY("king kong")'

如要進一步瞭解篩選功能,包括語法和篩選運算子,請參閱「篩選

WebGroundingSpec

這個類型沒有任何欄位。

網頁基準工具的規格。

ImageGenerationSpec

這個類型沒有任何欄位。

圖像生成工具的規格。

VideoGenerationSpec

這個類型沒有任何欄位。

影片生成工具的規格。

GenerationSpec

要求的 Google 助理生成規格。這項功能可讓您在引擎層級覆寫預設生成設定。

JSON 表示法
{
  "modelId": string
}
欄位
modelId

string

(選用步驟) 用於生成模型的 Vertex AI modelId。如未設定,系統會使用預設的 Google 助理模型。

SessionInfo

工作階段相關資訊。

JSON 表示法
{
  "session": string,
  "queryId": string
}
欄位
session

string

新生成或繼續的工作階段名稱。

格式:projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}

queryId

string

與這項輔助 API 呼叫相應的查詢 ID。一個工作階段可以有多個輪次,每個輪次都有專屬的查詢 ID。

在 assistants.assist API 呼叫中指定工作階段名稱和這個查詢 ID,即可在這次搜尋呼叫的搜尋結果脈絡中提出輔助要求。

StatusUpdate

有關輔助通話進度的最新消息。

JSON 表示法
{
  "updateText": string,
  "invocationId": string
}
欄位
updateText

string

任意文字狀態更新,例如「在人資文件內搜尋福利資訊」或「網頁搜尋『登月』,得到 12 筆結果」。

invocationId

string

產生更新的調用作業專屬 ID。

ToolResult

工具調用結果 (部分)。

JSON 表示法
{
  "toolInvocationId": string,
  "result": {
    object (Reply)
  }
}
欄位
toolInvocationId

string

生成結果的工具調用專屬 ID。

result

object (Reply)

結果的部分內容。