首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >接受任何用户输入的Alexa自定义技能,但只包括部分输入,以确认

接受任何用户输入的Alexa自定义技能,但只包括部分输入,以确认
EN

Stack Overflow用户
提问于 2019-05-11 15:56:11
回答 1查看 148关注 0票数 4

我正试着建立一个定制的Alexa技能来写一本感恩日记。目的是实现一个交互,在这个交互中,Alexa设备询问用户他们感激的是什么,并将其重复作为确认。

在重复用户所说的内容时,我遇到了一个问题。我希望谈话能这样进行:

Alexa:,你今天感激什么?用户我很感激狗,,你说你很感激狗。对吗?

我将其设置为一个单一意图,如下所示:

  • gratitude_object作为必需的插槽,类型为AMAZON.SearchQuery
  • 这个时隙的用户话语是I'm grateful for {gratitude_object} (和一些变化)。
  • 此插槽的确认消息是You're feeling grateful for {gratitude_object}. Is that correct?

我遇到的问题是,当我在语音分析器中测试这个模型时,它是这样的:

Alexa:,你今天感激什么?用户我很感激狗,,,你说你感激我,我感谢狗。对吗?

我猜想这与AMAZON.SearchQuery会接受任何作为有效输入的事实有关,但我不知道如何解决这个问题。

我还尝试为I'm grateful for短语创建一个自定义插槽:

  • 插槽名称:gratitude_phrase_initiator
  • 插槽类型:定制插槽类型
  • 时隙值:“我感激”,“我感谢”(等等)

但是,如果我试图在我的意图中使用这个插槽,可以让用户对gratitude_object插槽发表意见:

{gratitude_phrase_initiator} {gratitude_object}

...then我得到以下错误:

意图“gratitude_statement_initiator”中的插槽"gratitude_object“的示例语句”{gratitude_object}{NewEntryIntent}“不能同时包含短语插槽和另一个意图插槽。错误代码: InvalidSlotSamplePhraseSlot

我真的很想保持目前的交互,用户从说“我很感激……”开始。对于如何使用交互模型来完成这项工作,有什么建议吗?还是说这是不可能的?这是我可以在代码中而不是交互模型中处理的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-14 09:33:33

看起来,您的设置很完美,但是您希望SearchQuery在排除最初的话语短语方面做得更好。因此,您必须在代码中进一步解析它。您应该使用Lambda函数来字符串替换槽值以删除任何初始短语。

Node.js中的示例:

代码语言:javascript
代码运行次数:0
运行
复制
var gratitude_object = this.event.request.intent.slots.gratitude_object.value;

var initial_phrases = [
    "i'm grateful for",
    "i am grateful for",
];

initial_phrases.forEach(function(value){
    gratitude_object = gratitude_object.toLowerCase().replace(value,"");
});

注意,初始短语的数组是用小写写的,forEach循环在检查替换之前也会使槽值小写。这样,在编写要删除的初始短语时,不必担心大小写匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56091957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档