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。上传文件时,其 ID 会在 AddContextFileResponse.file_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 回答资源对象,包含助理针对用户查询给出的最终回答的部分内容。

如果当前响应未向之前发送的 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

可选。来自 Assistant.agent_configs 的代理的 ID

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

必需。用于标识处理请求的代理资源的 ID。

此字段必须符合 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 中的过滤是通过将 LHS 过滤键映射到 Vertex AI Search 后端中定义的键属性来完成的,此映射由客户在其架构中定义。例如,媒体客户的架构中可能包含“名称”字段。在这种情况下,过滤条件将如下所示:filter --> name:'ANY("king kong")'

如需详细了解过滤(包括语法和过滤运算符),请参阅过滤

WebGroundingSpec

此类型没有字段。

网络接地工具的规范。

ImageGenerationSpec

此类型没有字段。

图片生成工具的规范。

VideoGenerationSpec

此类型没有字段。

视频生成工具的规范。

GenerationSpec

请求的助理生成规范。这样,您就可以在引擎级替换默认的生成配置。

JSON 表示法
{
  "modelId": string
}
字段
modelId

string

可选。用于生成式模型的 Vertex AI modelId。如果未设置,系统将使用默认的 Assistant 模型。

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

生成更新的调用的唯一标识符。

ToolResult

工具调用的(部分)结果。

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

string

生成结果的工具调用的唯一标识符。

result

object (Reply)

结果的部分内容。