Как передать намерение Алексе, используя Python и ask-sdk (цепочка намерений)? - PullRequest
1 голос
/ 14 марта 2020

В моем Alexa-Skill я задаю пользователю вопрос Да / Нет (нравится ли ему слышать новости или нет) - в части да я хотел бы запустить NewsIntent, как если бы пользователь вызывал его вручную.

Идея, стоящая за этим, пришла от Джастина Джеффресса: https://developer.amazon.com/de/blogs/alexa/post/9ffdbddb-948a-4eff-8408-7e210282ed38/intent-chaining-for-alexa-skill

handler_input.response_builder.add_directive(DelegateDirective('NewsIntent')).speak(speech_text)
return handler_input.response_builder.response

Когда я тестирую его в консоли разработчика, я получаю текст speach_text, но затем я сообщил, что произошла ошибка.

Это вывод JSON:

{
    "body": {
        "version": "1.0",
        "response": {
            "outputSpeech": {
                "type": "SSML",
                "ssml": "<speak>My pleasure!</speak>"
            },
            "directives": [
                {
                    "type": "Dialog.Delegate",
                    "updatedIntent": {
                        "name": "NewsIntent",
                        "confirmationStatus": "NONE",
                        "slots": {}
                    }
                }
            ],
            "type": "_DEFAULT_RESPONSE"
        },
        "sessionAttributes": {
            "IntentOrigin": null
        },
        "userAgent": "ask-python/1.13.0 Python/3.6.9 ask-webservice django-ask-sdk ask-webservice django-ask-sdk"
    }
}

Кто-нибудь есть идеи, как решить эту проблему? Python не выдает никаких исключений в этом случае. (Он работает под Django)

Спасибо!

1 Ответ

1 голос
/ 22 марта 2020

Наконец я нашел ответ:

return NewsIntentHandler.handle(self, handler_input)
...