%3 140027175089840 #开始# 140027175657952 #单次交互# {航班日期} ['请问您需要预订哪一天的机票?', '请问您需要预订什么日期的机票 ... 必须输入{航班日期} 140027175089840:e->140027175657952:w 140027175772016 #单次交互# {航班起飞城市} 航班从哪个城市出发? 必须输入{航班起飞城市} 140027175089840:e->140027175772016:w 140027179500608 #单次交互# {航班降落城市} 飞到哪个城市? 必须输入{航班降落城市} 140027175089840:e->140027179500608:w 140027148370576 #动作#执行脚本 set_default_and_prefered_value() 设置默认值‘不限’或用户偏好值(并设置偏好提示内容):   {航班起飞机场}、{航班降落机场}、{航空公司}、{航班直飞还是转机}、{航班起飞时段}      设置默认值:{乘机人数}=1 140027175089840:e->140027148370576:w 140027148553632 #条件#脚本 lambda ctx: ctx["{机票预订偏好提示}"].as_str() != "", 140027175089840:e->140027148553632:w 140027148559152 #单次交互# {航班起飞机场} 请问您从哪个机场出发? 之前预设了缺省值或偏好值   AI不会主动提问,但用户可以主动提及 140027175089840:e->140027148559152:w 140027179342912 #单次交互# {航班降落机场} 请问您到哪个机场降落? 之前预设了缺省值或偏好值   AI不会主动提问,但用户可以主动提及 140027175089840:e->140027179342912:w 140027148555984 #单次交互# {航空公司} 选择哪个航空公司的航班? 之前预设了缺省值或偏好值   AI不会主动提问,但用户可以主动提及 140027175089840:e->140027148555984:w 140027146917488 #单次交互# {航班直飞还是转机} 那航班是直飞还是转机? 之前预设了缺省值或偏好值   AI不会主动提问,但用户可以主动提及 140027175089840:e->140027146917488:w 140027175772208 #单次交互# {航班起飞时段} 请问您希望航班的起飞时间大致在一天中的什么时段? 之前预设了缺省值或偏好值   AI不会主动提问,但用户可以主动提及 140027175089840:e->140027175772208:w 140027146916864 #单次交互# {航班号} {询问航班号问题} 依据下列信息项,列出符合条件的航班号及价格等相关信息供用户选择:   {航班日期}、{航班起飞城市}、{航班降落城市}、{航班起飞机场}、{航班降落机场}   {航空公司}、{航班直飞还是转机}、{航班起飞时段}、{航班舱位等级}   其中{航班舱位等级}无值时(即用户到此时还未提及过)表示‘不限’,它可能会过滤掉部分航班号,也会影响价格等相关信息的展示;   其它信息项可能为‘不限’   然后根据情况选择返回若干行文本还是返回结构化数据让客户端生成 UI Widget 140027175089840:e->140027146916864:w 140027146929024 #单次交互# {航班舱位等级} 选择什么等级的舱位? 140027175089840:e->140027146929024:w 140027148563088 #单次交互# {乘机人数} 请问这次预订的机票需要几张? 之前预设了缺省值1   AI不会主动提问,但用户可以主动提及 140027175089840:e->140027148563088:w 140027175765152 #单次交互# {乘机人信息} 请告诉我乘机人的信息,包括姓名、证件类型、证件号码、证件有效期 ... 可以输入一个或多个乘机人信息 140027175089840:e->140027175765152:w 140027146932240 #单次交互# {是否所有机票预订信息都正确} 请确认这些机票预订信息是否都正确? 140027175089840:e->140027146932240:w 140027148371824 #条件#脚本 check_if_flight_date_invalid() 检查航班日期的格式和有效性,必须是YYYY-MM-DD格式   且不能是已经过去的日期,也不能是 30 天以后的日期 140027175657952:e->140027148371824:w 140027148375472 #提示用户# {航班日期错误提示} 140027148371824:e->140027148375472:w 140027148378112 #动作#重新提问 {航班日期} 140027148375472:e->140027148378112:w 140027148401696 #条件#脚本 check_if_flight_departure_city_invalid() 检查{航班起飞城市}是否在支持的城市列表中 140027175772016:e->140027148401696:w 140027148385456 #提示用户# {航班城市错误提示} 140027148401696:e->140027148385456:w 140027177467248 #动作#重新提问 {航班起飞城市} 140027148385456:e->140027177467248:w 140027165973472 #条件#脚本 check_if_flight_landing_city_invalid() 检查{航班降落城市}是否在支持的城市列表中 140027179500608:e->140027165973472:w 140027148377488 #提示用户# {航班城市错误提示} 140027165973472:e->140027148377488:w 140027148374176 #动作#重新提问 {航班降落城市} 140027148377488:e->140027148374176:w 140027148556560 #提示用户# {机票预订偏好提示} 140027148553632:e->140027148556560:w 140027148560736 #条件#脚本 check_if_flight_departure_airport_invalid() 检查{航班起飞机场}是否在对应的{航班起飞城市}的机场列表中 140027148559152:e->140027148560736:w 140027148562560 #提示用户# {航班机场错误提示} 140027148560736:e->140027148562560:w 140027148564192 #条件#脚本 lambda ctx: len(_city_airport_dict[ctx["{航班起飞城市}"].as_s ... 检查对应的{航班起飞城市}的机场列表中是否只有一个机场,如果只有一个机场了,那就直接把它设置为{航班起飞机场}的值,不需要再让用户选择了 140027148562560:e->140027148564192:w 140027146912880 #条件#脚本 lambda ctx: len(_city_airport_dict[ctx["{航班起飞城市}"].as_s ... 检查对应的{航班起飞城市}的机场列表中是否不只一个机场,如果不只一个机场了,那就需要让用户选择了 140027148562560:e->140027146912880:w 140027148565680 #动作#执行脚本 set_only_one_airport_for_departure_city() 把对应的{航班起飞城市}的唯一一个机场设置为{航班起飞机场}的值 140027148564192:e->140027148565680:w 140027148566256 #动作#重新提问 {航班起飞机场} 140027146912880:e->140027148566256:w 140027176050880 #条件#脚本 check_if_flight_landing_airport_invalid() 检查{航班降落机场}是否在对应的{航班降落城市}的机场列表中 140027179342912:e->140027176050880:w 140027148372400 #提示用户# {航班机场错误提示} 140027176050880:e->140027148372400:w 140027148377008 #条件#脚本 lambda ctx: len(_city_airport_dict[ctx["{航班降落城市}"].as_s ... 检查对应的{航班降落城市}的机场列表中是否只有一个机场,如果只有一个机场了,那就直接把它设置为{航班降落机场}的值,不需要再让用户选择了 140027148372400:e->140027148377008:w 140027148561984 #条件#脚本 lambda ctx: len(_city_airport_dict[ctx["{航班降落城市}"].as_s ... 检查对应的{航班降落城市}的机场列表中是否不只一个机场,如果不只一个机场了,那就需要让用户选择了 140027148372400:e->140027148561984:w 140027148381424 #动作#执行脚本 set_only_one_airport_for_landing_city() 把对应的{航班降落城市}的唯一一个机场设置为{航班降落机场}的值 140027148377008:e->140027148381424:w 140027148559968 #动作#重新提问 {航班降落机场} 140027148561984:e->140027148559968:w 140027165827552 #条件#脚本 check_if_flight_airlines_invalid() 检查{航空公司}是否在支持的航空公司列表中 140027148555984:e->140027165827552:w 140027146913696 #提示用户# {航空公司错误提示} 140027165827552:e->140027146913696:w 140027146915472 #动作#重新提问 {航空公司} 140027146913696:e->140027146915472:w 140027146919168 #用户意图# 不限直飞还是转机 140027146917488:e->140027146919168:w 140027184019936 #用户意图# 直飞 140027146917488:e->140027184019936:w 140027149516672 #用户意图# 转机 140027146917488:e->140027149516672:w 140027148375136 #用户意图# 不限起飞时段 140027175772208:e->140027148375136:w 140027176058608 #用户意图# 凌晨 140027175772208:e->140027176058608:w 140027148555360 #用户意图# 早晨 140027175772208:e->140027148555360:w 140027148560832 #用户意图# 上午 140027175772208:e->140027148560832:w 140027148565488 #用户意图# 中午 140027175772208:e->140027148565488:w 140027148566352 #用户意图# 下午 140027175772208:e->140027148566352:w 140027146921952 #用户意图# 傍晚 140027175772208:e->140027146921952:w 140027146918832 #用户意图# 夜间 140027175772208:e->140027146918832:w 140027146912256 #条件#脚本 lambda ctx: ctx["{航班号}"].as_str().strip() not in ctx["{航班 ... 检查用户选择的{航班号}是否在符合条件的航班号列表中 140027146916864:e->140027146912256:w 140027146923776 #提示用户# 您选择的航班号 ‘{航班号}’ 没有在列表中,请从列表中选择一个航 ... 140027146912256:e->140027146923776:w 140027146925552 #动作#执行脚本 reset_flight_carbin_class() 用户选择的航班号不在列表中,提示用户选择列表中的航班号后,清除{航班舱位等级} 140027146923776:e->140027146925552:w 140027166696768 #动作#重新提问 {航班号} 140027146925552:e->140027166696768:w 140027146928096 #用户意图# 经济舱 140027146929024:e->140027146928096:w 140027146926128 #用户意图# 超级经济舱 140027146929024:e->140027146926128:w 140027146925216 #用户意图# 商务舱 140027146929024:e->140027146925216:w 140027146914992 #用户意图# 头等舱 140027146929024:e->140027146914992:w 140027146918064 #条件#脚本 check_if_flight_cabin_class_invalid() 检查用户输入的{航班舱位等级}是否在当前{航班号}对应航班的舱位列表中 140027146928096:e->140027146918064:w 140027146926128:e->140027146918064:w 140027146925216:e->140027146918064:w 140027146914992:e->140027146918064:w 140027146922336 #提示用户# {航班舱位等级错误提示} 140027146918064:e->140027146922336:w 140027148565104 #动作#重新提问 {航班舱位等级} 140027146922336:e->140027148565104:w 140027148373312 #条件#脚本 check_if_passenger_info_invalid() 检查乘机人信息是否有错误,并做相应处理 140027175765152:e->140027148373312:w 140027165976448 #提示用户# {乘机人信息错误提示} 140027148373312:e->140027165976448:w 140027146930608 #动作#重新提问 {乘机人信息} 140027165976448:e->140027146930608:w 140027146934208 #用户意图# 机票预订信息不都正确 140027146932240:e->140027146934208:w 140027146935888 #用户意图# 机票预订信息都正确 140027146932240:e->140027146935888:w 140027148383728 #动作#重新提问 {是否所有机票预订信息都正确} 140027146934208:e->140027148383728:w 140027166957424 #动作#执行脚本 submit_order_and_get_payment_link() 140027146935888:e->140027166957424:w 140027148371584 #提示用户# 您的订单已经提交成功,请于 3 小时内点击以下链接进行支付:{支付 ... 140027166957424:e->140027148371584:w 140027148564864 #触发# 140027148563328 #用户意图# 表示不需要预订所有机票了 140027148564864:e->140027148563328:w 140027146918400 #单次交互# {是否确认结束对话} 请问您确定不需要预订机票了,要结束对话吗? 140027148563328:e->140027146918400:w 140027146923584 #用户意图# 确认结束对话 140027146918400:e->140027146923584:w 140027146924688 #用户意图# 未确认结束对话 140027146918400:e->140027146924688:w 140027146927568 #动作#结束 140027146923584:e->140027146927568:w