运行完全离线的聊天机器人有哪些限制?



第一篇文章。 我是国际开发领域的聊天机器人对话设计师/数字策略师,我的客户有兴趣在他们的 Android 经期跟踪应用程序中拥有一个聊天机器人。该应用程序专为低连接区域的用户而设计,对数据的访问量较低,因此需要离线。最初,它只允许用户与头像聊天并获取有关各种教育主题的信息,但我们可能希望更创造性地使用它。

我已经收集到拥有一个在应用程序中完全离线运行的聊天机器人在技术上是可行的(对吧?(,但我想更多地了解实现这样的东西的限制/缺点。对我来说显而易见的是我想象的应用程序需要的大小来支持这一点,当您使用我们的许多用户都会使用的蹩脚的Android手机时,这是一种确定的方法来删除您的应用程序。

还有什么?任何建议不胜感激!

谢谢。

在不依赖任何基于云的服务的情况下离线运行机器人是完全可行的。应用需要建立以下内容。

为简洁起见,我使用在线机器人来指代基于在线服务的机器人应用程序。基于脱机或设备上机器人开发平台的机器人应用的脱机机器人

要求

  • 知识库(包含IntentsEntitiesContexts(必须保存在应用程序中。Entities(尽管可能以千字节为单位(影响您的应用大小。例如,如果机器人要识别国家/地区名称,则需要将所有国家/地区名称存储在机器人的知识库中。
  • 自然语言领域特定的信息,如词典、同义词库和其他单词信息。生成模型后,这些可能不会传递到部署/已发布的应用
  • 应用
  • 生成的语言模型将驻留在应用包中。这将是您的应用程序大小中的主要角色

在线

低带宽数据连接应该不是什么大问题,因为与以下服务通信的开销并不高:

  • 对话流
  • 路易斯
  • 机智。.AI
  • IBM Watson

上述服务通过小型 JSON 数据交换直接启用 API。您可以通过查看其 API 和返回的数据来检查多少开销对您来说太大了。

优点和缺点

  • 在线机器人将享受对其知识库的远程更新
  • 您的在线机器人数据不安全,因为您的用户所说的/键入的任何内容都会转到第三方服务以生成响应。
  • 机器人的响应速度取决于所使用的联机服务的性能。在正常网络上通常不应该是问题。
  • 您的应用程序在未连接到互联网时毫无用处。

离线或设备上

如果您正在设计一个完全离线的机器人,则需要依赖旨在实现上述功能的框架或平台。

  • OSCOVA - 设备上机器人开发平台,我个人曾用它来为 Xamarin 中的一般客户查询创建 Android 机器人。
  • SIML - 一种基于 XML 的知识库创作语言,具有机器学习功能。
  • BotSharp
  • - SciSharp 的 Bot 开发平台
  • Xatkit - 基于Java的聊天机器人创建平台。

优点和缺点

  • 每当您希望向其知识库 (KB( 添加更多内容时,您的离线机器人应用都需要新的程序包更新(在 App Store 或 Play 商店中(。也许您可以在在线连接时将 KB 直接发送到应用程序。
  • 与使用在线服务的机器人相比,您的离线机器人大小会更大一些。
  • 机器人始终处于开启状态,因为它不需要互联网来执行任务或响应其用户。
  • 与机器人的对话非常安全,因为数据不会像在线机器人那样共享到第三方服务。

最新更新