响应类型参考
您可以使用 JSON 编辑器指定多种不同类型的响应。 您可以使用 JSON 编辑器指定对客户查询的回复。 在 JSON 编辑器中添加 JSON 脚本后,您的 AI 助手将采用 JSON 脚本中指定的响应格式。
如需了解更多信息,请参阅“使用 JSON 编辑器定义响应”。
当运行时操作和消息 API 中的变量不同时,操作和消息 API 中的响应类型格式也会不同。 以下示例显示了使用消息 API 和 JSON 编辑器时响应类型格式的不同。
如果消息 API 的文本响应采用以下格式: > { "response_type": "text", "text": "Hello world" }
随后, AI助手会一步显示实际的短信内容。 Hello world
如果 JSON 操作编辑器的文本响应格式如下:
{
"generic": [
{
"response_type": "text",
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "Hi, "
},
{
"variable": "step_472"
},
{
"scalar": ". How can I help you?"
}
]
}
}
],
"selection_policy": "sequential"
}
]
}
然后, AI 助手将 的实际 variable 值与 数组 values 中的其他项进行组合,并显示响应结果。 例如,如果 step_472 的值为“Bob”,那么 AI 助手会显示 Hi, Bob. How can I help you?。
在运行时查看响应类型
您可以参考 AI 助手的 API 文档,查看响应类型和 API 的详细信息。
例如,要查看运行时响应类型,请执行以下操作:
在"响应"部分,点击输出中的 "
MessageOutput,查看通用部分。在 "
generic部分,点击 "RuntimeResponseGeneric[]。在 "
One of下拉菜单中选择一个选项。
要查看所选选项的详细信息,请点击 "One of。

