【问题标题】:Alexa Skill: Allow an address (street + city) OR an airport for input?Alexa Skill:允许输入地址(街道+城市)或机场?
【发布时间】:2017-10-17 15:43:45
【问题描述】:

我正在使用 Alexa Skills Kit,希望有人能够指定要前往的位置。这可以是地址(123 Main St, Springfield, MA)或机场(亚特兰大机场)。

我看到 Alexa 的默认插槽类型为 AMAZON.AirportsAMAZON.PostalAddressAMAZON.US_CITY,但我不知道如何将机场或地址+城市纳入插槽。

我正在尝试执行的示例:

Alexa,请 Jarvis 安排周五乘车前往 123 Main St, Springfield

Alexa,请 Jarvis 安排周六去肯尼迪国际机场的车程

我试图使这尽可能自然,因此要求我更改每种目标类型的语言(例如:“安排行程”表示机场 - 与“预订行程”表示地址)会适得其反。我已经尝试过了,但正如我所说,它适得其反,如果我让 Intent 名称过于相似(“为我预订一趟”-vs-“为我预订一趟去机场”)Alexa 会很容易困惑。

我在我的服务器上运行 PHP,但如果我可以在技能 JSON 本身中处理这个,那将是理想的。

【问题讨论】:

  • 我们总是乐于提供帮助和支持,但您需要先帮助自己。 :-)doing more research 之后,如果您有问题发布您尝试过的方法,并清楚地解释什么不起作用并提供a Minimal, Complete, and Verifiable example。阅读How to Ask 一个好问题。请务必take the tour 并阅读this
  • 我使用 Stack 已经有一段时间了,之前看过这个复制/粘贴,但我看不出它是如何使用 Skills Kit(这是一种所见即所得的编辑器)和固定值工作的(想想专有枚举)。这就是问题的重点;我不是在尝试修复错误,而是不知道如何开始混合/匹配插槽类型,除了谷歌搜索之外,我当然在去 Stack 之前尝试过。
  • 位置是否可解析,以便它们可以用作条件来确定要搜索的插槽类型?基本上,您可以在搜索机场时要求使用“机场”这个词吗?我不认为要求使用诸如“Alexa,请 Jarvis 安排周六前往 JFK 机场 的车程”这样的短语会“适得其反”。或者,也许你可以定义一个优先顺序,如果第一个没有找到结果,它会继续下一个。
  • 我认为在脚本的后面强制使用 airport 这个词会很好,但如果我可以“分支”这两个选项的唯一方法是使用两个 Intent 我有一个 Intent 名称冲突.如果我将地址和机场都作为非必填字段,那么有人可以在不指定任何一个的情况下提交。

标签: php amazon-web-services alexa alexa-skills-kit


【解决方案1】:

您可以将一个意图用于 2 种不同的话语:

FirstIntent 安排前往 {AIRPORT_SLOT} 机场的车程 FirstIntent 安排前往{ADDRESS_SLOT}的行程

或者您可以使用 2 个独立的意图来表达不同的话语:

AirportIntent 安排乘车前往 {AIRPORT_SLOT} 机场 AddressIntent 安排乘车前往{ADDRESS_SLOT}

如果您采用第一种方法,使用单个 Intent,则您的 Intent 需要检查返回哪个槽(如果有)。

我会选择使用单独的意图,并将公共代码重构为由两个意图处理程序调用的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 2010-09-19
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多