0

我正在用botkit构建一个 Messenger 机器人,语言处理是通过api.ai完成的。

Apiai 的意图是引导用户体验机器人体验的好方法。我使用预定义的意图来了解用户想要做什么,并使用 botkit 的 convo 对象与他开始对话。在这一点上,我已经预定义了用户需要回答的问题。

例如,其中一个问题是“那是什么时候发生的?” 用户可以用纯文本回答。我不需要 apiai 告诉我意图(以及我不想为此花时间培训),因为我已经知道会发生什么。

所以我正在寻找一种方法来简单地从字符串中提取系统和开发人员定义的实体。因此,如果用户提供答案“我昨天发生了”,我可以验证我有日期实体但时间实体是空的,所以我也会提示给时间。

我已经阅读了 apiai 和其他竞争对手的文档,但还没有找到一种方法来做到这一点。它总是关于定义意图。

所以基本上 - 从字符串中查找和提取实体。是否有可能,如果是 - 如何?目前 apiai 是我的工具,但如果有必要我愿意改变它。

4

1 回答 1

1

您可以使用必需的参数来确保从用户那里获得必要的信息。要制作参数,只需选中 Action 部分下方意图中参数名称左侧的框(在下面的屏幕截图中用箭头指向)。要为参数创建自定义提示(即“它发生在什么时间?”),请单击提示列标题下的参数名称右侧(在下面的屏幕截图中的红色框中):

如果您需要进一步验证,您需要为 Api.ai 设置一个履行 webhook。Api.ai 将向您的 webhook 发送请求,其中将包含 JSON 数据,包括实体的值(这是在对您的 webhook 的请求中包含的结果对象的参数属性中)。然后,您可以验证任何必要的数据并相应地响应用户。实现 webhook 的文档在这里: https ://docs.api.ai/docs/webhook#webhook-requirements

于 2017-06-26T19:52:20.853 回答