Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Lex Bot控制台上出错-在同一个语句上第二次执行lambda_Python_Aws Lambda_Amazon Lex - Fatal编程技术网

Python Lex Bot控制台上出错-在同一个语句上第二次执行lambda

Python Lex Bot控制台上出错-在同一个语句上第二次执行lambda,python,aws-lambda,amazon-lex,Python,Aws Lambda,Amazon Lex,我在Lex中创建了一个bot,然后在同一个bot中创建了两个intent-intent1和intent2并发出立即给我叫辆出租车和我想叫辆出租车在{TaxiTime}{TravelDate}上的{Location}(第一个在intent1中,第二个在intent2中)。这两个意图都调用不同的lambda函数,在lambda函数中,我访问RDS以添加出租车的预订信息。当我从Lex控制台测试两个语句中的任何一个时,lambda函数完全执行,因为我可以看到数据库记录已更新,但在Lex bot测试控制台

我在Lex中创建了一个bot,然后在同一个bot中创建了两个intent-
intent1
intent2
并发出
立即给我叫辆出租车
我想叫辆出租车在{TaxiTime}{TravelDate}上的{Location}
(第一个在
intent1
中,第二个在
intent2
中)。这两个意图都调用不同的lambda函数,在lambda函数中,我访问RDS以添加出租车的预订信息。当我从Lex控制台测试两个语句中的任何一个时,lambda函数完全执行,因为我可以看到数据库记录已更新,但在Lex bot测试控制台上,我看到
在同一个语句Lex error上第二次执行lambda。在我的代码中,我有一行:

def delegate(session_attributes, slots):
    return {
        'sessionAttributes': session_attributes,
        'dialogAction': {
            'type': 'Delegate',
            'slots': slots
        }
    }

def book_taxi(intent_request):

        confirmation_status = intent_request['currentIntent']['confirmationStatus']
#bunch of other processing code
        logger.debug('Confirmation = {}'.format(confirmation_status))
        if confirmation_status == 'Confirmed':

            try_ex(lambda: session_attributes.pop('confirmationContext'))
           logger.debug('confirmation_context = {}'.format(confirmation_context))
            if confirmation_context == 'AutoPopulate':
                    return elicit_slot(
                        session_attributes,
                        intent_request['currentIntent']['name'],
                        intent_request['currentIntent']['slots']

                    )
            return delegate(session_attributes, intent_request['currentIntent']['slots'])
logger.debug('Booked Taxi at={}'.format(reservation))
我的猜测是上面代码中的
delegate()
调用导致了问题,因为在我的日志文件中,我可以看到前两个调试日志已确认,没有值,但最后一个日志记录程序没有值。debug()不在日志文件中,这意味着delegate()已被调用,这导致Lex console上出现错误


此错误可能存在什么问题?

您的话语可能包含引发多个意图的文本。 这就是问题产生的原因。 你在两个意图中都改变了发音,并从两个类似类型的话语中去掉了一个。

检查,可能会有所帮助