IBM Cloud Docs
响应类型引用

响应类型引用

您可以使用 JSON 编辑器来指定许多不同类型的响应。 您可以使用 JSON 编辑器来指定对客户查询的响应。 通过在 JSON 编辑器中添加 JSON 脚本,助手将使用 JSON 脚本中提到的响应格式。

有关更多信息,请参阅 使用 JSON 编辑器定义响应

当操作和消息 API 中的变量在运行时不同时,操作和消息 API 中的响应类型的格式也不同。 以下示例显示了使用消息 API 和 JSON 编辑器时响应类型格式的差异。

如果来自消息 API 的 text 响应具有以下格式:

{ "response_type": "text", "text": "Hello world" }

然后,助手将在单个步骤中显示实际文本消息 Hello world

如果来自 JSON 操作编辑器的 text 响应具有以下格式:

{
  "generic": [
    {
      "response_type": "text",
      "values": [
        {
          "text_expression": {
            "concat": [
              {
                "scalar": "Hi, "
              },
              {
                "variable": "step_472"
              },
              {
                "scalar": ". How can I help you?"
              }
            ]
          }
        }
      ],
      "selection_policy": "sequential"
    }
  ]
}

然后,助手会将 variable 的实际值与 values 数组中的其他项相结合,并显示响应。 例如,如果 step_472 采用值 "Bob",那么助手将显示 Hi, Bob. How can I help you?

在运行时查看响应类型

您可以参阅 watsonx Assistant 的 API 文档,以查看 响应类型和 API 的详细信息

例如,要查看运行时响应类型,请执行以下操作:

  1. 响应 部分中,单击 输出 中的 MessageOutput 以查看 通用 部分。
  2. generic 部分中,单击 RuntimeResponseGeneric[]
  3. One of 下拉列表中选择一个选项。

要查看有关所选选项的更多详细信息,请单击 One of

响应类型引用

JSON 编辑器中支持以下响应类型。

audio

播放由 URL 指定的音频片段。

集成通道支持

Web 聊天 电话 SMS Slack Facebook WhatsApp
是 是 是 是 是 是
  • 某些通道集成不会显示音频标题或描述。

字段

名称 Type 描述 必需?
response_type 字符串 audio Y
source 字符串 音频片段的 https: URL。 URL 可以指定音频文件或支持托管服务的音频片段。 Y
标题 字符串 在音频播放器之前显示的标题。 N
描述 字符串 音频播放器附带的描述文本。 N
alt_text 字符串 可用于屏幕朗读器或其他无法看到音频播放器的情况的描述性文本。 N
channel_options.voice_telephony.loop 字符串 音频剪辑是否无限重复 (仅限电话集成)。 N

source 属性指定的 URL 可以是以下类型之一:

  • 任何标准格式(如 MP3 或 WAV)音频文件的 URL。 在网络聊天中,链接的音频剪辑呈现为嵌入式音频播放器。

  • 支持的流媒体服务中音频片段的 URL。 在 Web 聊天中,链接的音频剪辑通过将可嵌入播放器用于托管服务来呈现。

    指定用于在浏览器中访问音频文件的 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 字符串 button Y
标签 字符串 按钮标签 Y
按钮类型 字符串 按钮的类型。 例如,post_backcustom_eventshow_panelurl Y
种类 字符串 按钮的种类。 例如,primarysecondarytertiarydangerlink

默认值为 primary

N
Image_url 字符串 要呈现为按钮的图像的 URL。 N
alt_text 字符串 用于标记图像以实现辅助功能选项的备用文本。 N

post_back 按钮类型

当用户单击 post_back 按钮时,该按钮会向助手发送响应。 您可以使用 valuelabel 属性来设置要发送的响应。

字段

名称 Type 描述 必需?
对象 定义当用户选择选项时,WebChat 发送到 watsonx Assistant 服务的响应。

注: 如果未定义 value.input.text,那么 WebChat 会将 label 的值发送给助手。

N

示例

以下示例显示了用于在用户单击按钮时将编写的文本输入发送到助手的按钮的 JSON 配置。

{
  "response_type": "button",
  "button_type": "post_back",
  "label": "Send message",
  "value": {
    "input": {
      "text": "[Message to send]"
    }
  }
}

custom_event 按钮类型

当用户单击 custom_event 按钮时,将触发随用户定义数据一起配置的定制事件。 您必须创建事件以通过使用定制代码来实现期望的行为。 在 Web 聊天中,您可以使用 messageItemCustom 事件在用户单击按钮时应用期望的行为。

