%3 139925129390720 #start# 139925128716480 #single_turn_interact# {flight_date} ['Which day do you need to book a flight ticket?', 'What date ... Must input {flight_date} 139925129390720:e->139925128716480:w 139925112352464 #single_turn_interact# {flight_departure_city} Which city does the flight depart from? Must input {flight_departure_city} 139925129390720:e->139925112352464:w 139925112441888 #single_turn_interact# {flight_landing_city} Which city are you flying to? Must input {flight_landing_city} 139925129390720:e->139925112441888:w 139925112354288 #activity#execute_script set_default_and_prefered_value() Set the default value 'no limit to ...' or user preference value (and set the preference prompt content):   {flight_departure_airport}, {flight_landing_airport}, {airline}, {flight_is_direct_or_connecting}, {flight_departure_time_period}      Set the default value: {number_of_passengers}=1 139925129390720:e->139925112354288:w 139925112351648 #condition#script lambda ctx: ctx["{flight_booking_preference_tips}"].as_str()  ... 139925129390720:e->139925112351648:w 139925112341136 #single_turn_interact# {flight_departure_airport} Which airport are you departing from? The default value or preference value has been preset before   AI will not take the initiative to ask questions, but the user can take the initiative to mention it 139925129390720:e->139925112341136:w 139925112451968 #single_turn_interact# {flight_landing_airport} Which airport will you land at? The default value or preference value has been preset before   AI will not take the initiative to ask questions, but the user can take the initiative to mention it 139925129390720:e->139925112451968:w 139925112450000 #single_turn_interact# {airline} Which airline to choose for your flight? The default value or preference value has been preset before   AI will not take the initiative to ask questions, but the user can take the initiative to mention it 139925129390720:e->139925112450000:w 139925130631584 #single_turn_interact# {flight_is_direct_or_connecting} Is the flight a direct flight or a connecting flight? The default value or preference value has been preset before   AI will not take the initiative to ask questions, but the user can take the initiative to mention it 139925129390720:e->139925130631584:w 139925110542352 #single_turn_interact# {flight_departure_time_period} At what time of day would you like your flight to take off? The default value or preference value has been preset before   AI will not take the initiative to ask questions, but the user can take the initiative to mention it 139925129390720:e->139925110542352:w 139925112439920 #single_turn_interact# {flight_number} {question_about_flight_number} Based on the following InfoItems, eligible flight numbers, prices and other related information are listed for users to choose from:   {flight_date}、{flight_departure_city}、{flight_landing_city}、{flight_departure_airport}、{flight_landing_airport}   {airline}、{flight_is_direct_or_connecting}、{flight_departure_time_period}、{flight_cabin_class}   When {flight_cabin_class} has no value (that is, the user has not mentioned it yet), it means 'no limit'. It may filter out some flight numbers and also affect the display of prices and other related information;   Other InfoItems may be 'no limit to ...'   Then depending on the situation, you can choose to return several lines of text or return structured data for the client to generate UI Widget 139925129390720:e->139925112439920:w 139925110544224 #single_turn_interact# {flight_cabin_class} What class of cabin should I choose? 139925129390720:e->139925110544224:w 139925110549504 #single_turn_interact# {number_of_passengers} How many tickets are required for this reservation? The default value 1 was previously preset   AI will not proactively ask questions, but users can proactively mention them. 139925129390720:e->139925110549504:w 139925110542256 #single_turn_interact# {passenger_information} Please tell me the information of the passenger, including na ... You can enter one or more passenger information 139925129390720:e->139925110542256:w 139925112444624 #single_turn_interact# {are_all_flight_booking_information_correct} Please confirm whether these ticket booking information are c ... 139925129390720:e->139925112444624:w 139925130943840 #condition#script check_if_flight_date_invalid() Check the format and validity of the flight date. It must be in YYYY-MM-DD format   and cannot be a date in the past or a date 30 days later. 139925128716480:e->139925130943840:w 139925112347136 #inform_user# {flight_date_error_message} 139925130943840:e->139925112347136:w 139925112349776 #activity#ask_again {flight_date} 139925112347136:e->139925112349776:w 139925112271408 #condition#script check_if_flight_departure_city_invalid() Check if {flight_departure_city} is in the list of supported cities 139925112352464:e->139925112271408:w 139925112273760 #inform_user# {flight_city_error_message} 139925112271408:e->139925112273760:w 139925112439344 #activity#ask_again {flight_departure_city} 139925112273760:e->139925112439344:w 139925147705392 #condition#script check_if_flight_landing_city_invalid() Check if {flight_landing_city} is in the list of supported cities 139925112441888:e->139925147705392:w 139925112447120 #inform_user# {flight_city_error_message} 139925147705392:e->139925112447120:w 139925142704624 #activity#ask_again {flight_landing_city} 139925112447120:e->139925142704624:w 139925112348384 #inform_user# {flight_booking_preference_tips} 139925112351648:e->139925112348384:w 139925130200320 #condition#script check_if_flight_departure_airport_invalid() Check whether {flight_departure_airport} is in the corresponding airport list of {flight_departure_city} 139925112341136:e->139925130200320:w 139925112270544 #inform_user# {flight_airport_error_message} 139925130200320:e->139925112270544:w 139925112447888 #condition#script lambda ctx: len(_city_airport_dict[ctx["{flight_departure_cit ... Check whether there is only one airport in the corresponding airport list of {flight_departure_city}. If there is only one airport, then set it directly to the value of {flight_departure_airport} without letting the user choose. 139925112270544:e->139925112447888:w 139925112439536 #condition#script lambda ctx: len(_city_airport_dict[ctx["{flight_departure_cit ... Check whether there is more than one airport in the corresponding {flight_departure_city} airport list. If there is more than one airport, then the user needs to choose 139925112270544:e->139925112439536:w 139925112444288 #activity#execute_script set_only_one_airport_for_departure_city() Set the only airport corresponding to {flight_departure_city} to the value of {flight_departure_airport} 139925112447888:e->139925112444288:w 139925112450432 #activity#ask_again {flight_departure_airport} 139925112439536:e->139925112450432:w 139925112453936 #condition#script check_if_flight_landing_airport_invalid() Check whether {flight_landing_airport} is in the corresponding airport list of {flight_landing_city} 139925112451968:e->139925112453936:w 139925110538512 #inform_user# {flight_airport_error_message} 139925112453936:e->139925110538512:w 139925110540144 #condition#script lambda ctx: len(_city_airport_dict[ctx["{flight_landing_city} ... Check whether there is only one airport in the corresponding airport list of {flight_landing_city}. If there is only one airport, then set it directly to the value of {flight_landing_airport} without letting the user select it. 139925110538512:e->139925110540144:w 139925112452304 #condition#script lambda ctx: len(_city_airport_dict[ctx["{flight_landing_city} ... Check whether there is more than one airport in the corresponding airport list of {flight_landing_city}. If there is more than one airport, then the user needs to be allowed to choose. 139925110538512:e->139925112452304:w 139925143347872 #activity#execute_script set_only_one_airport_for_landing_city() Set the only airport corresponding to {flight_landing_city} to the value of {flight_landing_airport} 139925110540144:e->139925143347872:w 139925112451152 #activity#ask_again {flight_landing_airport} 139925112452304:e->139925112451152:w 139925113438176 #condition#script check_if_flight_airlines_invalid() Check if {airline} is in the list of supported airlines 139925112450000:e->139925113438176:w 139925112447168 #inform_user# {airline_error_message} 139925113438176:e->139925112447168:w 139925112270304 #activity#ask_again {airline} 139925112447168:e->139925112270304:w 139925140544240 #user_intent# no limit to direct or connecting 139925130631584:e->139925140544240:w 139925112354384 #user_intent# direct 139925130631584:e->139925112354384:w 139925112356112 #user_intent# connecting 139925130631584:e->139925112356112:w 139925146921408 #user_intent# no limit to departure time period 139925110542352:e->139925146921408:w 139925146048016 #user_intent# wee hours 139925110542352:e->139925146048016:w 139925110547104 #user_intent# early morning 139925110542352:e->139925110547104:w 139925112352992 #user_intent# mid-morning 139925110542352:e->139925112352992:w 139925112355392 #user_intent# noon 139925110542352:e->139925112355392:w 139925112351408 #user_intent# afternoon 139925110542352:e->139925112351408:w 139925112274048 #user_intent# evening 139925110542352:e->139925112274048:w 139925112269296 #user_intent# night 139925110542352:e->139925112269296:w 139925112441840 #condition#script lambda ctx: ctx["{flight_number}"].as_str().strip() not in ct ... Check whether the {flight_number} selected by the user is in the list of eligible flight numbers 139925112439920:e->139925112441840:w 139925145839968 #inform_user# The flight number '{flight_number}' you selected is not in th ... 139925112441840:e->139925145839968:w 139925110547248 #activity#execute_script reset_flight_cabin_class() The flight number selected by the user is not in the list. After prompting the user to select a flight number in the list, clear {flight_cabin_class} 139925145839968:e->139925110547248:w 139925110545712 #activity#ask_again {flight_number} 139925110547248:e->139925110545712:w 139925149444832 #user_intent# economy class 139925110544224:e->139925149444832:w 139925110549744 #user_intent# super economy class 139925110544224:e->139925110549744:w 139925110551424 #user_intent# business class 139925110544224:e->139925110551424:w 139925110553008 #user_intent# first class 139925110544224:e->139925110553008:w 139925145491536 #condition#script check_if_flight_cabin_class_invalid() Check whether the {flight_cabin_class} entered by the user is in the class list of the flight corresponding to the current {flight_number} 139925149444832:e->139925145491536:w 139925110549744:e->139925145491536:w 139925110551424:e->139925145491536:w 139925110553008:e->139925145491536:w 139925129083168 #inform_user# {flight_class_error_message} 139925145491536:e->139925129083168:w 139925141150400 #activity#ask_again {flight_cabin_class} 139925129083168:e->139925141150400:w 139925110546336 #condition#script check_if_passenger_info_invalid() Check whether there are any errors in the passenger information and handle it accordingly 139925110542256:e->139925110546336:w 139925130938752 #inform_user# {passenger_information_error_message} 139925110546336:e->139925130938752:w 139925112452352 #activity#ask_again {passenger_information} 139925130938752:e->139925112452352:w 139925112342960 #user_intent# The flight booking information is not all correct 139925112444624:e->139925112342960:w 139925112347424 #user_intent# The flight booking information is correct 139925112444624:e->139925112347424:w 139925128716096 #activity#ask_again {are_all_flight_booking_information_correct} 139925112342960:e->139925128716096:w 139925110817664 #activity#execute_script submit_order_and_get_payment_link() 139925112347424:e->139925110817664:w 139925110818048 #inform_user# Your order has been submitted successfully. Please click the  ... 139925110817664:e->139925110818048:w 139925139298624 #trigger# 139925128716336 #user_intent# Indicates that there is no need to book a flight ticket 139925139298624:e->139925128716336:w 139925130938656 #single_turn_interact# {whether_sure_to_end_the_dialogue} Are you sure you don't need to book a flight? Do you want to  ... 139925128716336:e->139925130938656:w 139925112353808 #user_intent# Confirm to end dialogue 139925130938656:e->139925112353808:w 139925112444576 #user_intent# Not confirm to end dialogue 139925130938656:e->139925112444576:w 139925130836112 #activity#terminate 139925112353808:e->139925130836112:w