响应类型参考

您可以使用 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 的详细信息。

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

  1. "响应"部分,点击输出中的 "MessageOutput,查看通用部分。

  2. 在 "generic部分,点击 "RuntimeResponseGeneric[]

  3. 在 "One of下拉菜单中选择一个选项。

要查看所选选项的详细信息,请点击 "One of

响应类型参考

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

audio

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

集成渠道支持

Web 聊天

电话

SMS

Slack

脸书

WhatsApp

是

是

是

是

是

是

  • 某些频道集成不显示音频标题或描述。

字段

名称

Type

描述

是否必需?

response_type

string

audio

Y

string

音频片段的 https: URL。 URL 可指定音频文件或支持托管服务的音频片段。

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

button

Y

标签

string

按钮标签

Y

按钮类型

string

按钮类型。 例如,"post_back、"custom_event、"show_panel"和 "url

Y

种类

string

按钮的种类 例如,"primary、"secondary"、"tertiary"、"danger"和 "link"。 默认值为 primary.

N

图片链接

string

要渲染为按钮的图片的 url。

N

alt_text

string

用于标注图像的备用文本,以便于访问。

N

post_back 按钮类型

当用户点击该按钮时, post_back 该按钮会向 AI 助手发送响应。 您可以同时使用 和 label value 属性来配置要发送的响应。

字段

名称

Type

描述

是否必需?

对象

定义了当用户选择某个选项时, WebChat 发送给 AI 助手服务的响应。 注意: 若未定义 value.input.text,则 WebChat 会将 的值 label 发送给 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

用户点击按钮时触发的自定义事件的名称。 在网页聊天中,当用户点击 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 按钮时, AI 助手会弹出一个面板,用户可以通过该面板获取更多信息或完成任务。

字段

名称

Type

描述

是否必需?

面板

string

定义面板内容的对象。

Y

panel.title

string

小组讨论的题目。

N

panel.show_animations

boolean

该对象用于在用户打开或关闭面板时启用或禁用面板中的动画。 缺省值为 true

Y

panel.body[]

列表

用于创建丰富可视化内容的响应类型列表。 列表中最多允许 10 个响应类型。 支持的响应类型:"text、"image、"video、"audio"、"iframe"、"grid"、"card"和 "user_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

string

按钮的目标网址。

Y

目标

string

在浏览器中打开网址的位置。 例如,"_blank或 "_self_blank会在新标签页中打开网址。 _self在同一标签页中打开网址。 默认值为 _blank.

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

card

Y

正文[]

列表

用于创建丰富内容的响应类型列表。 列表中最多允许有 10 种回复类型。 支持的响应类型:"text、"image、"video、"audio"、"iframe"、"grid"和 "user_defined"。

Y

页脚[]

列表

仅包含 "button响应类型的列表。 列表中最多允许有 5 个按钮。

N

可以在面板中显示 "card,但不允许有按钮。

示例

下面的示例显示了构建 "card响应类型的基本结构:

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

channel_transfer

将对话转移到不同的整合渠道。 目前,网络聊天集成是唯一支持的通道传输目标。

集成渠道支持

电话

SMS

Slack

脸书

WhatsApp

是

是

是

是

是

  • 所列出的频道集成支持_发起_频道传输(目前,仅支持将消息传输至网页聊天集成)。

  • 从电话集成启动通道传输需要同时配置短信集成。

字段

名称

Type

描述

是否必需?

response_type

string

channel_transfer

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

将对话转接给在线客服寻求帮助。 必须为渠道集成配置服务台支持。

集成渠道支持

Web 聊天

电话

WhatsApp

是

是

是

有关在电话集成中添加服务台支持的信息,请参阅配置备份呼叫中心支持

字段

名称

Type

描述

是否必需?

response_type

string

connect_to_agent

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

date

Y

示例

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

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

dtmf

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

集成渠道支持

电话

是

字段

名称

Type

描述

是否必需?

response_type

string

dtmf

Y

命令信息

对象

指定要发送到电话集成的 DTMF 命令的信息。

Y

command_info.type

string