字段

名称 Type 描述 必需?
custom_event_name 字符串 用户单击按钮时触发的定制事件的名称。

在网络聊天中,当用户点击 "custom_event 按钮时会触发 messageItemCustom事件。

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 按钮时,助手会打开一个面板,用户可以使用该面板来获取其他信息或完成任务。

字段

名称 Type 描述 必需?
面板 字符串 定义面板内容的对象。 Y
panel.title 字符串 面板的标题。 N
panel.show_animations 布尔型 用于在用户打开或关闭动画时在面板中启用或禁用动画的对象。 默认值为 true Y
panel.body[] 列表 用于创建丰富可视内容的响应类型列表。 列表中最多允许 10 个响应类型。

受支持的响应类型: textimagevideoaudioiframegridcarduser_defined

注: 面板中的卡响应类型不支持按钮。

Y
panel.footer[] 列表 button 响应类型的列表。 列表中最多允许 5 个按钮。

注: 此列表中不支持按钮类型 show_panel

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 字符串 按钮的目标 URL。 Y
目标 字符串 在浏览器中打开 URL 的位置。 例如,_blank_self_blank 将在新选项卡中打开 URL。_self 将在同一选项卡中打开 URL。

默认值为 _blank

N

示例

此示例显示了一个按钮,用于在单击该按钮时将用户转至 ibm.com。

{
  "response_type": "button",
  "button_type": "url",
  "label": "Visit ibm.com",
  "url": "https://www.ibm.com"
}

card

可视内容,通过使用 card 来改善用户的信息体验。

集成通道支持

WebChat
是

字段

名称 Type 描述 必需?
response_type 字符串 card Y
身体 [] 列表 用于创建丰富内容的响应类型的列表。 列表中最多允许 10 个响应类型。

受支持的响应类型: textimagevideoaudioiframegriduser_defined

Y
页脚 [] 列表 button 响应类型的列表。 列表中最多允许 5 个按钮。 N

可以在面板中呈现 card,但不允许它具有按钮。

示例

以下示例显示了用于构建 card 响应类型的基本结构:

{
  "response_type": "card",
  "body": [
    {
      "response_type": "text",
      "text": "# Heading"
    },
    {
      "response_type": "text",
      "text": "body"
    }
  ]
}

channel_transfer

将对话传输到其他通道集成。 当前,Web 聊天集成是通道传输的唯一受支持目标。

集成通道支持

电话 SMS Slack Facebook WhatsApp
是 是 是 是 是
  • 指定的通道集成支持 启动 通道传输 (当前,Web 聊天集成是唯一受支持的传输目标)。
  • 从电话集成启动通道传输需要同时配置 SMS 集成。

字段

名称 Type 描述 必需?
response_type 字符串 channel_transfer Y
message_to_user 字符串 要在用于启动传输的链接之前向用户显示的消息。 Y
传输信息 对象 集成用于将对话传输到其他通道的信息。 Y
transfer_info.target.chat 字符串 网络聊天主机网站的 URL,对话将被传输到该网站。 Y

示例

此示例请求从 WhatsApp 到 Web 聊天的传输。 除 channel_transfer 响应外,输出还包含 text 响应,将由传输后的 Web 聊天集成显示。 使用 channels 数组可确保 channel_transfer 响应仅由 WhatsApp 集成 (在传输之前) 处理,而 connect_to_agent 响应仅由 Web 聊天集成 (在传输之后) 处理。

