ibm-cloud - 为网站和 Facebook Messenger 创建 Watson Assistant 聊天机器人
问题描述
为网站和 Facebook Messenger 设计 Watson Assistant 聊天机器人会引发一些问题,因为这些渠道格式化 Watson 响应的方式不同。我试图了解如何处理这个问题。
目前,Watson Assistant 对话节点允许包含文本、图像、暂停和选项的响应。到目前为止,一切都很好。问题是在文本响应中我需要:
- 添加一些空行。在 HTML 中,我可以使用
<br/>
它,它在网站上运行良好,但在 Facebook 上却不行。 - 添加一个链接。在 HTML 中,我使用
<a href="">link</a>
Facebook Messenger 直接呈现单个 URL - 我需要列出一个无序列表或有序列表。在 HTML 中,我可以在 Facebook 信使号中使用
ol/li
或标记。ul/li
- 回车。在 HTML 中,我可以
<br/>
在 Facebook 中使用,参见 1。
我该如何处理这些不兼容性?
我希望在某个地方记录编写多渠道聊天机器人的最佳实践,但我还没有找到它们。
解决方案
在使用 IBM Watson Assistant 构建一个必须面对不同输出渠道(在您的案例中是网站和 Facebook Messenger)的聊天机器人时,我看到了两个选项:
- 限制对常见输出特征的响应。Watson Assistant通过多行支持支持丰富的响应。使用它而不是
<br/>
. 请查看特定于集成的文档(此处为Facebook Messenger 集成),了解支持的内容。 - 使用两个机器人,一个用于网站,一个用于 Facebook Messenger。在这种情况下,您可以使用Watson Assistant 支持的本机响应格式。缺点是您必须维护两个机器人。
- (不是您的描述中的选项)添加一个围绕 Watson Assistant 的包装器,并将您的通用响应转换为具有优化格式的所需输出通道。这需要更多的努力,但输出最好。
作为一种通用格式,请考虑Watson Assistan 支持的一些基本 Markdown 和一些输出通道。
推荐阅读
- r - 缺少错误参数“df1”,没有默认值
- c# - 使用 Roslyn 构建 C# 文档?
- python - 为什么 TypeVar('A', x, y) 不像 x 和 y 类型的联合?
- mongodb - MongoDB 将 endTime 与下一个文档的 startTime 进行比较
- javascript - 需要模板文件的代码以根据用户输入生成具有不同标题和 html 文件名的 html 文件
- javascript - auth.signInwithPopup 不是函数 firebase
- javascript - 如何使用js关闭浏览器选项卡?
- android - Jetpack compose 中的自动镜像
- list - 删除 sharedPreferences 列表中的一个元素
- react-leaflet - 将 React Leafletjs 映射添加到 Docusaurus 页面