如何解决如何使用Amazon Lex捕获用户的随机字符串输入
我需要接受可以是任何字符串的用户输入,但是Lex不支持AMAZON.Literal类型。我看过其他有关使用intent_request的文章,但是我无法使其工作。
在我的环境中,我只有一种话语:{string}。 我还使用AlphaNumeric类型将“字符串”定义为插槽,而未选中“必需”。 (我什至应该使用AlphaNumeric吗?)
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 举报,一经查实,本站将立刻删除。