在意图之间保持 Alexa 会话打开

Keeping Alexa session open between intents

我有一个具有多个意图的 Alexa 技能和一个使用 Python SDK 构建的客户后端。我目前可以在我的扬声器上使用该技能。我想尝试解决的问题是保持会话打开,或者在意图之间扬声器上的蓝灯。所以代替:

Me: Alexa, start the quiz 
Alexa: Hi, tell me your name 
Me: my name is Jeff 
Alexa: Nice to meet you Jeff, where are you from? 
Me: Alexa, I'm from Texas

^ 在给她我的名字后想要使用 CaptureCustomerLivingIntentHandler() class 时,我需要唤醒说话者告诉她我来自哪里。我想让演讲者听​​听下一个意图。如下所示:

Me: Alexa, start the quiz
Alexa: Hi, please tell me your name
Me: My name is Jeff
Alexa: Nice to meet you Jeff, where are you from?
Me: I'm from Texas

我需要在我的代码中添加什么才能让扬声器在每个意图之间保持打开状态,这样扬声器就不会关闭?我试图找到一些关于此的文档,但找不到可以解释如何使用 Python 作为后端来构建技能来解决此问题的内容。

如果您想保持会话打开,您需要在响应中包含 shouldEndSession 参数,并确保将其设置为 False

在 Python 中,它可能看起来像:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Nice to meet you Jeff, where are you from?", 
    },
    "shouldEndSession": False,
}

或者如果将 ASK SDK 用于 Python:

handler_input.response_builder.speak(
    "Nice to meet you Jeff, where are you from?").set_should_end_session(False).response

重要的是要指出,当您保持会话打开时,亚马逊指南规定需要确保您提示用户进行更多输入(即向用户提问)——您在例如。

您可能已经看过此处,但认为还值得专门链接到有关 managing the skill session 的文档。