剑客
关注科技互联网

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

Watson Conversation Service 介绍

Watson Conversation 将自然语言界面添加到您的应用程序中,与程序的最终用户用自然语言进行交互。常用的程序包括聊天机器人,智能客服等。产品还提供简易的 web 应用程序用来训练使用这个服务,帮助用户快速构建自然对话流程,部署扩展解决方案。

使用 Conversation Service 的应用程序可以提供给客户更高效的服务,满足客户更深层次更多元化的需求,并节省了大量的维护成本与开支。

Conversation Service 可以被使用在各种各样的应用场景之中。让我来举例说明一下。比如 Lucy 负责某产品的后续服务,她有很多的客户,客户在使用产品途中有许多问题需要与 Lucy 沟通。她的客户问的问题涉及多方面的内容,比如需要问 Lucy 能提供什么样的服务,当他们遇到问题的时候是否能帮忙解决,能给出什么样的建议指导,详细解释某一个使用方法, 等等。每当客户有问题的时候,他们总想第一时间找到 Lucy。他们通过各种渠道找到 Lucy, 例如电子邮件,社交软件,手机,网站,等等。Lucy 突然想到能否使用一个智能机器助手来自动回复客户的问题,但是想到有可能对技术水平要求很高,实现难度比较大,而且需要花很多时间来维护,而且客户满意度也许也不是很高。这个时候 Watson Conversion 服务走入了她的视野。这个服务让很多没有很强技术开发背景的用户可以简单容易的构建自然对话流程,建立强大的聊天虚拟助手来自动回复客户提出的各种各样的问题。在没有很多开发经验和数学统计理论背景的条件下,Lucy 使用 Watson service 来分析客户问题背后的意图,满足客户更深层次的需求。有了 Watson Conversation 的帮助,任何人,任何时间,任何地点都可以和智能机器人咨询产品的相关问题并得到智能的反馈。

Watson Conversation 的基本知识和组成部分.

Conversion service 是 IBM Watson Natural Language Classifier 和 Dialog 的合并体。Dialog 和 NLC 合并在一起,会产生很多有意思的功能。比如如何选取一个系列的优秀电影,如何评价影片的系统,等等。这篇文章的重点是阐述如何使用 Conversation 来构建一个智能虚拟助手。在阐述细节之前我们来了解一下 conversion service 的基本知识。它由三个最主要的部分组成:

  1. Intents – 用户的意图。即用户提供的信息背后所隐含的意图。比如一个三明治预定系统,用户问你们有什么尺寸的三明治,用户的意图是问询尺寸的具体信息。
  2. Entities – 用户输入中的要素
  3. Dialog – 对话流程,一套有逻辑顺序的对话流程。

创建 Bluemix Watson Conversation Service

下面我们通过一个创建三明治预订系统为实例,来详细讲述如何创建使用 Conversation service。

三明治订餐助手可以接收客户外卖三明治订单,为客户提供便捷的,个性化的三明治预定配送服务,提升餐厅营业效率并降低运营成本。

登陆 Bluemix, 建立 conversation 服务

打开 Bluemix 的网址: https://console.ng.bluemix.net

点击目录链接,进入 bluemix 目录页面。如图 1 所示:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 1. Bluemix 主页

打开目录页,点击左边的 Watson 的复选框,用来筛选所有 Watson 相关的服务。在右侧页面,选择"Conversation".如图 2 所示:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 2. Bluemix 目录页

打开 Conversation 介绍页,创建服务,如图 3 所示:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 3.创建 Conversation 服务

打开图形化工具定制 Conversation

创建好 Watson Conversation 服务后,点击 launch tool 打开图形界面来定义服务需要的要素和完成培训.

打开 Conversation 图形化界面后,首先创建一个 Workspace 用来承载后续的对话.如图 2.2 所示:

点击 Create 按钮。

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 4. 创建 Workspace

在弹出的 Create a workspace 对话框中,填写名称,描述,选择语言后点击创建。可选的语言目前包括英语,西班牙语,法语,意大利语,日语,巴西葡萄牙语。

我们以创建三明治预订系统的输入内容为例,参考图 5.

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 5. 创建 Workspace 对话框

创建 Intention 和实例来训练 Watson 读懂用户输入背后的意图

点击创建好的 workspace, 首先定义 Intention 和实例. Intention 是指的用户的信息中背后所隐含的意图。比如在一个三明治预定系统中,用户询问有没有鸡肉的三明治,背后的意图是选择三明治的种类。