JSON 编辑器支持以下响应类型。
audio
播放由 URL 指定的音频片段。
集成渠道支持
Web 聊天 | 电话 | SMS | Slack | 脸书 | |
|---|---|---|---|---|---|
某些频道集成不显示音频标题或描述。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
源 | string | 音频片段的 | Y |
标题 | string | 音频播放器前要显示的标题。 | N |
描述 | string | 音频播放器的说明文字。 | N |
alt_text | string | 描述性文本,可用于屏幕阅读器或其他无法看到音频播放器的情况。 | N |
channel_options.voice_telephony.loop | string | 音频片段是否无限期重复(仅限电话集成)。 | N |
source 属性指定的 URL 可以是以下类型之一:
URL 任何标准格式的音频文件,如 MP3 或 WAV。 在网络聊天中,链接的音频片段会显示为嵌入式音频播放器。
支持流媒体服务的音频片段 URL。 在网络聊天中,链接的音频片段会使用托管服务的嵌入式播放器播放。
指定用于在浏览器中访问音频文件的 URL (例如 https://soundcloud.com/ibmresearchfallen-star-amped )。网络聊天会自动将 URL 转换为可嵌入的形式。
您可以嵌入由支持服务托管的音频:
对于电话集成, URL 必须指定一个单声道(单声道)和 PCM 编码的音频文件,采样频率为 8000 Hz,每次采样 16 位。
示例
此示例播放一段带有标题和描述性文字的音频片段。
{
"generic":[
{
"response_type": "audio",
"source": "https://example.com/audio/example-file.mp3",
"title": "Example audio file",
"description": "An example audio clip returned as part of a multimedia response."
}
]
}
button
显示交互式按钮,帮助用户完成任务。
集成渠道支持
WebChat |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
标签 | string | 按钮标签 | Y |
按钮类型 | string | 按钮类型。 例如," | Y |
种类 | string | 按钮的种类 例如," | N |
图片链接 | string | 要渲染为按钮的图片的 url。 | N |
alt_text | string | 用于标注图像的备用文本,以便于访问。 | N |
post_back 按钮类型
当用户点击该按钮时, post_back 该按钮会向 AI 助手发送响应。 您可以同时使用 和 label value 属性来配置要发送的响应。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
值 | 对象 | 定义了当用户选择某个选项时, WebChat 发送给 AI 助手服务的响应。 注意: 若未定义 | N |
示例
以下示例展示了按钮的 JSON 配置,当用户点击该按钮时,会将用户输入的文本发送给 AI 助手。
{
"response_type": "button",
"button_type": "post_back",
"label": "Send message",
"value": {
"input": {
"text": "[Message to send]"
}
}
}
custom_event 按钮类型
当用户点击 "custom_event按钮时,就会触发一个自定义事件,该事件是您与用户定义数据一起配置的。 您必须使用自定义代码创建事件,以实现所需的行为。 在网络聊天中,您可以使用 "messageItemCustom事件在用户点击按钮时应用所需的行为。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
自定义事件名称 | string | 用户点击按钮时触发的自定义事件的名称。 在网页聊天中,当用户点击 | Y |
用户定义 | 对象 | 附加到自定义事件的用户定义数据。 | N |
示例
在下面的示例中,您使用 JSON 脚本在点击按钮时触发警报。
{
"response_type": "button",
"button_type": "custom_event",
"label": "Alert",
"kind": "danger",
"custom_event_name": "trigger_alert",
"user_defined": {
"message": "[Alert message]"
}
}
show_panel 按钮类型
当用户点击该 show_panel 按钮时, AI 助手会弹出一个面板,用户可以通过该面板获取更多信息或完成任务。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
面板 | string | 定义面板内容的对象。 | Y |
panel.title | string | 小组讨论的题目。 | N |
panel.show_animations | boolean | 该对象用于在用户打开或关闭面板时启用或禁用面板中的动画。 缺省值为 | Y |
panel.body[] | 列表 | 用于创建丰富可视化内容的响应类型列表。 列表中最多允许 10 个响应类型。 支持的响应类型:" | Y |
panel.footer[] | 列表 |
| N |
示例
在下面的示例中,您使用 JSON 脚本创建了一个按钮,用于打开产品详细信息面板:
{
"response_type": "button",
"button_type": "show_panel",
"label": "See details",
"kind": "secondary",
"panel": {
"title": "[Product name]",
"show_animations": true,
"body": [
{
"response_type": "image",
"source": "https://example.com/image.jpg"
},
{
"response_type": "text",
"text": "[Product details]"
}
]
}
}
url 按钮类型
当用户点击 "url按钮时,用户会进入 url 字段添加目标 url。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
URL | string | 按钮的目标网址。 | Y |
目标 | string | 在浏览器中打开网址的位置。 例如," | N |
示例
该示例显示了一个按钮,点击该按钮后,用户将访问 ibmibm.com。
{
"response_type": "button",
"button_type": "url",
"label": "Visit ibm.com",
"url": "https://www.ibm.com"
}
card
使用 "card可视化内容,改善用户的信息体验。
集成渠道支持
WebChat |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
正文[] | 列表 | 用于创建丰富内容的响应类型列表。 列表中最多允许有 10 种回复类型。 支持的响应类型:" | Y |
页脚[] | 列表 | 仅包含 " | N |
可以在面板中显示 "card,但不允许有按钮。
示例
下面的示例显示了构建 "card响应类型的基本结构:
{
"response_type": "card",
"body": [
{
"response_type": "text",
"text": "# Heading"
},
{
"response_type": "text",
"text": "body"
}
]
}
carousel
一个 "carousel,用于展示内容丰富的卡片。 如果旋转木马中只有一张卡片,网络聊天集成将只呈现卡片,而不是旋转木马中的卡片。
集成渠道支持
WebChat |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
项目[] | 列表 |
| Y |
示例
下面的示例显示了构建 "carousel响应类型的基本结构:
{
"response_type": "carousel",
"items": [
{
"response_type": "card",
"body": [
{
"response_type": "text",
"text": "# Heading"
},
{
"response_type": "text",
"text": "body"
}
]
},
{
"response_type": "card",
"body": [
{
"response_type": "text",
"text": "# Heading"
},
{
"response_type": "text",
"text": "body"
}
]
}
]
}
channel_transfer
将对话转移到不同的整合渠道。 目前,网络聊天集成是唯一支持的通道传输目标。
集成渠道支持
电话 | SMS | Slack | 脸书 | |
|---|---|---|---|---|
所列出的频道集成支持_发起_频道传输(目前,仅支持将消息传输至网页聊天集成)。
从电话集成启动通道传输需要同时配置短信集成。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
给用户的消息 | string | 在启动传输链接前显示给用户的信息。 | Y |
传输信息 | 对象 | 集成用于将对话转移到不同渠道的信息。 | Y |
transfer_info.target.chat | string | URL 的网站。 | Y |
示例
此示例请求从WhatsApp转移到网络聊天。 除 "channel_transfer响应外,输出还包括 "text响应,将在传输后由网络聊天集成显示。 使用 "channels数组可确保 "channel_transfer响应仅由WhatsApp集成(传输前)处理,而 "connect_to_agent响应仅由网络聊天集成(传输后)处理。
{
"generic": [
{
"response_type": "channel_transfer",
"channels": [
{
"channel": "whatsapp"
}
],
"message_to_user": "Click the link to connect with an agent using our website.",
"transfer_info": {
"target": {
"chat": {
"url": "https://example.com/webchat"
}
}
}
},
{
"response_type": "connect_to_agent",
"channels": [
{
"channel": "chat"
}
],
"message_to_human_agent": "User asked to speak to an agent.",
"agent_available": {
"message": "Please wait while I connect you to an agent."
},
"agent_unavailable": {
"message": "I'm sorry, but no agents are online at the moment. Please try again later."
},
"transfer_info": {
"target": {
"zendesk": {
"department": "Payments department"
}
}
}
}
]
}
connect_to_agent
将对话转接给在线客服寻求帮助。 必须为渠道集成配置服务台支持。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
给人类代理的信息 | string | 显示给对话被转接的实时代理的信息。 | Y |
代理可用 | string | 当代理可用时向用户显示的信息。 | Y |
代理不可用 | string | 当没有代理可用时向用户显示的信息。 | Y |
传输信息 | 对象 | 网络聊天服务台集成用于路由传输的信息。 | N |
transfer_info.target.zendesk.department | string | 您 Zendesk 账户中的一个有效部门。 | N |
transfer_info.target.salesforce.button_id | string | 来自Salesforce部署的有效按钮 ID。 | N |
示例
此示例请求转接至实时代理,并指定在转接时向用户和代理显示的信息。
{
"generic": [
{
"response_type": "connect_to_agent",
"message_to_human_agent": "User asked to speak to an agent.",
"agent_available": {
"message": "Please wait while I connect you to an agent."
},
"agent_unavailable": {
"message": "I'm sorry, but no agents are online at the moment. Please try again later."
}
}
]
}
date
使用交互式日期选择器,供客户指定日期值。
集成渠道支持
Web 聊天 |
|---|
在网络聊天中,客户可以通过点击交互式日期选择器或在输入框中输入日期值来指定日期值。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
示例
此示例发送一个文本响应,要求用户指定一个日期,然后显示一个交互式日期选择器。
{
"generic": [
{
"response_type": "text",
"text": "What day will you be checking in?"
},
{
"response_type": "date"
}
]
}
dtmf
通过双音多频 (DTMF) 信号向电话集成发送命令以控制输入或输出。 (DTMF 是一种传输音调的协议,用户在按键式电话上按键时会产生音调)
集成渠道支持
电话 |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
命令信息 | 对象 | 指定要发送到电话集成的 DTMF 命令的信息。 | Y |
command_info.type | string | 要发送的 DTMF 命令( | Y |
command_info.parameters | 对象 | 请参阅 “处理电话互动”。 | N |
command_info.type字段可指定以下任何受支持的命令:
collect:收集 DTMF 键盘输入。disable_barge_in:禁用 DTMF 插入,这样当客户按键时,电话集成的播放就不会中断。enable_barge_in:启用 DTMF 插入,这样客户就可以通过按键中断电话集成的播放。send:发送 DTMF 信号。
有关如何使用这些命令的详细信息,请参阅“处理电话交互”。
示例
本例显示了 "dtmf响应类型和 "collect命令,用于收集 DTMF 输入。 如需更多信息,请参阅 “处理电话互动”。
{
"generic": [
{
"response_type": "dtmf",
"command_info": {
"type": "collect",
"parameters": {
"termination_key": "#",
"count": 16,
"ignore_speech": true
}
},
"channels": [
{
"channel": "voice_telephony"
}
]
}
]
}
end_session
向通道发送命令,结束会话。 此响应类型指示电话集成挂断呼叫。
集成渠道支持
电话 | SMS |
|---|---|
短信集成支持通过使用 action
terminateSession命令来结束会话。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
对于电话集成,可以使用 "channel_options对象在生成的 SIP "BYE请求中包含自定义标头。 有关更多信息,请参阅结束通话。
示例
本例使用 "end_session响应类型结束对话。
{
"generic": [
{
"response_type": "end_session"
}
]
}
grid
让您可以灵活地创建所需的版式,以展示内容,传达您希望用户消费的信息类型。
集成渠道支持
WebChat |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
水平对齐 | string | 网格中所有项目的水平对齐方式( | N |
垂直对齐 | string | 网格中所有项目的垂直对齐方式( | N |
列[] | 列表 | 栏列表。 列表中最多允许有 5 列。 每列之间用8px的空格隔开。 | N |
列[].宽度 | string | 列的宽度。 您可以使用数字(例如) | Y |
行[] | 列表 | 行列表。 列表中最多允许 5 行。 每行之间用8px的空格隔开。 | Y |
行[].单元格[] | 列表 | 一行中的单元格列表。 每个单元格是一行中的一列(例如,单元格 1 是一行中的第 1 列)。 单元格的宽度等于列的宽度。 | Y |
行[].单元格[].项[] | 列表 | 回复类型项目列表。 每项之间用 8px 的空格分隔。 列表中最多可包含 5 个回复类型项目。 支持的响应类型项目有 " | Y |
行[].单元格[].水平对齐方式 | string | 单元格中项目的水平对齐方式( | N |
行[].单元格[].垂直对齐方式 | string | 单元格中项目的垂直对齐方式( | N |
示例
下面的示例显示了构建 "grid响应类型的基本结构:
{
"response_type": "grid",
"columns": [
{
"width": "1"
},
{
"width": "1"
}
],
"rows": [
{
"cells": [
{
"items": [
{
"response_type": "text",
"text": "row 1 cell 1"
}
]
},
{
"items": [
{
"response_type": "text",
"text": "row 1 cell 2"
}
]
}
]
},
{
"cells": [
{
"items": [
{
"response_type": "text",
"text": "row 2 cell 1"
}
]
},
{
"items": [
{
"response_type": "text",
"text": "row 2 cell 2"
}
]
}
]
}
]
}
iframe
以 HTML "iframe元素的形式嵌入外部网站的内容。
集成渠道支持
Web 聊天 | 脸书 |
|---|---|
目前,网络聊天集成会忽略 "
description和 "image_url属性。 相反,描述和预览图片是在运行时从源代码中动态获取的。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
源 | string | 外部内容的 URL。 URL 必须指定可嵌入 HTML | Y |
标题 | string | 嵌入内容前要显示的标题。 | N |
描述 | string | 嵌入内容的说明文本。 | N |
图片链接 | string | 显示嵌入内容预览的图片 URL。 | N |
channel_options.chat.display | string | 网络聊天渲染响应类型的方式( | N |
channel_options.chat.dimensions.base_height | 号 | 基本高度(以像素为单位),用于将内容缩放至特定的显示尺寸。 只有当 " | N |
不同的网站对嵌入内容有不同的限制,生成可嵌入 URL 的程序也各不相同。 可嵌入的 URL 是指可以指定为 iframe 元素的 src 属性值的。
例如,要使用Google地图嵌入交互式地图,可以使用Google地图嵌入 API。 (如需了解更多信息,请参阅 《地图嵌入式 API 概述》。) 其他网站创建可嵌入内容的流程各不相同。
有关如何使用 Content-Security-Policy: frame-src 来允许嵌入您的网站内容的技术细节,请参阅 CSP:frame-src。
示例
下面的示例嵌入了一个带有标题和说明的 iframe。
{
"generic":[
{
"response_type": "iframe",
"source": "https://example.com/embeddable/example",
"title": "Example iframe",
"description": "An example of embeddable content returned as an iframe response.",
"channel_options": {
"chat": {
"display": "inline",
"base_height": 180
}
}
}
]
}
image
显示由 URL 指定的图像。
集成渠道支持
Web 聊天 | SMS | Slack | 脸书 | MS Teams | |
|---|---|---|---|---|---|
某些渠道集成不显示图片标题或描述。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
源 | string | 图像的 | Y |
标题 | string | 要在图像前面显示的标题。 | N |
描述 | string | 图像附带的描述的文本。 | N |
alt_text | string | 描述性文字,可用于屏幕阅读器或其他无法看到图像的情况。 | N |
示例
此示例显示带有标题和描述性文本的图像。
{
"generic":[
{
"response_type": "image",
"source": "https://example.com/image.jpg",
"title": "Example image",
"description": "An example image returned as part of a multimedia response."
}
]
}
option
用于显示用户可以选择的一组选项(如按钮或下拉列表)。 随后,所选值将作为用户输入发送给 AI 助手。 当您为某个步骤选择 “选项 ”客户响应类型时,系统会自动定义一个 options 响应。 如需了解更多信息,请参阅 “收集客户信息”。
集成渠道支持
Web 聊天 | 电话 | SMS | Slack | 脸书 | MS Teams | |
|---|---|---|---|---|---|---|
不同的渠道整合方式所提供的选项也不尽相同。 尽可能支持 "
preference字段,但并非所有通道都支持下拉列表或按钮。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
标题 | string | 要在选项前面显示的标题。 | Y |
描述 | string | 选项附带的描述的文本。 | N |
首选项 | string | 要显示的首选类型的控件(如果通道支持)( | N |
选项 | 列表 | 键值对列表,用于指定用户可以选择的选项。 | Y |
options[].label | string | 面向用户的选项标签。 | Y |
options[].value | 对象 | 一个对象,用于定义当用户选择该选项时发送给 AI 助手构建器服务的响应。 | Y |
options[].value.input | 对象 | 一个包含与该选项对应的消息输入的对象,其中包括输入文本以及 AI助手构建器消息中任何其他有效的字段。 如需了解更多信息,请参阅 API 参考文档。 | N |
示例
本示例提供了两个选项(Buy something和 "Exit)。
{
"generic":[
{
"response_type": "option",
"title": "Choose from the following options:",
"preference": "button",
"options": [
{
"label": "Buy something",
"value": {
"input": {
"text": "Place order"
}
}
},
{
"label": "Exit",
"value": {
"input": {
"text": "Exit"
}
}
}
]
}
]
}
pause
在向频道发送下一条信息前暂停,并选择性地发送 "用户正在键入 "事件(适用于支持该事件的频道)。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
时间 | int | 暂停持续时间(以毫秒为单位)。 | Y |
typing | 布尔值 | 暂停期间是否发送“用户正在输入”事件。 如果通道不支持此事件,将忽略此事件。 | N |
示例
此示例发送 "用户正在键入 "事件,并暂停 5 秒。
{
"generic":[
{
"response_type": "pause",
"time": 5000,
"typing": true
}
]
}
speech_to_text
向手机集成所使用的 Speech to Text 服务实例发送一条命令。 这些命令可以在对话过程中动态更改服务的配置或行为。
集成渠道支持
电话 |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
命令信息 | 对象 | 指定要发送至 Speech to Text 的命令的信息。 | Y |
command_info.type | string | 要发送的命令(目前只支持 " | Y |
command_info.parameters | 对象 | N |
command_info.type字段可指定以下任何受支持的命令:
configure:动态更新 Speech to Text 配置。 配置更改只能应用于下一轮对话,或整个会话期间。
有关如何使用此命令的信息,请参阅 《对 Speech to Text 服务应用高级设置》。
示例
此示例使用 响应 speech_to_text 类型配合 命令 configure ,将 Speech to Text 服务的语言模型切换为西班牙语,并启用智能格式化功能。
{
"generic": [
{
"response_type": "speech_to_text",
"command_info": {
"type": "configure",
"parameters": {
"narrowband_recognize": {
"model": "es-ES_NarrowbandModel",
"smart_formatting": true
}
}
},
"channels":[
{
"channel": "voice_telephony"
}
]
}
]
}
start_activities
向通道集成发送命令,启动该通道特有的一项或多项活动。 您可以使用此响应类型重新启动之前用 "stop_activities响应类型停止的任何活动。
集成渠道支持
电话 |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
活动 | 列表 | 标识要启动的活动的对象列表。 | Y |
活动[].类型 | string | 要启动的活动名称。 | Y |
目前,可以启动以下电话集成活动:
speech_to_text_recognition识别语音。 已恢复向 Speech to Text 服务传输音频。dtmf_collection:处理输入的 DTMF 信号。
示例
本示例使用 "start_activities响应类型重新开始识别语音。 由于该命令专门针对电话集成,因此 "channels属性只能指定 "voice_telephony。
{
"generic": [
{
"response_type": "start_activities",
"activities": [
{
"type": "speech_to_text_recognition"
}
],
"channels":[
{
"channel": "voice_telephony"
}
]
}
]
}
stop_activities
向通道集成发送命令,以停止该通道特有的一项或多项活动。 在使用 "start_activities响应类型重新启动之前,活动一直处于停止状态。
集成渠道支持
电话 |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
活动 | 列表 | 标识要停止的活动的对象列表。 | Y |
活动[].类型 | string | 要停止的活动名称。 | Y |
目前,可以停止以下电话集成活动:
speech_to_text_recognition: 停止识别语音。 所有流向 Speech to Text 服务的音频流已停止。dtmf_collection:停止处理输入的 DTMF 信号。
示例
本例使用 "stop_activities响应类型来停止识别语音。 由于该命令专门针对电话集成,因此 "channels属性只能指定 "voice_telephony。
{
"generic": [
{
"response_type": "stop_activities",
"activities": [
{
"type": "speech_to_text_recognition"
}
],
"channels":[
{
"channel":"voice_telephony"
}
]
}
]
}
table
表格响应类型以行和列的形式呈现结构化数据,包含表头和单元格。
集成渠道支持
Web 聊天 |
|---|
性质与定义
属性 | 描述 | Type | 必需 |
|---|---|---|---|
| 表格的标题。 | 字符串 | False |
| 表格的简要说明。 | 字符串 | False |
| 列标题数组。 | 数组 | 是 |
| 行数组,每行包含一个单元数组。 | 数组 | 是 |
| 行中每个单元格的数据。 | 数组 | 是 |
每一行的单元格数必须与标题相同。 如果单元格和标题不匹配,网络聊天在尝试渲染表格时就会出错。
示例
本例以表格形式显示结构化数据。
{
"generic": [
{
"response_type": "table",
"title": "Data Table",
"description": "A table with data",
"headers": ["Column 1", "Column 2"],
"rows": [
{
"cells": ["Row 1, Column 1", "Row 1, Column 2"]
},
{
"cells": ["Row 2, Column 1", "22"]
}
]
}
]
}
text
显示文本(或朗读文本,用于手机集成)。 要增加多样性,可以指定多个备用文本响应。 如果指定多个响应,那么可以选择按顺序在列表中循环,随机选择响应,或输出所有指定的响应。
集成渠道支持
Web 聊天 | 电话 | SMS | Slack | 脸书 | |
|---|---|---|---|---|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
值 | 列表 | 定义文本回复的一个或多个对象的列表。 | Y |
values.[_n_].text_expression | 对象 | 描述回复文本的对象。 | N |
values.[_n_]. text_expression.concat | 列表 | 构成文本回复组件的对象列表。 这些对象可以包括标量文本字符串和变量引用。 | N |
selection_policy | string | 指定了多个响应时,如何从列表中选择响应。 可能的值为 | N |
分隔符 | string | 输出作为响应之间分隔符的定界符。 仅在' | N |
示例
本例向用户显示问候信息。
{
"generic": [
{
"response_type": "text",
"values": [
{
"text_expression": {
"concat": [
{
"scalar": "Hi, "
},
{
"variable": "step_472"
},
{
"scalar": ". How can I help you?"
}
]
}
}
],
"selection_policy": "sequential"
}
]
}
text_to_speech
向手机集成所使用的 Text to Speech 服务实例发送一条命令。 这些命令可以在对话过程中动态更改服务的配置或行为。
集成渠道支持
电话 |
|---|
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
命令信息 | 对象 | 指定要发送至 Text to Speech 的命令的信息。 | Y |
command_info.type | string | 要发送的命令( | Y |
command_info.parameters | 对象 | N |
command_info.type字段可指定以下任何受支持的命令:
configure:动态更新 Text to Speech 配置。 配置更改只能应用于下一轮对话,或整个会话期间。disable_barge_in:禁用语音插播,这样当客户说话时,电话集成的播放就不会中断。enable_barge_in:启用语音插播,这样客户就可以通过说话中断电话集成的播放。
有关如何使用这些命令的详细信息,请参阅 《对 Text to Speech 服务应用高级设置》。
示例
此示例使用 响应 text_to_speech 类型配合 命令 configure ,用于更改 Text to Speech 服务所使用的语音。
{
"generic": [
{
"response_type": "text_to_speech",
"command_info": {
"type": "configure",
"parameters" : {
"synthesize": {
"voice": "en-US_LisaVoice"
}
}
},
"channels":[
{
"channel": "voice_telephony"
}
]
}
]
}
user_defined
自定义响应类型,包含客户端或集成知道如何处理的任何 JSON 数据。 例如,您可以自定义网络聊天以显示特殊的卡片,或建立一个自定义应用程序,用表格或图表来格式化回复。
用户定义的响应类型不会显示,除非通道有处理该类型的代码。 如需了解更多信息,请参阅“应用高级自定义设置”。
集成渠道支持
Web 聊天 | 电话 | SMS | Slack | 脸书 | |
|---|---|---|---|---|---|
|
|
通过电话集成,"
user_defined响应类型用于发送传统命令(例如,"vgwActForceNoInputTurn或 "vgwActSendSMS)。 如需更多信息,请参阅 “处理电话互动”。通过短信集成,响应
user_defined类型用于发送操作命令(例如 或smsActSendMedia)terminateSession。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
用户定义 | 对象 | 包含客户端或集成知道如何处理的任何数据的对象。 该对象可以包含任何有效的 JSON 数据,但总大小不能超过 5000 字节。 | Y |
示例
本例展示了一个用户自定义响应的通用示例。 user_defined对象可以包含任何有效的 JSON 数据。
{
"generic":[
{
"response_type": "user_defined",
"user_defined": {
"field_1": "String value",
"array_1": [
1,
2
],
"object_1": {
"property_1": "Another string value"
}
}
}
]
}
video
显示由 URL 指定的视频。
集成渠道支持
Web 聊天 | SMS | Slack | 脸书 | |
|---|---|---|---|---|
某些频道集成不显示视频标题或描述。
字段
名称 | Type | 描述 | 是否必需? |
|---|---|---|---|
response_type | string |
| Y |
源 | string |
| Y |
标题 | string | 视频前要显示的标题。 | N |
描述 | string | 视频的说明文字。 | N |
alt_text | string | 描述性文字,可用于屏幕阅读器或其他无法观看视频的情况。 | N |
channel_options.chat.dimensions.base_height | 号 | 基本高度(以像素为单位),用于将视频缩放至特定的显示尺寸。 | N |
使用 source 属性指定的 URL 可以是以下类型之一:
URL MPEG 或 AVI 等标准格式的视频文件。 在网络聊天中,链接的视频会渲染为嵌入式视频播放器。
不支持 HLS(.m3u8)和 DASH (MPD) 流媒体视频。
支持服务的视频 URL。 在网络聊天中,链接的视频会使用托管服务的可嵌入播放器播放。
指定要在浏览器中查看的视频的 URL (例如 https://www.youtube.com/watch?v=52bpMKVigGU )。网络聊天会自动将 URL 转换为可嵌入的形式。
您可以从以下服务中嵌入视频:
示例
此示例显示一段视频,并带有标题和描述性文字。
{
"generic":[
{
"response_type": "video",
"source": "https://example.com/videos/example-video.mp4",
"title": "Example video",
"description": "An example video returned as part of a multimedia response."
}
]
}