dialogflow-es - 连接一个网络服务,它可以询问问题并接收答案?

标签 dialogflow-es actions-on-google google-home

是否有可能以某种方式调用可以询问问题并接收答案的网络服务?

让我解释一下: 在家里,我有一个媒体中心,里面有一些电影。当然,它的内容会随着时间的推移而变化:文件被添加、删除、重命名等等。

现在我想说“嘿 Google,玩《绿野仙踪》”,然后《绿野仙踪》就应该在我的电视上播放。

因为我知道如何在 .NET 中开发东西,所以家里运行的 Web 服务已经存在并且工作正常,电影开始了。我想多亏了 API.ai,我应该能够通过 webhook 功能将其连接到 Google Home。

但是如果有多个结果,我想问应该选择哪个结果呢?例如:

  1. 用户说“玩星球大战”
  2. Google Home 调用我的网络服务,该服务会检查我的磁盘并发现有多部星球大战电影。
  3. 现在,需要询问用户“有多个结果。您想看到哪一个?《星球大战:新希望》、《星球大战:帝国反击战》,……”
  4. 用户现在回答“星球大战:新希望”
  5. Google Home 使用该信息再次调用网络服务,成功后它会回复“好的,播放《星球大战:新希望》”。

我还没有找到如何使用 API.ai 做到这一点。据我了解,API.ai 使用一些参数(JSON)调用网络服务,将从网络服务收到的响应文本发送回 Google Home,然后结束。

还是我错过了什么?你们知道我如何实现这个场景吗?

或者我们能否以某种方式开发我们的私有(private)服务,例如 Google Home 应用中列出的服务(Akinator、Dominos、CNBC 等),还是只能作为合作伙伴?实际上会很好。

提前致谢!

最佳答案

As I understand, API.ai calls the web service with some parameters (JSON), sends the response text received from the web service back to Google Home and then just ends.

除非您从网络服务发送,否则机器人仍处于控制之中:

data: {
  google: {
   expect_user_response: false,
 }
}

或在意图 Pane 中的 API.AI 中选中此框

enter image description here

如果您使用 ActionsSDKAssistant,请确保使用正确的方法。询问与讲述

https://developers.google.com/actions/reference/ActionsSdkAssistant#ask https://developers.google.com/actions/reference/ActionsSdkAssistant#tell

关于dialogflow-es - 连接一个网络服务,它可以询问问题并接收答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41371115/

相关文章:

node.js - Dialogflow webhook(Google 上的操作)。我是否应该使用 RichResponse?

webhooks - 使用 Google Home 与网络服务器通信

actions-on-google - 我可以从 Actions On Google 获取请求者的本地时间(或偏移量)吗?

actions-on-google - 如何在 Google 助理响应中添加几秒钟的休息/暂停

node.js - Firebase 功能因印地语字符而出现故障

dialogflow-es - 您如何为 Dialogflow 在上传的 CSV 中转义逗号?

firebase - Google +帐户与Firebase关联时的操作

actions-on-google - Google 模拟器上的操作不起作用

google-cloud-platform - 项目 "xxx"上有一个或多个留置权,以防止意外删除。要删除项目,请先删除留置权,然后重试

actions-on-google - 为什么我的 Google Home 在 Actions On Google webhook 请求中发送空位置字段?