我想为某个插槽创建一个 dialogHook,而不是说验证类型的事情。如果插槽返回 true,那么只有我会触发我的诱导插槽,否则它会照常进行。请帮助我的方法是什么。我是对 lex 来说相对较新。
我试图在 childExists 上创建一个对话钩子,但它不起作用。
def lambda_handler(event,context):
os.environ['TZ']='America/New_York'
time.tzset();
logger.debug('event.bot.name={}'.format(event['bot']['name']))
return dispatch(event);
def dispatch(intent_request):
intent_name=intent_request['currentIntent']['name']
if intent_name=='HotelReservation':
return book_hotel(intent_request)
def book_hotel(intent_request):
slots=intent_request['currentIntent']['slots']
welcome=intent_request['currentIntent']['slots']['welcome']
location=intent_request['currentIntent']['slots']['Location']
fromDate=intent_request['currentIntent']['slots']['FromDate']
adultCount=intent_request['currentIntent']['slots']['adultCount']
nights=intent_request['currentIntent']['slots']['nights']
childExists=intent_request['currentIntent']['slots']['childExists']
source=intent_request['invocationSource']
session_attributes={}
if source=='DialogCodeHook'and childExists.lower()=='yes':
session_attributes={}
return elicit_slot (
session_attributes,
'HotelReservation',
'childCount',
'AMAZON.NUMBER',
{
'contentType':'PlainText',
'content':'Please enter number of Children'
}
)
elif source=='DialogCodeHook':
output_session_attributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {}
return delegate(output_session_attributes, intent_request['currentIntent']['slots'])
else:
return close (
session_attributes,
'Fulfilled',{
'contentType':'PlainText',
'content':'Here is the temparature in'
}
)
实际上我的插槽应该像往常一样运行,但是在 childExists 插槽之后我想发送一个 elicit 响应 这是可用插槽的图像
慕哥9229398
相关分类