是否有可能以某种方式调用可以询问问题并接收答案的网络服务?
让我解释一下: 在家里,我有一个媒体中心,里面有一些电影。当然,它的内容会随着时间的推移而变化:文件被添加、删除、重命名等等。
现在我想说“嘿 Google,玩《绿野仙踪》”,然后《绿野仙踪》就应该在我的电视上播放。
因为我知道如何在 .NET 中开发东西,所以家里运行的 Web 服务已经存在并且工作正常,电影开始了。我想多亏了 API.ai,我应该能够通过 webhook 功能将其连接到 Google Home。
但是如果有多个结果,我想问应该选择哪个结果呢?例如:
- 用户说“玩星球大战”
- Google Home 调用我的网络服务,该服务会检查我的磁盘并发现有多部星球大战电影。
- 现在,需要询问用户“有多个结果。您想看到哪一个?《星球大战:新希望》、《星球大战:帝国反击战》,……”
- 用户现在回答“星球大战:新希望”
- 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 中选中此框
如果您使用 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/