要发送的 DTMF 命令(collect、"disable_barge_in、"enable_barge_in或 "send)。

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

end_session

Y

对于电话集成,可以使用 "channel_options对象在生成的 SIP "BYE请求中包含自定义标头。 有关更多信息,请参阅结束通话

示例

本例使用 "end_session响应类型结束对话。

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

grid

让您可以灵活地创建所需的版式,以展示内容,传达您希望用户消费的信息类型。

集成渠道支持

WebChat

是

字段

名称

Type

描述

是否必需?

response_type

string

grid

Y

水平对齐

string

网格中所有项目的水平对齐方式(left、"center"或 "right)。 默认值为 left.

N

垂直对齐

string

网格中所有项目的垂直对齐方式(top、"center"或 "bottom)。 默认值为 top

N

列[]

列表

栏列表。 列表中最多允许有 5 列。 每列之间用8px的空格隔开。

N

列[].宽度

string

列的宽度。 您可以使用数字(例如) 1或像素(例如) 48 px来设置宽度值。列宽的数值是根据行总宽以及该行中其他列的宽度计算得出的。 例如,如果第一列的宽度为 1 ,第二列的宽度为 2,那么第一列和第二列分别占据该行总宽度的三分之一和三分之二。 默认情况下,width 的数值为 1

Y

行[]

列表

行列表。 列表中最多允许 5 行。 每行之间用8px的空格隔开。

Y

行[].单元格[]

列表

一行中的单元格列表。 每个单元格是一行中的一列(例如,单元格 1 是一行中的第 1 列)。 单元格的宽度等于列的宽度。

Y

行[].单元格[].项[]

列表

回复类型项目列表。 每项之间用 8px 的空格分隔。 列表中最多可包含 5 个回复类型项目。 支持的响应类型项目有 "text"、"image"、"vdeo"、"audio"、"iframe"、"grid"和 "user_defined"。 您只能在 grid 内且位于第一级之下设置一个 grid 。 单元格中的 grid A 不能包含网格响应类型。

Y

行[].单元格[].水平对齐方式

string

单元格中项目的水平对齐方式(left、"center或 "right)。 默认值为 left.

N

行[].单元格[].垂直对齐方式

string

单元格中项目的垂直对齐方式(top、"center或 "bottom)。 默认值为 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

以 HTML "iframe元素的形式嵌入外部网站的内容。

集成渠道支持

Web 聊天

脸书

是

是

  • 目前,网络聊天集成会忽略 "description和 "image_url属性。 相反,描述和预览图片是在运行时从源代码中动态获取的。

字段

名称

Type

描述

是否必需?

response_type

string

iframe

Y

string

外部内容的 URL。 URL 必须指定可嵌入 HTML iframe 元素的内容。

Y

标题

string

嵌入内容前要显示的标题。

N

描述

string

嵌入内容的说明文本。

N

图片链接

string

显示嵌入内容预览的图片 URL。

N

channel_options.chat.display

string

网络聊天渲染响应类型的方式(inline或 "panel)。 此响应类型的默认值为 "panel

N

channel_options.chat.dimensions.base_height

基本高度(以像素为单位),用于将内容缩放至特定的显示尺寸。 只有当 "display设置为 "inline时,该属性才起作用。

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

脸书

WhatsApp

MS Teams

是

是

是

是

是

是

  • 某些渠道集成不显示图片标题或描述。

字段

名称

Type

描述

是否必需?

response_type

string

image

Y

string

图像的 https: URL。 指定的图像必须是 ".jpg、".gif或 ".png格式。

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

脸书

WhatsApp

MS Teams

是

是

是

是

是

是

是

  • 不同的渠道整合方式所提供的选项也不尽相同。 尽可能支持 "preference字段,但并非所有通道都支持下拉列表或按钮。

字段

名称

Type

描述

是否必需?

response_type

string

option

Y

标题

string

要在选项前面显示的标题。

Y

描述

string

选项附带的描述的文本。

N

首选项

string

要显示的首选类型的控件(如果通道支持)(dropdownbutton)。

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

在向频道发送下一条信息前暂停,并选择性地发送 "用户正在键入 "事件(适用于支持该事件的频道)。

集成渠道支持

Web 聊天

脸书

WhatsApp

是

是

是

  • 通过手机集成,您可以在 AI 助手的输出中加入 SSML 元素 break 来添加暂停。 如需更多信息,请参阅 Text to Speech 文档

字段

名称

Type

描述

是否必需?

response_type

string

pause

Y

时间

int

暂停持续时间(以毫秒为单位)。

Y

typing

布尔值

暂停期间是否发送“用户正在输入”事件。 如果通道不支持此事件,将忽略此事件。

N

示例

此示例发送 "用户正在键入 "事件,并暂停 5 秒。

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

speech_to_text

向手机集成所使用的 Speech to Text 服务实例发送一条命令。 这些命令可以在对话过程中动态更改服务的配置或行为。

集成渠道支持

电话

是

字段

名称

Type

描述

是否必需?

response_type

string

speech_to_text

Y

命令信息

对象

指定要发送至 Speech to Text 的命令的信息。

Y

command_info.type

string

要发送的命令(目前只支持 "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

string

start_activities

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

stop_activities

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

必需

title

表格的标题。

字符串

False

description

表格的简要说明。

字符串

False

headers

列标题数组。

数组

rows

行数组,每行包含一个单元数组。

数组

rows[].cells

行中每个单元格的数据。

数组

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

示例

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

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

脸书

WhatsApp

是

是

是

是

是

是

字段

名称

Type

描述

是否必需?

response_type

string

text

Y

列表

定义文本回复的一个或多个对象的列表。

Y

values.[_n_].text_expression

对象

描述回复文本的对象。

N

values.[_n_]. text_expression.concat

列表

构成文本回复组件的对象列表。 这些对象可以包括标量文本字符串和变量引用。

N

selection_policy

string

指定了多个响应时,如何从列表中选择响应。 可能的值为 sequentialrandommultiline

N

分隔符

string

输出作为响应之间分隔符的定界符。 仅在'selection_policy=multiline时使用。默认分隔符为换行符(\n)。

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

text_to_speech

Y

命令信息

对象

指定要发送至 Text to Speech 的命令的信息。

Y

command_info.type

string

要发送的命令(configure、"disable_barge_in或 "enable_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 聊天

电话

SMS

Slack

脸书

WhatsApp

是

是*

是*

是

是

是

  • 通过电话集成,"user_defined响应类型用于发送传统命令(例如,"vgwActForceNoInputTurn或 "vgwActSendSMS)。 如需更多信息,请参阅 “处理电话互动”

  • 通过短信集成,响应 user_defined 类型用于发送操作命令(例如 或 smsActSendMediaterminateSession

字段

名称

Type

描述

是否必需?

response_type

string

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

脸书

WhatsApp

是

是

是

是

是

  • 某些频道集成不显示视频标题或描述。

字段

名称

Type

描述

是否必需?

response_type

string

video

Y

string

https: URL 的视频。 URL 可指定视频文件或支持托管服务的流媒体视频。

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