В Интернете почти нет информации, которую я могу найти по этой теме.Я не знаю, как получить доступ к намерениям или использовать их для возврата ответа, если определенные параметры удовлетворены этим намерением.Я пытаюсь создать диалог, который может быть таким простым:
Я: «Добавить юнит»
Алекса: «Как называется юнит?»
Я: "Инжиниринг"
Алекса: "Хорошо, добавил юнит" Инжиниринг ".
В настоящее время все, что я умею делать, - это выполнять действие после вызова навыка, независимо от того, что сказано,Так, например, я мог бы буквально сказать,
Me: «Alexa, open StudyPal»
Alexa: «Что-то, что возвращается всякий раз, когда умение активировано»
или...
Я: «Алекса, спроси StudyPal о моих юнитах»
Алекса: «Что-то, что возвращается, когда умение активировано»
Любая помощь будет принята.Для справки, это часть моего кода ...
public class StudyPalHandler implements RequestStreamHandler {
private final Skill skill;
private final JacksonSerializer serializer;
public StudyPalHandler() {
skill = new StandardSkillBuilder()
.addRequestHandler(new StudyPalExtraHandler())
.build();
serializer = new JacksonSerializer();
}
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
String request = IOUtils.toString(inputStream);
RequestEnvelope requestEnvelope = serializer.deserialize(request, RequestEnvelope.class);
ResponseEnvelope responseEnvelope = skill.invoke(requestEnvelope);
byte[] response = serializer.serialize(responseEnvelope).getBytes(StandardCharsets.UTF_8);
outputStream.write(response);
}
}
public class StudyPalExtraHandler implements RequestHandler {
@Override
public boolean canHandle(HandlerInput handlerInput) {
return true;
}
@Override
public Optional<Response> handle(HandlerInput handlerInput) {
return handlerInput.getResponseBuilder().withSpeech("Something that is returned whenever the skill is activated").build();
}
}