Method: projects.locations.apps.sessions.streamRunSession

启动与 CES 代理的单轮互动。使用服务器端流式传输来提供增量结果和部分响应(在生成时)。

默认情况下,完整响应(例如,来自回调的消息或完整的 LLM 响应)会在可用时立即发送给客户端。如需直接从模型中以流式传输方式提供各个文本块,请将 enableTextStreaming 设置为 true。

HTTP 请求

POST https://ces.googleapis.com/v1/{config.session=projects/*/locations/*/apps/*/sessions/*}:streamRunSession

网址采用 gRPC 转码语法。

路径参数

参数
config.session

string

必需。会话的唯一标识符。格式:projects/{project}/locations/{location}/apps/{app}/sessions/{session}

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "config": {
    "session": string,
    "inputAudioConfig": {
      "audioEncoding": enum (AudioEncoding),
      "sampleRateHertz": integer,
      "noiseSuppressionLevel": string
    },
    "outputAudioConfig": {
      "audioEncoding": enum (AudioEncoding),
      "sampleRateHertz": integer
    },
    "historicalContexts": [
      {
        "role": string,
        "chunks": [
          {
            object (Chunk)
          }
        ],
        "eventTime": string
      }
    ],
    "entryAgent": string,
    "deployment": string,
    "timeZone": string,
    "useToolFakes": boolean,
    "remoteDialogflowQueryParameters": {
      "webhookHeaders": {
        string: string,
        ...
      },
      "payload": {
        object
      },
      "endUserMetadata": {
        object
      }
    },
    "enableTextStreaming": boolean,
    "excludeDiagnosticInfo": boolean
  },
  "inputs": [
    {
      object (SessionInput)
    }
  ]
}
字段
config.inputAudioConfig

object (InputAudioConfig)

可选。用于处理输入音频的配置。

config.outputAudioConfig

object (OutputAudioConfig)

可选。用于生成输出音频的配置。

config.historicalContexts[]

object (Message)

可选。会话的历史上下文,包括用户输入、智能体回答和其他消息。通常,CES 代理会自动管理会话,因此客户端无需明确填充此字段。不过,客户端可以选择性地替换历史上下文,以强制会话从特定状态开始。

config.entryAgent

string

可选。处理会话的初始客服人员。如果未指定,会话将由应用的 root agent 处理。格式:projects/{project}/locations/{location}/apps/{app}/agents/{agent}

config.deployment

string

可选。会话要使用的应用部署。格式:projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}

config.timeZone

string

可选。用户的时区。如果提供,代理将使用该时区来处理与日期和时间相关的变量。否则,代理将使用 App.time_zone_settings 中指定的时区。

格式为 IANA 时区数据库中的时区,例如“America/Los_Angeles”。

config.useToolFakes

boolean

可选。是否为会话使用工具伪造。如果设置了此字段,代理将尝试使用工具伪造对象,而不是调用实际工具。

config.remoteDialogflowQueryParameters

object (SessionConfig.RemoteDialogflowQueryParameters)

可选。当会话控制权转移到远程代理时,要发送到远程 Dialogflow 代理的 QueryParameters

config.enableTextStreaming

boolean

可选。是否启用模型流式传输文本输出。默认情况下,系统会先收集模型生成的文本输出,然后再将其发送给客户端。注意:此功能仅支持通过 sessions.streamRunSessionBidiRunSession 进行的文字(非语音)会话。

config.excludeDiagnosticInfo

boolean

可选。是否从会话输出中排除诊断信息。

inputs[]

object (SessionInput)

必需。会话的输入。

响应正文

如果成功,响应正文将包含 RunSessionResponse 实例数据流。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/ces

如需了解详情,请参阅 Authentication Overview

IAM 权限

需要拥有 session 资源的以下 IAM 权限:

  • ces.sessions.runSession

如需了解详情,请参阅 IAM 文档