Aws lambda 如何使用Amazon Lex捕获用户';随机字符串输入

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

我需要接受可以是任何字符串的用户输入,但Lex不支持AMAZON.Literal类型。我看过其他文章讨论如何使用intent_请求,但我无法让它工作

在我的设置中,我只有一个语句:{string}。 我还使用字母数字类型将“string”定义为一个插槽,未选中“Required”。(我应该使用字母数字吗?)

在初始化和验证Lambda函数中,我有:

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语句填充插槽值

您是否有自定义代码的示例?