蚊章汇 - Athira Lekshmi C.v
type: channel
link: https://linuxcn.bwsl.wang/author/1481/
description: Athira Lekshmi C.v
items: 用 Recast.AI 创建一个聊天机器人

用 Recast.AI 创建一个聊天机器人
type: item
date: 2020-12-02T18:21:00+08:00
description: 据 Gartner 2018 年 2 月的报告，“到 2020 年，25% 的客户服务和支持业务将在参与渠道中整合虚拟客户助理（VCA）或聊天机器人技术，而 2017 年只有不到 2%。”鉴于此，读者会发现本教程对理解开源的 Recast.AI 机器人创建平台的工作原理很有帮助。聊天机器人，包括基于语音的以及其他技术的，已经实际使用了有一阵子了。从让用户参与谋杀解密游戏，到帮助完成房地产交易和医疗诊断，聊天机器人已经跨越了多个领域。有许多平台可以让用户创建和部署机器人。Recast.AI（在被 SAP 收购之后现在是 SAP Conversational AI）是其中的先行者。酷炫的界面、协作性以及它所提供的分析工具，让它成为流行的选择。正如 Recast 官方网站说的，“它是一个创建、训练、部署和监控智能机器人的终极协作平台。”创建一个基础的机器人让我们来看看如何在 Recast 创建一个基础的机器人。在 https://cai.tools.sap 创建一个账户。注册可以使用电子邮箱或者 Github 账户。在你登录之后，你会进入仪表板。点击右上角 “+” 新建机器人图标新建一个机器人。在下一个界面，你会看到一系列可选的预定义技能。暂时选择 问候 Greetings ”（图 1）。这个机器人已经经过训练，能够理解基本的问候。 给机器人提供一个名字。目前来说，你可以让机器人讲一些笑话，所以我们将它命名为 Joke Bot，选择英语作为默认语言。因为你不会处理任何敏感信息，所以在数据策略下选择非个人数据。然后选择公共机器人选项并点击创建一个机器人。所以这就是你在 Recast 平台创建的机器人。开发一个机器人的五个阶段用 Recast 官方博客的话说，在机器人的生命中有五个阶段。训练——教授机器人需要理解的内容构建——使用机器人构建工具创建你的对话流编写代码——将机器人连接到外部 API 或数据库连接——将机器人发布到一个或多个消息平台监控——训练机器人让它更敏锐，并且了解其使用情况通过意图训练机器人你可以在仪表板上看到搜索、分叉或创建一个 意图 intent 的选项。“‘意图’是一系列含义相同但构造不同的表达。‘意图’是你的机器人理解能力的核心。每个‘意图’代表了机器人可以理解的一种想法。”（摘自 Recast.AI 网站）就像先前定的，你需要一个讲笑话的机器人。所以底线是这个机器人可以理解用户在要求它讲笑话，它不应该在用户仅仅说了“Hi”的情况下回复一个笑话——这可不妙。把用户可能说的话进行分组，比如：Tell me a joke.（给我讲个笑话。） Tell me a funny fact.（告诉我一个有趣的事实。） Can you crack a joke?（你可以讲个笑话吗？） What’s funny today?（今天有什么有趣的？） ……在继续从头开始创建意图之前，让我们来看看搜索/分叉选项。在搜索框输入 “Joke”（图 3）。系统给出了全球的 Recast 用户创建的公开的意图清单，这就是为什么说 Recast 天然就是协作性质的。所以其实没有必要从头开始创建所有的意图，可以在已经创建的基础上进行构建。这就降低了训练具有常见意图的机器人所需的投入。选择列表中的第一个意图并将其分叉到机器人上。点击 分叉 Fork 按钮。这个意图就添加到了机器人中（图 4）。 点击意图 @joke，会显示出这个意图中已经存在的 表达 expression 列表（图 5）。 向其添加更多的表达（图 6）。 添加了一些表达之后，机器人会给出一些建议，像图 7 展示的那样。选择几个将它们添加到意图中。你还可以根据机器人的上下文，标记你自己的自定义实体来检测关键词。技能 技能 skill 是一块有明确目的的对话，机器人可以据此运行并达到目标。它可以像打招呼那么简单，也可以更复杂，比如基于用户提供的信息提供电影建议。技能需要的不能只是一对问答，它需要多次交互。比如考虑一个帮你学习汇率的机器人。它一开始会问原货币，然后是目标货币，最后给出准确回应。结合技能可以创建复杂的对话流。下面是如何给笑话机器人创建技能：去到 构建（Build） 页。点击 “+” 图标创建技能。给技能命名 “Joke”（图 8） 创建之后，点击这个技能。你会看到四个标签。 读我 Read me 、 触发器 Triggers 、 需求 Requirements 和 动作 Actions 。切换到需求页面。只有在笑话意图存在的时候，你才应该存储信息。所以，像图 9 那样添加一个需求。 由于这个简单的使用范例，你不需要在需求选项卡中考虑任何特定的需求，但可以考虑只有当某些关键字或实体出现时才需要触发响应的情况——在这种情况下你需要需求。需求是某个技能执行动作之前需要检索的意图…