Есть ли способ проверить или перечислить значения пользовательского слота, настроенные в вашем модель взаимодействия? Например, скажем, у вас есть схема намерения со следующим намерением:
{
"intent": "MySuperCoolIntent",
"slots":
[
{
"name": "ShapesNSuch",
"type": "LIST_OF_SHAPES"
}
]
}
Кроме того, вы определили пользовательский слот LIST_OF_SHAPES со следующими значениями:
SQUARE
TRIANGLE
CIRCLE
ICOSADECAHECKASPECKAHEDRON
ROUND
HUSKY
Вопрос: есть ли метод, который я могу вызвать из своего Speechlet или моего RequestStreamHandler, который даст мне перечисление этих значений пользовательских слотов??
Я просмотрел документацию SDK Alexa Skills Kit Javadocs , расположенную здесь а>
И я ничего не нахожу.
Я знаю, что могу получить значение слота, отправленное с намерением:
String slotValue = incomingIntentRequest.getIntent().getSlot("LIST_OF_SHAPES").getValue();
Я даже могу перечислить ВСЕ входящие слоты (а вместе с ними и их значения):
Map<String, Slot> slotMap = IncomingIntentRequest.getIntent().getSlots();
for(Map.Entry<String, Slot> entry : slotMap.entrySet())
{
String key = entry.getKey();
Slot slot = (Slot)entry.getValue();
String slotName = slot.getName();
String slotValue = slot.getValue();
//do something nifty with the current slot info....
}
Что бы я действительно хотел, так это что-то вроде:
String myAppId = "amzn1.echo-sdk-ams.app.<TheRestOfMyID>";
List<String> posibleSlotValues = SomeMagicAlexaAPI.getAllSlotValues(myAppId, "LIST_OF_SHAPES");
С этой информацией мне не пришлось бы поддерживать два отдельных «списка» или «перечисления»; Один в модели взаимодействия, а другой в моем обработчике запросов. Кажется, это должно быть правдой?