【问题标题】:How to handle out of domain utterances in Amazon Alexa如何处理 Amazon Alexa 中的域外话语
【发布时间】:2018-11-22 17:35:44
【问题描述】:

我在技能上有不同的意图,我使用 php 作为服务。 一切正常,但如果用户询问未在任何意图中配置的话语,则必须转到 else 部分。

例如代码如下:-

if($EchoReqObj->request->type=="LaunchRequest"){
  $text = "Testing launch";
  $array = array("version"=>"1.0","response"=>array("outputSpeech"=>array("type"=>"PlainText","text"=>$text),"shouldEndSession"=>false));
  echo json_encode($array);
 }
else if(getting the intent name){//Do something.}
else{

  $text = "In else part";
  $array = array("version"=>"1.0","response"=>array("outputSpeech"=>array("type"=>"PlainText","text"=>$text),"shouldEndSession"=>false),"sessionAttributes"=>array("lastSpeech"=>$text));
  echo json_encode($array);
}

这是我写的else,但它没有被执行。

【问题讨论】:

    标签: alexa alexa-skills-kit alexa-skill alexa-slot


    【解决方案1】:

    无论用户输入是什么,Alexa 总是尝试映射到最接近的意图。没有意图,您不会得到IntentRequest。因此,如果您有五个意图,Alexa 将尝试将所有用户话语与这五个技能的意图之一进行匹配。

    当 Alexa 触发尚未处理的意图时,您的 else 部分将执行。从您的示例代码中,SessionEndedRequest 可能会进入您的 else 部分。但是,如果您尝试处理域外话语,则必须使用 AMAZON.Fallback 意图并在后端处理它。

    AMAZON.FallbackIntent

    如果您想处理域外请求、胡言乱语或意外话语,或者当用户说出与您技能中的任何意图无关的内容时,您必须使用预定义的 AMAZON.FallbackIntent。此意图使用基于您的交互模型生成的域外模型,并为与您的任何技能意图不匹配的用户话语提供后备。

    更多关于AMAZON.FallbackIntenthere

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多