Как обрабатывать высказывания вне домена в 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 Я написал, но это не выполняется.

1 ответ

Решение

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

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

AMAZON.FallbackIntent

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

Еще AMAZON.FallbackIntent Вот

Другие вопросы по тегам