3

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

例如 -

用户:我的披萨订单确认了吗?

行动:检查订单状态

回应:是的,已确认(或“不,不是”)

4

3 回答 3

1

您将不得不使用一些自定义 webhook 来执行此操作,或者与 3rd 方 API 集成,或者将您自己的服务器端调用到数据库 - 在这种情况下,webhook 将获取用户的 ID 并查询他们的披萨是否准备好了或不是,然后这将被传递回 API.ai。

这是一个使用 3rd 方 webhook 执行您要求的示例: https ://github.com/api-ai/apiai-weather-webhook-sa​​mple

于 2017-04-16T07:14:42.273 回答
0

是的,您可以使用 webhook 做到这一点。

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

  1. 了解您的用户的查询(我的披萨订单是否确认)
  2. 意图将调用您的 webhook
  3. webhook 将返回状态顺序。
  4. 然后 Api.ai 会给出答案。

当您使用 webhook 时,您需要返回speech响应、您的应用程序需要的displayText可选、和.datacontextOutsource

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

于 2016-07-18T09:33:39.090 回答
0

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

带有 Restify 的 Node.JS 代码

在您的 API.AI 意图上,请确保选中 Webhook。如果您最终在此处收到文本响应“Broken”,则说明出了点问题,您应该检查您的错误代码。

API.AI 意图

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

于 2017-05-16T15:33:48.543 回答