【问题标题】:Is it logical to invoke other intent from the custom intent in an Alexa app从 Alexa 应用程序中的自定义意图调用其他意图是否合乎逻辑
【发布时间】:2019-03-17 01:29:10
【问题描述】:

我的交互必须分两步执行。在第一步。 Alexa 会向用户获取一些信息。根据发布的信息,Alexa 将要求根据用户的回答(是/否)采取另一项行动。

那么是否可以调用一个意图,并且基于先前意图通过重新提示的回复,我将能够调用 alexa 应用程序的另一个意图。

如果是这样,那么我该如何通过 akexa node js SDK v2 来做到这一点。

用例:
我的应用程序正在与需要 Alexa 使用帐户链接的第三方 API 连接。场景是,当我的帐户已链接并且我拥有有效的访问令牌时。以下是对话的进行方式:

用户:Alexa,请“a”为我获取过期发票。
Alexa:您有“x”张发票。您要发送付款提醒吗?
用户:是的。
Alexa:您发送提醒的请求已被注册。还有什么我可以帮忙的吗?
用户:不,谢谢。

为此,我必须与外部 API 进行两次通信。一是获取逾期发票,二是发送提醒。

【问题讨论】:

  • 在我看来,您应该使用单一意图,也许还应该使用插槽来确定如何继续实现该意图。我建议只为用户自己触发的完全独立的操作制定意图。对于过于相似或相互依赖的意图,将它们重组为一个意图并使用插槽。当然这取决于你的用例,所以如果你坚持,那么可能会添加更具体的例子来说明你正在尝试做的事情。
  • 我的应用程序正在连接第三方 API,这需要 alexa 使用帐户链接。场景是,当我的帐户已链接并且我拥有有效的访问令牌时。以下是对话的方式。用户:Alexa,请“a”给我拿逾期发票。 Alexa:您有“x”张发票。是否要发送付款提醒。用户:是的。 Alexa:您发送提醒的请求已被注册。还有什么我可以帮忙的吗?用户:不,谢谢。所以为此,我必须与外部 API 进行两次通信。一、同时获取逾期发票。并在发送提醒时。这有意义吗?

标签: alexa alexa-skills-kit


【解决方案1】:

从您的示例中,我猜您将invoices 作为一个意图,然后将reminders 作为另一个意图。如果reminders 只在invoices 之后立即使用,那么我会让它们成为一个单一的意图。但是,如果您希望用户在任何时候创建提醒,或者如果您有多个可以流入reminders 意图的意图,则可以使用单独的意图。

查看: How to Pass a new Intent

每个 Dialog 指令都包含一个可以采用 Intent 对象的updatedIntent 属性。使用它来:

  • 针对完全不同的 Intent 触发对话。例如,在完成 BookFlight Intent 的对话后,您可以返回 Dialog.Delegate 并将 updatedIntent 设置为 BookRentalCar 以开始新的对话。李>

...
当您使用updatedIntent 更改为不同的意图时,指令会针对新意图而不是原始意图:

...
当您使用updatedIntent 设置或更改原始意图的数据时,请确保意图名称和完整的槽集与发送到您的技能的意图相匹配。

所以使用你的例子,你会这样做:

  1. 用户:Alexa,让 SkillName 帮我获取过期发票。

    • 触发invoices 意图。
    • 进行 API 调用,获取 # 个发票。
    • 返回 Dialog.DelegateDialog.ElicitSlotDialog.ConfirmIntent 并将 updatedIntent 设置为 reminders 意图。 (包括所有插槽,必须是完整的意图对象)
    • 将 outputSpeech 设置为“您有 X 份发票。您要发送付款提醒吗?”
  2. Alexa:您有 X 份发票。您要发送付款提醒吗?

  3. 用户:是的。

    • 根据您选择使用的对话指令,它会以不同的方式返回用户的答案。要么填满你准备好的空位,要么填入confirmationStatus,或AMAZON.YesIntent
    • 检查其中一项是否正确,如果确认,请调用提醒 API。
    • 通过输出消息返回已完成的意图:
  4. Alexa:您发送提醒的请求已被注册。还有什么我可以帮忙的吗?

【讨论】:

  • 我正在尝试消化它并应用您的建议。嗯你是对的。因为我有不同的提醒意图。 “Alexa,让应用发送过期提醒。”。这就是为什么我必须保持单独的意图。对话框在我看来非常接近我正在寻找的内容。
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多