处理 api.ai 范围的最佳方法?

Best way to handle ranges in api.ai?

我有一个房地产机器人,我需要处理以下情况。 - 我正在寻找 1200 平方英尺的房子 - 我正在寻找 1200 - 1500 平方英尺的房子 - 我正在寻找 1200 平方英尺到 1500 平方英尺之间的房子

另一种情况是我的机器人问 您要找多少平方英尺? 用户说 1500

几个问题

  1. 如何处理带或不带单位的范围和正常值
  2. 如何将值限制在一定范围内(10000 以下) 例如。我也遇到过这样的情况,我要求一个价格范围,然后我 需要区分平方英尺和价格吗?是什么 使用 api.ai?
  3. 执行此操作的最佳方法

这里有几个问题,所以我会快速回答每个问题,然后根据我认为您实际想要实现的目标,用更长的解决方案来回答。

How do I handle ranges and normal values with or without units?

处理多个可能条目的最佳方法是为同一意图创建大量示例并训练您的机器人。因此,对于平方英尺的情况,您可能想要创建如下所示的不同示例,向您的机器人指示如何识别最小和最大尺寸参数。有了足够多的示例,即使没有明确给出单位(即 'sqft')

,您的机器人也应该可以轻松学会识别这些参数

How do I restrict the values to be in a certain range (under 10000) for example.

简而言之,如果没有位于 API.ai 和可以进行一些数据验证的消息传递平台之间的定制服务器端解决方案,您就不需要。

I also have a case where I ask for a price range and I need to differentiate between square feet and price? What is the best way to do this with api.ai?

在没有提供单位的情况下,很难训练一个单一的意图来识别价格和平方英尺之间的差异,即使有一堆例子 API.ai 也可能总是不太准确认识到当用户说 'My target is 1200' 时,他们并不意味着 1,200 美元 - 同样,如果您有一个单一的意图来收集用户价格和用户规模需求。

对于您似乎想要实现的目标,我的建议是有两个单独的意图,一个针对尺寸,一个针对价格,并明确提示用户回答每个问题。这会使您的应用程序更加 'rigid',但是您在会话流程中允许的灵活性越大,引入的歧义就越多,这反过来又会降低您的机器人的实用性和准确性。

因此,从某种意义上说,这是与黑白调用的权衡,但我个人的建议是上述更结构化的方法。

如果您需要帮助构建自定义服务器端解决方案以介于 API.ai 和您的用户之间,请告诉我。其实并没有那么难