Как обрабатывать высказывания вне домена в Amazon Alexa

У меня были разные намерения в этом навыке, я использую php как сервис. Все работает нормально, но если пользователь запрашивает высказывания, которые не настроены ни в одном из намерений, он должен перейти к другой части.

Например, код выглядит следующим образом: -

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, который я написал, но он не выполняется.


person b PRASANTH    schedule 19.11.2018    source источник


Ответы (1)


Alexa всегда пытается сопоставить наиболее близкое намерение, независимо от того, что вводит пользователь. Вы не получите IntentRequest без намерения. Итак, если у вас есть пять намерений, Alexa попытается сопоставить все высказывания пользователя с одним из этих пяти намерений навыка.

Ваша часть else выполняется, когда Alexa запускает намерение, которое не было обработано. Из вашего примера кода SessionEndedRequest может войти в вашу часть else. Но если вы пытаетесь обрабатывать высказывания вне домена, вы должны использовать намерение AMAZON.Fallback и обрабатывать его в своем бэкэнде.

AMAZON.FallbackIntent

Если вы хотите обрабатывать запросы вне домена, или тарабарщину, или неожиданные высказывания, или когда пользователь говорит что-то, что не соответствует никаким намерениям в вашем навыке, вы должны использовать предопределенные AMAZON.FallbackIntent. Это намерение использует внедоменную модель, сгенерированную на основе вашей модели взаимодействия, и обеспечивает запасной вариант для пользовательских высказываний, которые не соответствуют ни одному из намерений вашего навыка.

Подробнее о AMAZON.FallbackIntent здесь

person johndoe    schedule 20.11.2018