如何在基于Lambda的Alexa Skill中关闭重提示?未找到相关文档
关闭基于Lambda的Alexa Skill重提示功能的方法
嘿,我之前也碰到过这个困惑,其实核心就是明确设置重提示文本为空——因为默认情况下,如果会话没结束且你没指定重提示,Alexa会自动用系统默认的重提示语。下面分两种常用场景给你具体操作步骤:
用ASK SDK v2开发(Node.js/Python)
不管是Node.js还是Python版本的SDK,都可以在构建响应时直接设置空的重提示文本:
Node.js示例
const { ResponseBuilder } = require('ask-sdk-core'); // 以某个意图处理函数为例 const YourIntentHandler = { canHandle(handlerInput) { // 你的意图判断逻辑 }, handle(handlerInput) { return handlerInput.responseBuilder .speak("好的,我已经记录你的请求了") .withShouldEndSession(false) // 保持会话打开,等待后续指令 .withReprompt("") // 设置空重提示,关闭自动重提示 .getResponse(); } };
Python示例
from ask_sdk_core.dispatch_components import AbstractRequestHandler from ask_sdk_core.utils import is_intent_name from ask_sdk_core.handler_input import HandlerInput from ask_sdk_model import Response class YourIntentHandler(AbstractRequestHandler): def can_handle(self, handler_input: HandlerInput) -> bool: return is_intent_name("YourIntent")(handler_input) def handle(self, handler_input: HandlerInput) -> Response: speech_text = "好的,我已经记录你的请求了" return handler_input.response_builder.speak(speech_text) \ .set_should_end_session(False) \ .reprompt("") \ .response
直接编写Lambda原生JSON响应
如果没用ASK SDK,直接构造响应JSON的话,只要在reprompt字段里设置空文本即可:
{ "version": "1.0", "response": { "outputSpeech": { "type": "PlainText", "text": "好的,我已经记录你的请求了" }, "reprompt": { "outputSpeech": { "type": "PlainText", "text": "" } }, "shouldEndSession": false } }
额外说明
如果你的需求是会话直接结束(不需要等待用户后续操作),那直接把shouldEndSession设为true就行,这种情况下Alexa不会触发任何重提示——但如果要保持会话打开同时关闭重提示,就必须设置空的重提示文本,这是关键哦。
内容的提问来源于stack exchange,提问作者Optimus
相关产品推荐
相关产品推荐

