您是否喜欢沉浸在 IBM® Watson 的认知世界里?本教程将帮助您构建一个受 IBM Watson Question and Answer 支持的认知 Twitter 机器人(作为一个 Node-RED 应用程序) 。IBM Bluemix ™ 中的 Node-RED 是一个基于浏览器的流编辑器,默认情况下提供了 IBM Watson 交互和 Twitter 交互功能。按照以下步骤,在无需编程的情况下构建一个复杂的认知 Twitter 机器人。
构建您的应用程序需要做的准备工作
- 一个 Bluemix 帐户
- 一个 Twitter 帐户
- 一个针对 Reverse Geocoding 服务的 PitneyBowes 帐户 (参见 “ Build a simple photo location application with Pitney Bowes location services ” 中的步骤 1,获得如何拥有一个 PitneyBowes 帐户的帮助)
- 一个 DevOps Services 帐户
步骤 1. 理解应用程序
这个认知 Twitter 机器人应用程序会自动回答传入的、包含一个问题的 tweet。该应用程序从根本上讲是 Question and Answer 服务的 Watson Travel API 的一个包装器。此外,为了提高 Twitter 用户的使用率,该应用程序利用了来自 Pitney Bowes 的 Reverse Geocoding 服务。在 Twitter 中,用户可以启用 GPS 功能,这样 tweet 就可以拥有经纬度信息。对地理编码进行反向处理可以将该 GPS 信息转换成一个具体的地址,其中包括国家、城市、邮政编码,甚至是街道名称。这个转换的地址信息自动与传入的 tweet 连接在一起,连接后的消息被输入到 Watson Travel 中,以便 Twitter 用户可以轻松地准确检索来自 Watson 的旅游相关信息。
阅读: Watson Question and Answer:文档
Twitter 最多只能包含 140 个字。有时 Watson 的答案会超过这个限制。为了避免出现这种情况,Watson 的答案被存储在 Cloudant 数据库中,并使用 HTML 呈现 Watson 的答案。在自动答复 tweet 中,会显示 HTML 的 URL,而且 Twitter 用户可以访问该 HTML 来阅读 Watson 的答案。
“ 此应用程序中的所有组件(包括 Twitter、Watson、Cloudant 和 HTML 呈现)都被组合到 Node-RED 中。此认知 Twitter 机器人应用程序是一个无需复杂编程的复杂应用程序。 ”
以下是该应用程序的流程:
点击查看大图
关闭 [x]
步骤 2. 设置 Bluemix
- 登录 Bluemix 。
- 选择 DASHBOARD > Applications ,然后单击 CREATE AN APP 。
- 从 Boilerplates 单击 Node-RED Starter 。
- 输入一个名称和主机并单击 CREATE 。
- 通过单击 Add a Service 添加以下两个服务。
- Question and Answer (在 Watson 下)
- Reverse Geocoding (在 Web and Application 下)
- 在完成设置之后,您的应用程序在仪表板中看起来应该如下所示:
点击查看大图
关闭 [x]
步骤 3. 构建应用程序
- 在仪表板中,单击 VIEW QUICK START ,并在 Bluemix 应用程序中启动 Node-RED。
- 单击 Node-RED 流编辑器按钮。
- 在侧栏中,单击 Workspaces > Add 并添加三个工作区,并为它们命名,如下所示:
- 01_TwitterBot
- 02_HTTP Server to Render Watson Response
- 03_Store to Cloudant
点击查看大图
关闭 [x]
- 转到 DevOps Services 上的应用程序文件夹( mush | dW-CognitiveTwitterBot )。依次打开三个 json 文件。将内容复制到剪切板中,并单击
Import
> Clipboard
,按照指示将它们粘贴到三个工作区中。 - 将 01_TwitterBot.json 的内容复制到 01_TwitterBot 工作区。
- 将 02_HTTP Server to Render Watson Response.json 的内容复制到 02_HTTP Server to Render Watson Response 工作区。
- 将 03_Store to Cloudant.json 的内容复制到 03_Store to Cloudant 工作区。
- 调整包含主机名、Pitney Bowes 帐户的应用程序 ID 和您的 Twitter 帐户的 01_TwitterBot 工作区:
- 双击 FIXME-01 下的 Twitter 图标。
- 单击 edit 按钮添加新的 Twitter 凭据。
- 对 Twitter 进行身份验证。
- 使用您的 Twitter Bot 帐户来验证 Node-RED。
- 确认已被验证。
- 添加经过验证的 Twitter Bot 帐户。
- 在 "for" 字段中输入您的 Twitter Bot 帐户名称并单击 OK 。
- 双击 FIXME-02 下的功能图标(Set variables)。
- 对于 msg.hostname,输入您的 Bluemix 主机名。
- 对于 msg.appId,输入您的 Pitney Bowes 帐户的应用程序 ID,并单击 OK 。
- 双击 FIXME-03 下的 Twitter 图标。
- 选择您的 Twitter Bot 帐户并单击 OK 。
- 部署应用程序。
阅读: Node-RED:文档
步骤 4. 运行应用程序
- 从另一个启用了 GPS 功能的 Tweet 帐户发布微博到您的 Twitter Bot。
- Twitter bot 自动回复传入的带有一个 HTTP 链接的 tweet。
- 打开 HTML 链接来查看 Watson 的推荐。
点击查看大图
关闭 [x]
结束语
本教程描述了如何在 Node-RED 上构建一个利用了来自 Pitney Bowes 的 Watson Travel Question and Answer 服务和 Reverse Geocoding 服务的 Twitter 机器人。如您所见,在 Bluemix 上创建一个认知 Twitter 机器人很简单。我希望本教程能够激发您的一些想法和动机,让您投入到 IBM Bluemix 的世界中,创建您自己的应用程序,并将您的想象与许多 Bluemix 服务整合在一起。
BLUEMIX SERVICE USED IN THIS TUTORIAL: Watson Question and Answer 服务 根据已经选择并收集到某个数据主体中的主要数据来源来解释和回答用户问题。