我正在使用botkit构建一个Messenger bot,语言处理通过api.ai完成。
Apiai的意图是引导用户完成机器人体验的好方法。我使用预先定义的意图来了解用户想要做什么以及使用botkit的convo对象与他开始对话。在这一点上,我有预定义的问题,用户需要回答。
例如,其中一个问题是"什么时候发生?"并且用户可以用纯文本回答。我不需要apiai告诉我意图(以及我不想花时间训练)因为我已经知道会发生什么。
所以我正在寻找一种简单地从字符串中提取系统和开发人员定义的实体的方法。所以如果用户提供答案"我昨天发生了#34;我可以验证我有日期实体,但时间实体是空的,所以我也会鼓励时间。
我已经阅读了apiai和其他竞争对手的文档,但还没有找到办法。它总是关于定义意图。
基本上 - 从字符串中查找并提取实体。它是否可能,如果是 - 如何?目前apiai是我的工具,但如果需要,我愿意改变它。
答案 0 :(得分:1)
您可以使用必需的参数来确保从用户那里获得必要的信息。要创建参数,只需选中Action部分下方的intent中参数名称左侧的框(在下面的屏幕截图中用箭头指向)。要为参数创建自定义提示(即&#34;它发生了什么时间?&#34;)单击提示列标题下的参数名称右侧(在下面的屏幕截图中的红色框中):< / p>
如果您需要进一步验证,则需要为Api.ai设置实现webhook。 Api.ai将向您的webhook发送请求,其中包含JSON数据,包括实体的值(这是在您的webhook请求中包含的结果对象的parameters属性中)。然后,您可以验证所需的任何数据并相应地响应用户。履行webhooks的文档在这里:https://docs.api.ai/docs/webhook#webhook-requirements