当前位置: 首页 > 知识库问答 >
问题:

亚马逊Alexa Skill

申屠秦斩
2023-03-14

我想问alexa各种各样的问题,最后我想让它问“你还有什么想知道的吗?”当我说“是”(yes是工作建议)时,它应该根据我的意图来建议我。就像我在

IncityIntent:

    'InCityIntent': function () {
        speechOutput = '';


speechOutput = "The atmosphere in the city is beautiful. Is there anything else you would like to know";
        this.emit(":ask", speechOutput, speechOutput);


'YesIntent': function () {
        speechOutput = '';
/*when the user say yes, he should get this output*/  
            speechOutput = You can learn more about city by trying, alexa what are the best places in the city";
            this.emit(":tell",speechOutput, speechOutput);

FoodIntent:

    'FoodIntent': function () {
        speechOutput = '';


speechOutput = "Food in the city is delicious. Is there anything else you would like to know";
        this.emit(":ask", speechOutput, speechOutput);

'YesIntent': function () {
        speechOutput = '';
/*change in response here*/
            speechOutput = You can learn more about food by trying, alexa what are the best restaurants in the city";
            this.emit(":tell",speechOutput, speechOutput);

共有1个答案

充运浩
2023-03-14

首先,不要创建自定义的YesIntentnocontent,而是使用AMAZON。YesInt和亚马逊。无内容。如果你愿意,你总是可以在这些预先定义的意图中添加话语。

你的问题可以通过几种方式解决。

使用sessionAttributes:
添加一个previousIntent属性,或者在收到初始请求时,在sessionAttributes中跟踪对话,比如说InCityIntent。在你的亚马逊上。YesInt或亚马逊。NoIntent处理程序检查之前的意图,并相应地回复。

 'InCityIntent': function () {
       const speechOutput = "The atmosphere in the city is beautiful. Is there anything else you would like to know";
       const reprompt = "Is there anything else you would like to know";
       this.attributes['previousIntent'] = "InCityIntent";
       this.emit(":ask", speechOutput, reprompt);
  }

 'Amazon.YesIntent': function () {
     var speechOutput =  "";
     var reprompt = "";
     if (this.attributes 
        && this.attributes.previousIntent
        && this.attributes.previousIntent === 'InCityIntent' ) {
        speechOutput = "You can learn more about city by trying, Alexa what are the best places in the city";
        reprompt = "your reprompt";
     } else if ( //check for FoodIntent ) {

       // do accordingly
     }
     this.attributes['previousIntent'] = "Amazon.YesIntent";
     this.emit(":ask", speechOutput, reprompt);
  }

使用状态处理程序
ask nodejs sdkv1具有基于状态生成响应的状态处理程序。这个想法与此类似,sdk将为您添加sessionAttribute参数,而when将根据该状态自动映射处理程序。

 'InCityIntent': function () {
       const speechOutput = "The atmosphere in the city is beautiful. Is there anything else you would like to know";
       const reprompt = "Is there anything else you would like to know";
       this.handler.state = "ANYTHING_ELSE";
       this.emit(":ask", speechOutput, reprompt);
  }

const stateHandlers = Alexa.CreateStateHandler("ANYTHING_ELSE", {
    "AMAZON.YesIntent": function () {
       var speechOutput =  "You can learn more about city by trying, Alexa what are the best places in the city";
       var reprompt = "your reprompt";
       this.emit(":ask", speechOutput, reprompt);
    },

一旦设置了状态,那么下一次将触发该特定状态处理程序中定义的意图处理程序。相应地更改状态,完成后,将其删除。

 类似资料:
  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 我刚刚开始使用AWS EC2。我明白EC2就像一台远程计算机,在那里我可以做几乎所有我想做的事情。然后我发现了ECS的事。我知道它使用Docker,但我对这两者之间的关系感到困惑。 ECS只是EC2中的Docker安装吗?如果我已经有一个EC2并且我启动了一个ECS,这是否意味着我有两个实例?

  • 但有些多重问题, 如何在.NET中对Amazon Cognito用户池执行身份验证。我以以下方式启动Auth: 他们的文档非常非常糟糕,当我想回应挑战时,我似乎找不到该通过什么。 我假设它只是用默认的JWT中间件配置OWIN,还是应该期待其他东西?

  • 我们正在开发一个系统,我们需要向数千部手机发送推送通知。我们使用Amazon SNS进行了设置。我们将向每部手机发送单独的消息,因此我们直接发送到SNSendpointARN,而不是主题ARN。 我们目前正在想这个系统的性能。我在网上找不到任何关于可以向SNS发送多少消息的内容。例如,如果我需要向25000个SNSendpoint发送25000条消息,我可以以多快的速度发送它们?秒、分钟、小时?

  • 我正在努力培养Alexa技能。我仍在试图让Alexa在有意向请求时说些什么,但我遇到了一个错误,我不知道该怎么办。当我通过Alexa服务模拟器运行示例话语时,我得到了错误: 无法调用远程终结点,或者它返回的响应无效。 如果我在lambda测试事件中运行相同的语句,我得到的错误是: "错误消息":"异常:引用错误:未定义输出" 我的javascript代码是 任何帮助将不胜感激,谢谢!

  • 我能够从EC2实例连接到VPC中的ElastiCache Redis实例。但我想知道是否有办法连接到Amazon EC2实例之外的ElastiCache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例。 当前在我的本地设置中尝试时: 我只在一段时间后才会暂停。