使用代理机器人创建特定领域机器人  

使用 Bots Compose 创建可为不同领域提供服务且由代理机器人负责协调的机器人

Description

在某些场景中,用户希望开展涉及多个领域的对话。例如,当我想到某地旅行时,我希望查询天气并预订出租车或航班。我最终可能不得不在两个机器人(一个天气机器人和一个旅行机器人)之间进行切换。但如果我只使用一个接口机器人来将消息重定向到特定机器人并为我获取答案,会怎么样呢?本开发者 Code Pattern 展示了此方法的实现过程。

概览

通常,聊天机器人旨在满足人类对特定领域的查询需求。例如,天气机器人可以处理如下消息:

What is the weather forecast for today? What will be the high temperature tomorrow? Will it rain in the evening?

旅行机器人可以处理如下问题:

Book a cab Book a flight What is the flight duration between Bengaluru and Mumbai?

用户必须在各种机器人之间进行切换才能向不同领域的机器人提出相关领域的问题。虽然可以存在多个机器人,但期望用户在不同机器人之间不断切换是不合理的。

解决方案是使用一个代理机器人(或者一个接口机器人)和几个其他机器人,后面这几个机器人可处理特定领域的查询(称为“特定机器人”)。代理机器人不仅了解特定机器人,并了解其各自能够处理的领域。当用户与代理机器人发起对话时,代理机器人将了解用户查询的意图,并将用户查询重定向到特定机器人。来自该用户的后续请求将重定向到特定机器人。在与特定机器人的对话结束后,或者在特定机器人无法处理请求时,控制权将交还给代理机器人,随后代理机器人将消息重定向到相应的机器人。

此方法可以为用户提供一种无缝体验。它可供向客户提供大量服务的组织使用,例如,金融服务机构、旅行社和新闻发布机构。

此方法的优势包括:

  • 即插即用机器人
  • 模块化方法有助于机器人组合
  • 通过组合两个或更多机器人来创建新服务
  • 易于维护、更改、添加或移除功能
  • 可轻松诊断问题
  • 对用户透明

本 Code Pattern 使用 Watson™ Assistant 机器人来构建机器人并构建一个 Node.js 应用程序作为编排层。

学完本 Code Pattern 后,您将掌握如何:

  • 配置机器人以使其成为代理机器人
  • 配置特定机器人以将控制权交还给代理机器人
  • 构建编排层以将代理机器人与特定机器人组合在一起

  1. 用户访问 Web 应用程序并输入消息。Node.js 应用程序(作为编排层)将用户消息发送到代理机器人。
  2. 代理机器人确定该消息的意图、提供特定机器人详细信息作为响应,以供该应用程序将该消息重定向到相应的特定机器人。
  3. Node.js 应用程序将消息发送到特定机器人(在此例中为天气机器人)。特定机器人作出响应。用户与特定机器人之间继续进行对话。
  4. 在与特定机器人的对话结束后,会将用户消息发送到代理机器人以确定其意图。
  5. Node.js 应用程序将该消息发送到特定机器人(在此例中为旅行机器人)。特定机器人作出响应。用户与特定机器人之间继续进行对话。

Instructions

可以在 README 中找到本 Code Pattern 的详细步骤。这些步骤将展示如何:

  1. 在 IBM Cloud 上创建一个 Watson Assistant 服务实例。
  2. 从 GitHub 下载代码。
  3. 通过从 Git 存储库导入文件来创建机器人。
  4. 在 IBM Cloud 上创建并部署应用程序。
  5. 运行该应用程序。
  6. 根据需要添加机器人。

相关博客

相关链接

英文原文

本 Code Pattern 翻译自:Create domain-specific bots using an agent bot(2019-01-18)

Watson Assistant

支持您将对话界面构建到任意应用程序、设备或通道中。

With Watson 计划

想要进一步改进您的 Watson 应用?正在考虑使用 Watson 品牌资产?加入 With Watson 计划,利用独家品牌、营销和技术资源来增强和加速您的 Watson 嵌入式商业解决方案。