微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Amazon Lex捕获用户的随机字符串输入

如何解决如何使用Amazon Lex捕获用户的随机字符串输入

我需要接受可以是任何字符串的用户输入,但是Lex不支持AMAZON.Literal类型。我看过其他有关使用intent_request的文章,但是我无法使其工作。

在我的环境中,我只有一种话语:{string}。 我还使用AlphaNumeric类型将“字符串”定义为插槽,而未选中“必需”。 (我什至应该使用AlphaNumeric吗?)

在我的初始化和验证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”的内容,就可以了(因为它是纯AlphaNumeric)。但是,如果我输入诸如“这是什么”之类的信息,则它总是返回“对不起,请您重复一遍?”。看起来,即使使用Lambda函数,插槽类型“ AlphaNumeric”仍然可以完成其工作。我尝试了其他几种类型,但没有用。

在这里想念什么?如何使它接受任何随机字符串?

谢谢。

解决方法

  • 现在不支持捕获随机字符串。
  • 但是您可以使用Amazon.organization捕获随机字符串
  • 否则,您需要编写自定义代码,例如是否涉及回退意图,我们需要检查以前的状态。如果以前的状态是您的广告位,请使用用户语句填充广告位值

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。