1 回答
TA贡献1877条经验 获得超6个赞
根据我的理解,您正在询问用户Do you have any children并将响应存储在childExists插槽中,如果答案是肯定的,那么您想询问孩子的数量。
所以根据我的说法,你需要有一个额外的插槽childCount来存储孩子的数量。由于此插槽并非总是必需的,因此请勿在 amazon lex 控制台中将其标记为必需。
现在,您将在您的 中检查这一点DialogCodeHook,并仅childExists == 'yes'在childCount. 我们使用这些条件的组合是为了确保它不会无限期地运行。
def book_hotel(intent_request):
slots = intent_request['currentIntent']['slots']
welcome = slots['welcome']
location = slots['Location']
fromDate = slots['FromDate']
adultCount = slots['adultCount']
nights = slots['nights']
childExists = slots['childExists']
childCount = slots['childCount']
source = intent_request['invocationSource']
if source == 'DialogCodeHook':
output_session_attributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {}
if childExists.lower() == 'yes':
if not childCount:
return elicit_slot (
output_session_attributes,
'HotelReservation',
slots,
'childCount',
{
'contentType':'PlainText',
'content':'Please enter number of Children'
}
)
return delegate(output_session_attributes, intent_request['currentIntent']['slots'])
if source == 'FulfillmentCodeHook':
return close (
output_session_attributes,
'Fulfilled',{
'contentType':'PlainText',
'content':'Here is the temparature in'
}
)
希望能帮助到你。
添加回答
举报