Amazon Lex V2对接Amazon Connect搭建自助机器人遇故障求助
Amazon Connect与Lex V2机器人语音/聊天集成解决方案
修复方案1:优化Get User Input组件的配置
解决「必须依赖起始短语」的问题
- 聊天场景下无需设置特定起始短语。在Get User Input配置页,将「输入类型」设为「聊天或语音」,直接关联你的Lex V2机器人,不要填写「提示短语」。用户发送的第一条消息会直接触发Lex意图识别;语音场景可保留提示语,不影响交互。
解决「切换意图时退出交互」的问题
- 启用Lex会话属性保存:在Get User Input的「高级选项」中,勾选「保存Lex会话属性」,Lex的对话上下文(包括意图切换状态)会自动存入Connect会话属性,避免状态丢失。
- 搭建循环交互逻辑:在Get User Input之后添加分支判断,检查Lex返回的
dialogAction.type。如果是Delegate、ElicitIntent或ElicitSlot这类需要继续交互的类型,直接跳转回Get User Input组件——此时Connect会复用已保存的Lex会话属性,无需重新初始化机器人,就能继续对话。 - 禁止在循环中使用
Initialize bot with message选项,该操作会强制重置Lex会话状态,直接导致对话中断报错。
修复方案2:修正Lambda调用的输入传递逻辑
解决「无法获取用户聊天输入」的问题
- 先通过Wait组件捕获用户输入:添加Wait for Customer Input组件,设置「输入类型」为「聊天」,在「保存输入到」字段指定一个会话属性(比如
userChatInput),用户的聊天内容会自动存入该属性。 - 调用Lambda时传递必要参数:在Lambda的输入配置中,包含会话属性
$.Attributes.userChatInput,以及之前保存的Lex会话ID(首次调用可在Lambda中生成,之后存入会话属性复用)。 - Lambda内部调用Lex API:使用Lex V2的
RecognizeText(聊天)或RecognizeUtterance(语音)API,传入用户输入和会话ID,维持对话上下文。处理完Lex响应后,将更新后的会话ID和Lex返回结果存入Connect会话属性,供后续流程使用。
最优方案:使用Connect原生Lex V2 Bot组件
目前Amazon Connect提供了专为Lex V2设计的Lex V2 Bot组件,完全适配持续对话和意图切换需求,无需手动搭建循环:
- 在Contact Flow中添加Lex V2 Bot组件,选择你的目标Lex机器人,可选设置「初始意图」(留空则由Lex自动识别用户输入)。
- 该组件会自动处理Lex的
Delegate、ElicitIntent等指令,聊天/语音场景均支持无缝连续对话,无需额外配置循环。 - 在「高级选项」中可开启会话属性保存,方便后续流程调用Lex的对话数据。
- 聊天场景下用户无需输入起始短语,第一条消息直接触发Lex;语音场景可设置初始提示语引导用户。
关键配置检查
- 确保Lex V2机器人的IAM角色附加
AmazonLexRunBotsForConnect权限策略,允许Connect调用机器人。 - 在Connect控制台的「集成」>「Lex」页面,确认已将你的Lex V2机器人关联到当前Connect实例。
- Lex机器人的响应格式需适配场景:聊天场景避免使用SSML语音标记,防止格式错误。
内容的提问来源于stack exchange,提问作者Elise Elise
相关产品推荐
相关产品推荐

