- HTTP 请求
- 路径参数
- 请求正文
- 响应正文
- 授权范围
- IAM 权限
- SessionConfig
- InputAudioConfig
- AudioEncoding
- OutputAudioConfig
- SessionConfig.RemoteDialogflowQueryParameters
- SessionInput
- ToolResponses
- 活动
- SessionOutput
- ToolCalls
- 引用
- Citations.CitedChunk
- GoogleSearchSuggestions
- WebSearchQuery
- EndSession
- SessionOutput.DiagnosticInfo
在会话中启动与 CES 代理的单轮互动。
HTTP 请求
POST https://ces.googleapis.com/v1/{config.session=projects/*/locations/*/apps/*/sessions/*}:runSession
网址采用 gRPC 转码语法。
路径参数
| 参数 | |
|---|---|
config.session |
必需。会话的唯一标识符。格式: |
请求正文
请求正文中包含结构如下的数据:
| JSON 表示法 |
|---|
{ "config": { "session": string, "inputAudioConfig": { "audioEncoding": enum ( |
| 字段 | |
|---|---|
config.inputAudioConfig |
可选。用于处理输入音频的配置。 |
config.outputAudioConfig |
可选。用于生成输出音频的配置。 |
config.historicalContexts[] |
可选。会话的历史背景信息,包括用户输入、智能体回答和其他消息。通常,CES 代理会自动管理会话,因此客户端无需明确填充此字段。不过,客户端可以选择替换历史上下文,强制会话从特定状态开始。 |
config.entryAgent |
可选。处理会话的初始客服人员。如果未指定,会话将由应用的 |
config.deployment |
可选。会话要使用的应用部署。格式: |
config.timeZone |
可选。用户的时区。如果提供,代理将使用该时区来处理与日期和时间相关的变量。否则,代理将使用 App.time_zone_settings 中指定的时区。 格式为 IANA 时区数据库中的时区,例如“America/Los_Angeles”。 |
config.remoteDialogflowQueryParameters |
可选。当会话控制权转移到远程 Dialogflow 代理时,要发送给远程代理的 QueryParameters。 |
inputs[] |
必需。会话的输入。 |
响应正文
SessionService.RunSession 的响应消息。
如果成功,响应正文将包含结构如下的数据:
| JSON 表示法 |
|---|
{
"outputs": [
{
object ( |
| 字段 | |
|---|---|
outputs[] |
会话的输出。 |
授权范围
需要以下 OAuth 范围之一:
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/ces
如需了解详情,请参阅 Authentication Overview。
IAM 权限
需要拥有 session 资源的以下 IAM 权限:
ces.sessions.runSession
如需了解详情,请参阅 IAM 文档。
SessionConfig
会话的配置。
| JSON 表示法 |
|---|
{ "session": string, "inputAudioConfig": { object ( |
| 字段 | |
|---|---|
session |
必需。会话的唯一标识符。格式: |
inputAudioConfig |
可选。用于处理输入音频的配置。 |
outputAudioConfig |
可选。用于生成输出音频的配置。 |
historicalContexts[] |
可选。会话的历史背景信息,包括用户输入、智能体回答和其他消息。通常,CES 代理会自动管理会话,因此客户端无需明确填充此字段。不过,客户端可以选择替换历史上下文,强制会话从特定状态开始。 |
entryAgent |
可选。处理会话的初始客服人员。如果未指定,会话将由应用的 |
deployment |
可选。会话要使用的应用部署。格式: |
timeZone |
可选。用户的时区。如果提供,代理将使用该时区来处理与日期和时间相关的变量。否则,代理将使用 App.time_zone_settings 中指定的时区。 格式为 IANA 时区数据库中的时区,例如“America/Los_Angeles”。 |
remoteDialogflowQueryParameters |
可选。当会话控制权转移到远程 Dialogflow 代理时,要发送给远程代理的 QueryParameters。 |
InputAudioConfig
InputAudioConfig 用于配置 CES 代理应如何解读传入的音频数据。
| JSON 表示法 |
|---|
{
"audioEncoding": enum ( |
| 字段 | |
|---|---|
audioEncoding |
必需。输入音频数据的编码。 |
sampleRateHertz |
必需。输入音频数据的采样率(以赫兹为单位)。 |
noiseSuppressionLevel |
可选。是否对输入音频启用噪声抑制。可选的值包括“low”“moderate”“high”“very_high”。 |
AudioEncoding
AudioEncoding 用于指定音频数据的编码格式。
| 枚举 | |
|---|---|
AUDIO_ENCODING_UNSPECIFIED |
未指定音频编码。 |
LINEAR16 |
16 位线性 PCM 音频编码。 |
MULAW |
8 位采样,使用 G.711 PCMU/mu-law 压缩 14 位音频采样。 |
ALAW |
8 位采样,使用 G.711 PCMU/A-law 压缩 14 位音频采样。 |
OutputAudioConfig
OutputAudioConfig 用于配置 CES 代理应如何合成传出的音频响应。
| JSON 表示法 |
|---|
{
"audioEncoding": enum ( |
| 字段 | |
|---|---|
audioEncoding |
必需。输出音频数据的编码。 |
sampleRateHertz |
必需。输出音频数据的采样率(以赫兹为单位)。 |
SessionConfig.RemoteDialogflowQueryParameters
当会话控制权转移到远程 Dialogflow 代理时,要发送给远程代理的 QueryParameters。
| JSON 表示法 |
|---|
{ "webhookHeaders": { string: string, ... }, "payload": { object }, "endUserMetadata": { object } } |
| 字段 | |
|---|---|
webhookHeaders |
可选。要作为 QueryParameters 中的 webhookHeaders 发送的 HTTP 标头。 包含一系列 |
payload |
可选。要在 QueryParameters 中发送的载荷。 |
endUserMetadata |
可选。要在 QueryParameters 中发送的最终用户元数据。 |
SessionInput
会话的输入。
| JSON 表示法 |
|---|
{ "willContinue": boolean, // Union field |
| 字段 | |
|---|---|
willContinue |
可选。一个标志,用于指示当前消息是否是双向流式会话中较大输入的片段。 如果设置为 注意:此字段不适用于音频和 DTMF 输入,因为它们始终会根据端点信号自动处理。 |
联合字段 input_type。输入的类型。input_type 只能是下列其中一项: |
|
text |
可选。最终用户的文本数据。 |
dtmf |
可选。来自最终用户的 DTMF 数字。 |
audio |
可选。最终用户的音频数据。 使用 base64 编码的字符串。 |
toolResponses |
可选。来自客户端的工具调用的执行结果。 |
image |
可选。最终用户的图片数据。 |
blob |
可选。来自最终用户的 Blob 数据。 |
variables |
可选。会话的上下文变量,按名称键控。CES 代理只会使用在应用中声明的变量。 无法识别的变量仍会作为额外的会话参数发送到 [Dialogflow 代理][Agent.RemoteDialogflowAgent]。 |
event |
可选。活动输入。 |
ToolResponses
客户端请求的工具调用的执行结果。
| JSON 表示法 |
|---|
{
"toolResponses": [
{
object ( |
| 字段 | |
|---|---|
toolResponses[] |
可选。工具执行结果列表。 |
事件
活动输入。
| JSON 表示法 |
|---|
{ "event": string } |
| 字段 | |
|---|---|
event |
必需。事件的名称。 |
SessionOutput
会话的输出。
| JSON 表示法 |
|---|
{ "turnIndex": integer, "turnCompleted": boolean, "diagnosticInfo": { object ( |
| 字段 | |
|---|---|
turnIndex |
表示相应输出所属对话轮次的顺序,从 1 开始。 |
turnCompleted |
如果为 true,则表示 CES 代理已检测到当前对话轮次的结束,并且不会再为该轮次提供任何输出。 |
diagnosticInfo |
可选。诊断信息包含输入处理期间的执行详细信息。仅在每个轮次的最后一个 SessionOutput(具有 |
联合字段 output_type。输出的类型。output_type 只能是下列其中一项: |
|
text |
来自 CES 代理的输出文本。 |
audio |
CES 代理的输出音频。 使用 base64 编码的字符串。 |
toolCalls |
请求客户端执行工具。 |
citations |
提供代理生成的文本的来源信息的引用。 |
googleSearchSuggestions |
通过调用 |
endSession |
表示会话已结束。 |
payload |
包含来自 CES 代理的结构化输出的自定义载荷。 |
ToolCalls
请求客户端执行工具并返回执行结果,然后再继续会话。
| JSON 表示法 |
|---|
{
"toolCalls": [
{
object ( |
| 字段 | |
|---|---|
toolCalls[] |
可选。要执行的工具调用的列表。 |
引用
与代理回答关联的引用。
| JSON 表示法 |
|---|
{
"citedChunks": [
{
object ( |
| 字段 | |
|---|---|
citedChunks[] |
引用信息列表。 |
Citations.CitedChunk
引用信息。
| JSON 表示法 |
|---|
{ "uri": string, "title": string, "text": string } |
| 字段 | |
|---|---|
uri |
用于引用的 URI。 |
title |
被引用文档的标题。 |
text |
用于引用的文本。 |
GoogleSearchSuggestions
来自 Google Search Tool 的搜索建议。
| JSON 表示法 |
|---|
{
"htmls": [
string
],
"webSearchQueries": [
{
object ( |
| 字段 | |
|---|---|
htmls[] |
搜索建议的合规 HTML 和 CSS 样式。提供的 HTML 和 CSS 会自动适应您的设备设置,根据 |
webSearchQueries[] |
用于执行 Google 搜索的查询的列表,以及构成搜索建议的搜索结果 URI。 |
WebSearchQuery
表示单个网络搜索查询及其关联的搜索 URI。
| JSON 表示法 |
|---|
{ "query": string, "uri": string } |
| 字段 | |
|---|---|
query |
搜索查询文本。 |
uri |
相应查询的 Google 搜索结果页面的 URI。 |
EndSession
表示会话已终止,原因可能是成功完成(例如,用户说“再见!”)或代理升级。
会话终止后,代理将不再处理任何进一步的输入,并且客户端应在收到代理发送的所有剩余响应后半关闭并断开连接。
| JSON 表示法 |
|---|
{ "metadata": { object } } |
| 字段 | |
|---|---|
metadata |
可选。提供有关结束会话信号的其他信息,例如结束会话的原因。 |
SessionOutput.DiagnosticInfo
包含处理期间的执行详情。
| JSON 表示法 |
|---|
{ "messages": [ { object ( |
| 字段 | |
|---|---|
messages[] |
处理期间发生的消息的列表。 |
rootSpan |
整个请求处理过程的轨迹,以根 span 表示。此 span 可以包含用于特定操作的嵌套子 span。 |