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)

结果的部分内容。