如何根据Api.ai?

时间:2016-04-27 17:47:18

标签: dialogflow

我在Api.ai控制台中尝试了几个例子。我看到有一些示例,代理通过使用从用户查询或上下文中提取的值进行响应。但有没有办法显示使用所执行操作的输出形成的响应?

例如 -

用户:我的披萨订单是否已确认?

操作:检查订单状态

回复:是的,已经确认(或者#34;不,它不是")

3 个答案:

答案 0 :(得分:1)

您必须使用一些自定义webhook来执行此操作,要么与第三方API集成,要么将您自己的服务器端调用到数据库 - 在这种情况下,webhook将获取用户的ID并查询他们的披萨是否准备就绪,然后将其传递回API.ai。

以下是使用第三方webhook执行您要求的示例: https://github.com/api-ai/apiai-weather-webhook-sample

答案 1 :(得分:0)

是的,你可以用webhooks做到这一点。

通常,您会在数据库中保存订单的状态,然后您可能会有以下意图:

  1. 了解您的用户的查询(我的披萨订单已确认)
  2. 意图会调用你的webhook
  3. webhook将返回状态顺序。
  4. Api.ai会给出答案。
  5. 当您使用网络连接时,您需要返回speech响应,displayText,可选择的应用所需的datacontextOut和{{1} }。

    我想你还需要在api.ai中实现一些上下文,以便你现在可以询问订单的satus。然后,您就可以使用source

答案 2 :(得分:0)

马特在这里是对的。您必须使用webhook。不幸的是,API.AI的文档目前很差。这是传入的帖子请求的屏幕截图示例。我的消息函数将返回一个具有所需响应的对象。在这种情况下,我正在使用Telegram聊天机器人。如果您没有使用任何信使,则可以删除数据键:值。 FollowupEvent也是可选的。

Node.JS code with Restify

在您的API.AI意图中,请务必检查Webhook。如果您在此处收到文本响应“已损坏”,则表明出现了问题,您应该检查错误代码。

API.AI intent

最后,在履行标签下,确保启用webhook并将其指向正确的端点。