%3 140322568087424 #start# 140322577571264 #single_turn_interact# {flight_date} ['Which day do you need to book a flight ticket?', 'What date ... Must input {flight_date} 140322568087424:e->140322577571264:w 140322550394816 #single_turn_interact# {flight_departure_city} Which city does the flight depart from? Must input {flight_departure_city} 140322568087424:e->140322550394816:w 140322569218208 #single_turn_interact# {flight_landing_city} Which city are you flying to? Must input {flight_landing_city} 140322568087424:e->140322569218208:w 140322550396400 #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 140322568087424:e->140322550396400:w 140322550394192 #condition#script lambda ctx: ctx["{flight_booking_preference_tips}"].as_str()  ... 140322568087424:e->140322550394192:w 140322550385552 #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 140322568087424:e->140322550385552:w 140322550494032 #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 140322568087424:e->140322550494032:w 140322550481984 #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 140322568087424:e->140322550481984:w 140322585177040 #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 140322568087424:e->140322585177040:w 140322550665088 #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 140322568087424:e->140322550665088:w 140322550484576 #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 140322568087424:e->140322550484576:w 140322550667200 #single_turn_interact# {flight_cabin_class} What class of cabin should I choose? 140322568087424:e->140322550667200:w 140322550672384 #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. 140322568087424:e->140322550672384:w 140322550664992 #single_turn_interact# {passenger_information} Please tell me the information of the passenger, including na ... You can enter one or more passenger information 140322568087424:e->140322550664992:w 140322550395008 #single_turn_interact# {are_all_flight_booking_information_correct} Please confirm whether these ticket booking information are c ... 140322568087424:e->140322550395008:w 140322580949488 #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. 140322577571264:e->140322580949488:w 140322569218160 #inform_user# {flight_date_error_message} 140322580949488:e->140322569218160:w 140322550392272 #activity#ask_again {flight_date} 140322569218160:e->140322550392272:w 140322550315728 #condition#script check_if_flight_departure_city_invalid() Check if {flight_departure_city} is in the list of supported cities 140322550394816:e->140322550315728:w 140322550398656 #inform_user# {flight_city_error_message} 140322550315728:e->140322550398656:w 140322550483040 #activity#ask_again {flight_departure_city} 140322550398656:e->140322550483040:w 140322550487456 #condition#script check_if_flight_landing_city_invalid() Check if {flight_landing_city} is in the list of supported cities 140322569218208:e->140322550487456:w 140322569218400 #inform_user# {flight_city_error_message} 140322550487456:e->140322569218400:w 140322550398896 #activity#ask_again {flight_landing_city} 140322569218400:e->140322550398896:w 140322582277984 #inform_user# {flight_booking_preference_tips} 140322550394192:e->140322582277984:w 140322577571168 #condition#script check_if_flight_departure_airport_invalid() Check whether {flight_departure_airport} is in the corresponding airport list of {flight_departure_city} 140322550385552:e->140322577571168:w 140322550489904 #inform_user# {flight_airport_error_message} 140322577571168:e->140322550489904:w 140322550488608 #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. 140322550489904:e->140322550488608:w 140322550482704 #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 140322550489904:e->140322550482704:w 140322550485968 #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} 140322550488608:e->140322550485968:w 140322550492496 #activity#ask_again {flight_departure_airport} 140322550482704:e->140322550492496:w 140322550496048 #condition#script check_if_flight_landing_airport_invalid() Check whether {flight_landing_airport} is in the corresponding airport list of {flight_landing_city} 140322550494032:e->140322550496048:w 140322550661344 #inform_user# {flight_airport_error_message} 140322550496048:e->140322550661344:w 140322568662400 #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. 140322550661344:e->140322568662400:w 140322550494608 #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. 140322550661344:e->140322550494608:w 140322550496672 #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} 140322568662400:e->140322550496672:w 140322550493840 #activity#ask_again {flight_landing_airport} 140322550494608:e->140322550493840:w 140322585169120 #condition#script check_if_flight_airlines_invalid() Check if {airline} is in the list of supported airlines 140322550481984:e->140322585169120:w 140322567236992 #inform_user# {airline_error_message} 140322585169120:e->140322567236992:w 140322550313904 #activity#ask_again {airline} 140322567236992:e->140322550313904:w 140322550391216 #user_intent# no limit to direct or connecting 140322585177040:e->140322550391216:w 140322550396448 #user_intent# direct 140322585177040:e->140322550396448:w 140322581113472 #user_intent# connecting 140322585177040:e->140322581113472:w 140322550666672 #user_intent# no limit to departure time period 140322550665088:e->140322550666672:w 140322582604032 #user_intent# wee hours 140322550665088:e->140322582604032:w 140322550669888 #user_intent# early morning 140322550665088:e->140322550669888:w 140322550398128 #user_intent# mid-morning 140322550665088:e->140322550398128:w 140322550397168 #user_intent# noon 140322550665088:e->140322550397168:w 140322550393904 #user_intent# afternoon 140322550665088:e->140322550393904:w 140322580949920 #user_intent# evening 140322550665088:e->140322580949920:w 140322586454944 #user_intent# night 140322550665088:e->140322586454944:w 140322550492304 #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 140322550484576:e->140322550492304:w 140322550497104 #inform_user# The flight number '{flight_number}' you selected is not in th ... 140322550492304:e->140322550497104:w 140322550670224 #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} 140322550497104:e->140322550670224:w 140322550669456 #activity#ask_again {flight_number} 140322550670224:e->140322550669456:w 140322550662256 #user_intent# economy class 140322550667200:e->140322550662256:w 140322550672576 #user_intent# super economy class 140322550667200:e->140322550672576:w 140322550674256 #user_intent# business class 140322550667200:e->140322550674256:w 140322550675936 #user_intent# first class 140322550667200:e->140322550675936:w 140322550676848 #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} 140322550662256:e->140322550676848:w 140322550672576:e->140322550676848:w 140322550674256:e->140322550676848:w 140322550675936:e->140322550676848:w 140322550674400 #inform_user# {flight_class_error_message} 140322550676848:e->140322550674400:w 140322550674016 #activity#ask_again {flight_cabin_class} 140322550674400:e->140322550674016:w 140322550670848 #condition#script check_if_passenger_info_invalid() Check whether there are any errors in the passenger information and handle it accordingly 140322550664992:e->140322550670848:w 140322550316928 #inform_user# {passenger_information_error_message} 140322550670848:e->140322550316928:w 140322550391744 #activity#ask_again {passenger_information} 140322550316928:e->140322550391744:w 140322550494848 #user_intent# The flight booking information is not all correct 140322550395008:e->140322550494848:w 140322585169072 #user_intent# The flight booking information is correct 140322550395008:e->140322585169072:w 140322550488560 #activity#ask_again {are_all_flight_booking_information_correct} 140322550494848:e->140322550488560:w 140322548860160 #activity#execute_script submit_order_and_get_payment_link() 140322585169072:e->140322548860160:w 140322548860496 #inform_user# Your order has been submitted successfully. Please click the  ... 140322548860160:e->140322548860496:w 140322548864192 #trigger# 140322550397216 #user_intent# Indicates that there is no need to book a flight ticket 140322548864192:e->140322550397216:w 140322550391648 #single_turn_interact# {whether_sure_to_end_the_dialogue} Are you sure you don't need to book a flight? Do you want to  ... 140322550397216:e->140322550391648:w 140322550389200 #user_intent# Confirm to end dialogue 140322550391648:e->140322550389200:w 140322550488416 #user_intent# Not confirm to end dialogue 140322550391648:e->140322550488416:w 140322550495184 #activity#terminate 140322550389200:e->140322550495184:w