点击左上角的 Create 按钮,在弹出的对话框中输入一个 Intention 的名字,和至少 5 个表达这个意图的问题实例。输入完每个问题回车,全部输入结束后点击右上角的 Done 按钮完成 Intention 的创建。如图 6 所示:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 6. 创建 Intention

例如在建立三明治预订系统时,创建一个 intention 名为 delivery_time, 用来配送时间,以便能够让用户了解配送时间的情况。建立好 intention 后,加入一些实例帮助 Watson 来识别用户的意图是在询问配送时间相关的信息。

在"User example"栏位,输入"Any time limits? 有时间限制么?"然后回车,这个内容将被加入意图的实例列表。

重复上面的动作,完成以下输入

  • How long will it take for the delivery?
  • How long will it take to arrive?
  • Is it free after a certain of time?
  • When will the sandwich get there?

现在你至少输入了5个实例,点击"Done"按钮。意图和它的实例将出现在意图界面,如图所示:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 7. 创建 intention 的实例

重复以上的步骤建立其他的意图和实例,比如尺寸,温度,三明治种类,面包种类,调料种类。输入后的结果可参考下图:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 8. 创建好的 intention

结果:现在你定义完成了 intents 和用来识别它们的实例

通过定义 Entity 识别用户输入中的要素

Entity 是指用户输入中的要素。比如预定三明治系统里面三明治有多种馅料的选择,那么每一种用户要求的馅料都是输入中的要素。每个元素 entity 定义了一系列的值用来触发 Watson 给出相应的回答或回应。

点击 Entities 的选项卡在界面上端。

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 9. 点击 Entities 选项卡

点击左上角的 Create 按钮,在弹出的对话框内输入 Entities 的名字和所包含的数值。

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 10. 创建 Entities

例如在三明治预订系统中建立一个三明治种类的 entity.步骤如下:

在 Entity 栏位,输入"Sandwich_type"来定义三明治种类。

定义三明治种类的名称

  • 在 Value 栏位,输入"beef"
  • 点击加号按钮来添加更多的值,比如,鸡肉,鳕鱼,猪肉等。
  • 输入结束后,点击"Done"按钮。

结果:你定义了三明治种类的元素,现在可以来定义对话的流程了,这个流程将会使用之前定义好的用户意图 intents 和元素。

通过 dialog builder 来创建用户问题的自动回应机制

Dialog 组件定义针对用户的意图和问题,如何自动回应。

Dialog builder 能帮忙定义对话流程,这个对话流程是具有逻辑顺序的。Dialog 通过定义的意图和输入要素加上一系列的上下文对话,来与终端用户进行交互。自动回应的内容有可能是对某个问题的答复,或者是执行某个指令。如果用户的意图和输入要素信息不足以给出准确的答复,Dialog 可能会要求用户输入更多的信息以便准确的回答。

我们用在三明治预订系统中来创建一个简单的对话流程为例来描述建立过程

在 Sandwich workspace 页面,点击 Dialog 选项卡。

点击 Create 按钮,一个单节点的 Dialog 将被建立,如图:

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程

图 11. 创建一个 Dialog 节点

在 Enter a condition 栏位输入 Conversation_start, 在 Watson says 栏位输入"welcome to Watson Sandwich, I’m Watson, May I take your order?"

点击"Anything else"节点,这个节点是自动生成的

在 Watson says 栏位输入"I’m sorry, I don’t understand. Please try again."

多建立一些 Dialog 分支,以便用户的问题可以对应到之前定义的意图,并得到回复。

测试 conversation

点击右上角的 使用 Bluemix 上的 IBM Watson Conversation 服务构建应用程序与用户间的自然对话流程 按钮,在谈话界面你会看见自动回复"welcome to Watson Sandwich, I’m Watson, May I take your order?"

随意输些问题按回车键,由于没有定义其它节点,会有自动回复"I’m sorry, I don’t understand. Please try again."

定义其它的对话流程,将我们预先设计好的意图和元素都输入进去。

完成以上步骤,一个简单的三明治的预定智能助手程序就实现了。

Watson Conversation 未来的展望和商业用途设想

Watson Conversation 这个服务的诞生给技术和非技术人员创建人工智能助手提供了一种快捷便利的方式。给智能虚拟代理市场做出了巨大的贡献。我们期待着更多的用户可以了解并喜欢这个服务。

参考资料

Conversation 帮助文档

Conversation demo

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址