Aws lambda 如何使用Amazon Lex捕获用户';随机字符串输入
我需要接受可以是任何字符串的用户输入,但Lex不支持AMAZON.Literal类型。我看过其他文章讨论如何使用intent_请求,但我无法让它工作 在我的设置中,我只有一个语句:{string}。 我还使用字母数字类型将“string”定义为一个插槽,未选中“Required”。(我应该使用字母数字吗?) 在初始化和验证Lambda函数中,我有:Aws lambda 如何使用Amazon Lex捕获用户';随机字符串输入,aws-lambda,amazon-lex,Aws Lambda,Amazon Lex,我需要接受可以是任何字符串的用户输入,但Lex不支持AMAZON.Literal类型。我看过其他文章讨论如何使用intent_请求,但我无法让它工作 在我的设置中,我只有一个语句:{string}。 我还使用字母数字类型将“string”定义为一个插槽,未选中“Required”。(我应该使用字母数字吗?) 在初始化和验证Lambda函数中,我有: def delegate(session_attributes, slots): return { 'sessionAttr
def delegate(session_attributes, slots):
return {
'sessionAttributes': session_attributes,
'dialogAction': {
'type': 'Delegate',
'slots': slots
}
}
def perform_action(intent_request):
source = intent_request['invocationSource']
slots = intent_request['currentIntent']['slots']
if source == 'DialogCodeHook':
slots['string'] = intent_request['inputTranscript']
return delegate({}, slots)
def dispatch(intent_request):
return perform_action(intent_request)
def lambda_handler(event, context):
return dispatch(event)
如果我输入类似“abc”的内容,就可以了(因为它是纯字母数字)。但如果我输入“这是什么”,它总是返回“对不起,你能重复一下吗?”。看起来,即使使用Lambda函数,插槽类型“字母数字”仍然可以完成它的工作。我试过其他几种,但都不管用
我错过了什么?如何使其接受任何随机字符串
谢谢。- 目前还不支持捕获随机字符串
- 但是您可以使用Amazon.organization捕获随机字符串
- 否则,您需要编写自定义代码,就像我们需要检查以前的状态一样,如果它达到了回退目的。如果前一个状态是插槽,则用user语句填充插槽值