{
  "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

将对话传输到实时代理程序以获取帮助。 必须为通道集成配置服务台支持。

集成通道支持

Web 聊天 电话 WhatsApp
是 是 是

字段

名称 Type 描述 必需?
response_type 字符串 connect_to_agent Y
message_to_human_agent 字符串 要向要向其传输对话的实时代理显示的消息。 Y
代理程序可用 字符串 代理程序可用时要向用户显示的消息。 Y
代理程序不可用 字符串 在没有可用代理程序时向用户显示的消息。 Y
传输信息 对象 Web 聊天服务台集成用于路由传输的信息。 N
transfer_info.target.zendesk.department 字符串 您Zendesk账户中的有效部门。 N
transfer_info.target.salesforce.button_id 字符串 来自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 聊天
是
  • 在 Web 交谈中,客户可以通过单击交互式日期选取器或在输入字段中输入日期值来指定日期值。

字段

名称 Type 描述 必需?
response_type 字符串 date Y

示例

此示例发送文本响应,该响应要求用户指定日期,然后显示交互式日期选取器。

{
  "generic": [
    {
      "response_type": "text",
      "text": "What day will you be checking in?"
    },
    {
      "response_type": "date"
    }
  ]
}

dtmf

向电话集成发送命令以使用双音多频 (DTMF) 信号控制输入或输出。 (DTMF是一种传输音调的协议,当用户在按键电话上按下按键时,就会产生音调。)

集成通道支持

电话
是

字段

名称 Type 描述 必需?
response_type 字符串 dtmf Y
命令信息 对象 指定要发送到电话集成的 DTMF 命令的信息。 Y
command_info.type 字符串 要发送的 DTMF 命令 (collectdisable_barge_inenable_barge_insend)。 Y
command_info.parameters 对象 请参阅 处理电话交互 N

command_info.type 字段可以指定以下任何受支持的命令:

  • collect: 收集 DTMF 小键盘输入。
  • disable_barge_in: 禁用 DTMF 打断,以便客户按键时不会中断电话集成中的回放。
  • enable_barge_in:启用双音多频插话,以便客户按下按键即可中断电话集成的播放。
  • send: 发送 DTMF 信号。

有关如何使用其中每个命令的详细信息,请参阅 处理电话交互

示例

此示例显示了带有 collect 命令的 dtmf 响应类型,用于收集 DTMF 输入。 有关更多信息,请参阅 处理电话交互

{
  "generic": [
    {
      "response_type": "dtmf",
      "command_info": {
        "type": "collect",
        "parameters": {
          "termination_key": "#",
          "count": 16,
          "ignore_speech": true
        }
      },
      "channels": [
        {
          "channel": "voice_telephony"
        }
      ]
    }
  ]
}

end_session

将命令发送到结束会话的通道。 此响应类型指示电话集成挂断呼叫。

集成通道支持

电话 SMS
是
  • SMS 集成支持使用 terminateSession 操作命令结束会话。

字段

名称 Type 描述 必需?
response_type 字符串 end_session Y

对于电话集成,您可以使用 channel_options 对象将定制头包含在生成的 SIP BYE 请求中。 有关更多信息,请参阅 结束呼叫

示例

此示例使用 end_session 响应类型来结束对话。

{
  "generic": [
    {
      "response_type": "end_session"
    }
  ]
}

grid

使您能够灵活地创建所需的布局,以呈现传达您希望用户使用的信息类型的内容。

集成通道支持

WebChat
是

字段

名称 Type 描述 必需?
response_type 字符串 grid Y
水平对齐 字符串 网格 (leftcenterright) 中所有项的水平对齐方式。

默认值为 left

N
垂直对齐 字符串 网格中所有项的垂直对齐方式 (topcenterbottom)。

默认值为 top

N
列 [] 列表 列的列表。 列表中最多允许 5 列。 每列由 8px 空格分隔。 N
列[].width 字符串 列的宽度。 您可以使用数字 (例如,1) 或像素 (例如,48 px) 来设置宽度值。

列宽的数字值是根据行的总宽度和行中其他列的宽度计算的。 例如,如果第一列的宽度为 1,第二列的宽度为 2,那么第一列和第二列分别占行的总宽度的三分之一和三分之二。

缺省情况下,宽度的数字值为 1

Y
行数 [] 列表 行列表。 列表中最多允许 5 行。 每行用 8px 空格分隔。 Y
行[].cells[] 列表 行中单元格的列表。 每个单元格都是行中的列 (例如,单元格 1 是行中的列 1)。 单元格的宽度等于列的宽度。 Y
行[].cells[].items[] 列表 响应类型项的列表。 每个项由 8px 空格分隔。 列表中最多允许 5 个响应类型项。

受支持的响应类型项为 textimagevdeoaudioiframegriduser_defined

只能在第一个级别以下的 grid 中设置 grid。 单元格中的
grid 不能包含网格响应类型。
Y
行[].cells[].horizon 字符串 单元格中项的水平对齐方式 (leftcenterright)。

默认值为 left

N
行[].cells[].vertical_对齐 字符串 单元格 (topcenterbottom) 中项的垂直对齐。

默认值为 top

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

将外部 Web 站点中的内容嵌入为 HTML iframe 元素。

集成通道支持

Web 聊天 Facebook
是 是
  • 当前,Web 聊天集成将忽略 descriptionimage_url 属性。 而是在运行时从源动态检索描述和预览图像。

字段

名称 Type 描述 必需?
response_type 字符串 iframe Y
source 字符串 外部内容的 URL。 URL 必须指定可嵌入 HTML iframe 元素的内容。 Y
标题 字符串 在嵌入式内容之前显示的标题。 N
描述 字符串 嵌入式内容附带的描述文本。 N
Image_url 字符串 显示嵌入内容预览的图片的 URL。 N
channel_options.chat.display 字符串 Web 聊天呈现响应类型 (inlinepanel) 的方式。 此响应类型的缺省值为 panel N
channel_options.chat.dimensions.base_height 数字 用于将内容缩放到特定显示大小的基本高度 (以像素为单位)。 仅当 display 设置为 inline 时,此属性才有效。 N

不同的站点对嵌入内容有不同的限制,而生成可嵌入 URL 的过程也不同。 可嵌入 URL 是指可指定为 iframe 元素的 src 属性值的 URL。

例如,要使用 Google 地图嵌入交互式地图,可以使用 Google 地图嵌入 API。 (有关更多信息,请参阅 地图嵌入 API 概述。) 其他站点具有用于创建可嵌入内容的不同进程。

有关使用 Content-Security-Policy: frame-src 来允许嵌入 Web 站点内容的技术详细信息,请参阅 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 Facebook WhatsApp MS 团队
是 是 是 是 是 是
  • 某些通道集成不会显示图像标题或描述。

字段

名称 Type 描述 必需?
response_type 字符串 image Y
source 字符串 图片的 https: URL。 指定的图像必须为 .jpg.gif.png 格式。 Y
标题 字符串 要在图像前面显示的标题。 N
描述 字符串 图像附带的描述的文本。 N
alt_text 字符串 可用于屏幕朗读器或其他无法看到图像的情况的描述性文本。 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

用于显示一组可供用户选择的选项 (例如按钮或下拉列表)。 选定的值随后作为用户输入发送给助手。 当您为步骤选择 选项 客户响应类型时,将自动定义 options 响应。 有关更多信息,请参阅 从客户收集信息

集成通道支持

Web 聊天 电话 SMS Slack Facebook WhatsApp MS 团队
是 是 是 是 是 是 是
  • 选项的显示方式因通道集成而异。 可能时支持 preference 字段,但并非所有通道都支持下拉列表或按钮。

字段

名称 Type 描述 必需?
response_type 字符串 option Y
标题 字符串 要在选项前面显示的标题。 Y
描述 字符串 选项附带的描述的文本。 N
preference 字符串 要显示的首选类型的控件(如果通道支持)(dropdownbutton)。 N
options 列表 一个键值对列表,用于指定可供用户选择的选项。 Y
选项 [].label 字符串 面向用户的选项标签。 Y
选项 [].value 对象 一个对象,用于定义在用户选择选项时发送到 watsonx Assistant 服务的响应。 Y
选项 []value.input 对象 包含与选项对应的消息输入的对象,包括输入文本以及作为 watsonx Assistant 消息的有效部分的任何其他字段。 有关更多信息,请参阅 API 参考 N

示例

此示例提供了两个选项 (Buy somethingExit)。

{
  "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

在向频道发送下一条消息之前暂停,并可选择发送“用户正在输入”事件(适用于支持该功能的频道)。

集成通道支持

Web 聊天 Facebook WhatsApp
是 是 是
  • 通过电话集成,您可以通过在助手输出中包含 SSML break 元素来添加暂停。 有关更多信息,请参阅 Text to Speech 文档

字段

名称 Type 描述 必需?
response_type 字符串 pause Y
时间 英特 暂停持续时间(以毫秒为单位)。 Y
typing 布尔值 暂停期间是否发送“用户正在输入”事件。 如果通道不支持此事件,将忽略此事件。 N

示例

这个示例发送“用户正在输入”事件,并暂停5秒。

{
    "generic":[
      {
        "response_type": "pause",
        "time": 5000,
        "typing": true
      }
    ]
}

speech_to_text

将命令发送到电话集成所使用的 Speech to Text 服务实例。 这些命令可以在对话期间动态更改服务的配置或行为。

集成通道支持

电话
是

字段

名称 Type 描述 必需?
response_type 字符串 speech_to_text Y
命令信息 对象 指定要发送到 Speech to Text的命令的信息。 Y
command_info.type 字符串 要发送的命令 (当前仅支持 configure 命令)。 Y
command_info.parameters 对象 请参阅 将高级设置应用于 Speech to Text 服务 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 字符串 start_activities Y
活动 列表 用于标识要启动的活动的对象列表。 Y
活动[].type 字符串 开始活动的名称。 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 字符串 stop_activities Y
活动 列表 标识要停止的活动的对象的列表。 Y
活动[].type 字符串 要停止的活动的名称。 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

Beta

网络聊天支持新的 "table 响应类型,以行、列、标题和单元格表示结构化数据。

集成通道支持

Web 聊天
是

属性和定义

属性 描述 Type 必需
title 表格的标题。 字符串 False
description 表格的简要说明。 字符串 False
headers 列标题数组。 Array<String, Number>
rows 行数组,每行包含一个单元数组。 Array<Object>
rows[].cells 行中每个单元格的数据。 Array<String, Number>

每一行的单元格数必须与标题相同。 如果单元格和标题不匹配,网络聊天在尝试渲染表格时就会出错。

示例

本例以表格形式显示结构化数据。

{
    "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 Facebook WhatsApp
是 是 是 是 是 是

字段

名称 Type 描述 必需?
response_type 字符串 text Y
列表 定义文本响应的一个或多个对象的列表。 Y
值。[n].text_expression 对象 用于描述响应文本的对象。 N
值。[n]。text_expression.concat 列表 构成文本响应组件的对象的列表。 这些对象可以包含标量文本字符串和对变量的引用。 N
selection_policy 字符串 指定了多个响应时,如何从列表中选择响应。 可能的值为 sequentialrandommultiline N
delimiter 字符串 输出作为响应之间分隔符的定界符。 仅当 selection_policy=multiline 时使用。缺省定界符为换行符 ( )。 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 字符串 text_to_speech Y
命令信息 对象 指定要发送到 Text to Speech的命令的信息。 Y
command_info.type 字符串 要发送的命令 (configuredisable_barge_inenable_barge_in)。 Y
command_info.parameters 对象 请参阅 将高级设置应用于 Text to Speech 服务 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 聊天以显示特殊卡,或者构建定制应用程序以使用表或图表格式化响应。

除非通道具有用于处理用户定义的响应类型的代码,否则不会显示该响应类型。 更多信息,请参阅 自定义和开发

集成通道支持

Web 聊天 电话 SMS Slack Facebook WhatsApp
是 是* 是* 是 是 是
  • 通过电话集成,user_defined 响应类型用于发送旧命令 (例如,vgwActForceNoInputTurnvgwActSendSMS)。 有关更多信息,请参阅 处理电话交互
  • 通过 SMS 集成,user_defined 响应类型用于发送操作命令 (例如,terminateSessionsmsActSendMedia)。

字段

名称 Type 描述 必需?
response_type 字符串 user_defined 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 Facebook WhatsApp
是 是 是 是 是
  • 某些通道集成不会显示视频标题或描述。

字段

名称 Type 描述 必需?
response_type 字符串 video Y
source 字符串 视频的 https: URL。 URL 可以指定视频文件或支持的托管服务上的流媒体视频。 Y
标题 字符串 视频播放前显示的标题。 N
描述 字符串 视频附带的描述文字。 N
alt_text 字符串 可用于屏幕朗读器或其他无法看到视频的情况的描述性文本。 N
channel_options.chat.dimensions.base_height 数字 用于将视频缩放到特定显示大小的基本高度 (以像素为单位)。 N

source 属性指定的 URL 可以是以下类型之一:

  • 标准格式(如 MPEG 或 AVI)视频文件的 URL。 在网络聊天中,链接的视频呈现为嵌入式视频播放器。

    不支持 HLS (.m3u8) 和 DASH (MPD) 流式视频。

  • 支持服务的视频 URL。 在 Web 聊天中,链接的视频与托管服务的可嵌入播放器呈现。

    指定要在浏览器中查看的视频 URL (例如 https://www.youtube.com/watch?v=52bpMKVigGU )。网络聊天会自动将 URL 转换为可嵌入的形式。

    您可以嵌入托管在以下服务中的视频:

    • YouTube
    • 脸书
    • Vimeo
    • 抽搐
    • 可流式传输
    • Wistia
    • Vidyard

示例

这个例子显示了一个带有标题和描述性文字的视频。

{
  "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."
    }
  ]
}