2016-04-07 3 views
7

Я пишу умение Alexa, и я могу получить только один параметр слова в свой код.Только получение параметров одного слова от Alexa Skills Kit

Вот цель схемы:

{ 
    "intents": [ 
    { 
     "intent": "HeroQuizIntent", 
     "slots": [ 
     { 
      "name": "SearchTerm", 
      "type": "SEARCH_TERMS" 
     } 
     ] 
    }, 
    { 
     "intent": "HeroAnswerIntent", 
     "slots": [ 
     { 
      "name": "SearchTerm", 
      "type": "SEARCH_TERMS" 
     } 
     ] 
    }, 
    { 
     "intent": "AMAZON.HelpIntent" 
    } 
    ] 
} 

и мои образцы Высказывания являются:

HeroQuizIntent quiz me 
HeroAnswerIntent is it {SearchTerm} 

Для HeroAnswerIntent, я проверяю слот SEARCHTERM, и я получаю только отдельные слова там.

Итак, «Питер Паркер» дает «Паркер», «Стив Роджерс» дает «Роджерс», а «Тони Старк» дает «Старк».

Как принять несколько слов в слот?

+0

Любые подсказки в структуре json, которые вы получаете? Ничего очевидного. Возможно, стоит опубликовать структуру. –

+0

Хорошая точка. Вот соответствующая часть запроса, отправляемого на Lamda. – Xanxir

+0

' "запрос": { "типа": "IntentRequest", "RequestID": "EdwRequestId.da0c74ea-15bd-45b9-a69e-76c523f08195", "метка":«2016-04-08T18: 04: 45Z », "намерение": { "название": "HeroAnswerIntent", "слоты": { "SEARCHTERM": { "название": "SEARCHTERM", "значение": "Паркер" } } } }, ' – Xanxir

ответ

0

Мне пришлось изменить тип слота на AMAZON.LITERAL.

Фокус в том, что в образцовых высказываниях я также должен был предоставить несколько высказываний, чтобы продемонстрировать минимальные и максимальные размеры литералов, которые должна интерпретировать Алекса. Это воинственно, но работает.

Вот ссылка на него: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference

2

У меня была такая же проблема с моим мастерством, и это единственное решение, которое работает для меня умение использовать несколько слов, но вы должны проверить эти слоты не пустой и сцепить их

Намерение схемы:

{ 
    "intent": "HeroAnswerIntent", 
    "slots": [ 
    { 
     "name": "SearchTermFirst", 
     "type": "SEARCH_TERMS" 
    }, 
    { 
     "name": "SearchTermSecond", 
     "type": "SEARCH_TERMS" 
    }, 
    { 
     "name": "SearchTermThird", 
     "type": "SEARCH_TERMS" 
    } 
    ] 
}, 

образец высказывании

HeroAnswerIntent is it {SearchTermFirst} HeroAnswerIntent is it {SearchTermFirst} {SearchTermSecond} HeroAnswerIntent is it {SearchTermFirst} {SearchTermSecond} {SearchTermThird}

И последнее, что вам нужно поместить каждый из ваших слов в отдельной строке в SEARCH_TERMS определении интервала

использование Также AMAZON.LITERAL иногда не проходит переменную в навык на всех, даже если вы проверить его с помощью службы тренажера (мастерская консоль, тестовая вкладка)

0

Решение @Xanxir упоминается как эквивалентное с новым форматом custom slots. В этом случае вы просто поместите несколько примеров длины в свой собственный список значений для вашего типа слота.

Смежные вопросы