async def test_confirm_prompt_should_default_to_english_locale(self): async def exec_test(turn_context: TurnContext): dialog_context = await dialogs.create_context(turn_context) results: DialogTurnResult = await dialog_context.continue_dialog() if results.status == DialogTurnStatus.Empty: options = PromptOptions( prompt=Activity(type=ActivityTypes.message, text="Please confirm."), retry_prompt=Activity( type=ActivityTypes.message, text= "Please confirm, say 'yes' or 'no' or something like that.", ), ) await dialog_context.prompt("ConfirmPrompt", options) elif results.status == DialogTurnStatus.Complete: message_text = "Confirmed" if results.result else "Not confirmed" await turn_context.send_activity( MessageFactory.text(message_text)) await convo_state.save_changes(turn_context) locales = [None, "", "not-supported"] for locale in locales: # Initialize TestAdapter. adapter = TestAdapter(exec_test) # Create new ConversationState with MemoryStorage and register the state as middleware. convo_state = ConversationState(MemoryStorage()) # Create a DialogState property, DialogSet, and ChoicePrompt. dialog_state = convo_state.create_property("dialogState") dialogs = DialogSet(dialog_state) confirm_prompt = ConfirmPrompt("ConfirmPrompt") confirm_prompt.choice_options = ChoiceFactoryOptions( include_numbers=True) dialogs.add(confirm_prompt) step1 = await adapter.send( Activity(type=ActivityTypes.message, text="Hello", locale=locale)) step2 = await step1.assert_reply( "Please confirm. (1) Yes or (2) No") step3 = await step2.send("lala") step4 = await step3.assert_reply( "Please confirm, say 'yes' or 'no' or something like that. (1) Yes or (2) No" ) step5 = await step4.send("2") await step5.assert_reply("Not confirmed")
def __init__(self, dialog_id: str = None): super(ContactsSelectionDialog, self).__init__( dialog_id or ContactsSelectionDialog.__name__ ) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.confirm_confirmedcasecontact_step, self.date_confirmedcasecontact_step, self.confirm_suspectedcasecontact_step, self.date_suspectedcasecontact_step, self.contacts_dates_step] ) ) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog( NumberPrompt(NumberPrompt.__name__) ) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None, telemetry_client: BotTelemetryClient = NullTelemetryClient()): super(BookingDialog, self).__init__(dialog_id or BookingDialog.__name__, telemetry_client) self.telemetry_client = telemetry_client text_prompt = TextPrompt(TextPrompt.__name__) text_prompt.telemetry_client = telemetry_client waterfall_dialog = WaterfallDialog( WaterfallDialog.__name__, [ self.destination_step, self.origin_step, self.departure_date_step, self.return_date_step, self.budget_step, self.confirm_step, self.final_step, ], ) waterfall_dialog.telemetry_client = telemetry_client self.add_dialog(text_prompt) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( DepartureDateResolverDialog(DepartureDateResolverDialog.__name__)) self.add_dialog( ReturnDateResolverDialog(ReturnDateResolverDialog.__name__)) self.add_dialog(waterfall_dialog) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, user_state: UserState): super(UserProfileDialog, self).__init__(UserProfileDialog.__name__) self.user_profile_accessor = user_state.create_property("UserProfile") self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.transport_step, self.name_step, self.name_confirm_step, self.age_step, self.picture_step, self.confirm_step, self.summary_step, ], )) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog( NumberPrompt(NumberPrompt.__name__, UserProfileDialog.age_prompt_validator)) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( AttachmentPrompt(AttachmentPrompt.__name__, UserProfileDialog.picture_prompt_validator)) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, user_state: UserState, storage: object): super(CreateDeliveryDialog, self).__init__(CreateDeliveryDialog.__name__) self.user_state = user_state self.did_show_entry_msg = False self.storage = storage self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( Keys.WATER_FALL_DIALOG_ID.value, [ self.item_step, self.destination_step, self.time_step, self.confirm_step, self.acknowledgement_step ], ) ) self.initial_dialog_id = Keys.WATER_FALL_DIALOG_ID.value
def __init__(self, dialog_id: str = None): super(BookingDialog, self).__init__(dialog_id or BookingDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateResolverDialog(DateResolverDialog.__name__)), self.add_dialog( CapcacityResolverDialog(CapcacityResolverDialog.__name__)), self.add_dialog(UserIDResolverDialog(UserIDResolverDialog.__name__)), self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.user_id_step, self.destination_step, self.origin_step, self.travel_date_step, self.capacity_step, self.confirm_step, self.final_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, user_state: UserState): super(UserProfileDialog, self).__init__(UserProfileDialog.__name__) self.user_profile_accessor = user_state.create_property("UserProfile") self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.first_step, self.second_step, self.third_step, self.fourth_step, self.fifth_step, self.sixth_step, self.seventh_step, self.eighth_step, ], )) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog( NumberPrompt(NumberPrompt.__name__, UserProfileDialog.age_prompt_validator)) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( AttachmentPrompt(AttachmentPrompt.__name__, UserProfileDialog.picture_prompt_validator)) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, luis_recognizer: CalcoloImportoRecognizer, calcolo_dialog: CalcoloDialog, cancella_dialogo: CancellaDialogo): super(WaterfallQuery, self).__init__(WaterfallQuery.__name__) #self.user_profile_accessor = user_state.create_property("UserProfile") self._luis_recognizer = luis_recognizer self._calcolo_dialog_id = calcolo_dialog.id self._cancella_dialogo_id = cancella_dialogo.id self.add_dialog(cancella_dialogo) self.add_dialog(calcolo_dialog) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.domanda_step, self.summary_step, ], )) self.add_dialog(TextPrompt(TextPrompt.__name__)) #self.add_dialog(TextPrompt(TextPrompt.__name__, WaterfallQuery.insertCorrectdate)) self.add_dialog(NumberPrompt(NumberPrompt.__name__)) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) """self.add_dialog( AttachmentPrompt( AttachmentPrompt.__name__, WaterfallQuery.picture_prompt_validator ) )""" self.initial_dialog_id = WaterfallDialog.__name__
async def test_confirm_prompt(self): async def exec_test(turn_context: TurnContext): dialog_context = await dialogs.create_context(turn_context) results: DialogTurnResult = await dialog_context.continue_dialog() if results.status == DialogTurnStatus.Empty: options = PromptOptions(prompt=Activity( type=ActivityTypes.message, text="Please confirm.")) await dialog_context.prompt("ConfirmPrompt", options) elif results.status == DialogTurnStatus.Complete: message_text = "Confirmed" if results.result else "Not confirmed" await turn_context.send_activity( MessageFactory.text(message_text)) await convo_state.save_changes(turn_context) # Initialize TestAdapter. adapter = TestAdapter(exec_test) # Create new ConversationState with MemoryStorage and register the state as middleware. convo_state = ConversationState(MemoryStorage()) # Create a DialogState property, DialogSet, and ChoicePrompt. dialog_state = convo_state.create_property("dialogState") dialogs = DialogSet(dialog_state) confirm_prompt = ConfirmPrompt("ConfirmPrompt", default_locale="English") dialogs.add(confirm_prompt) step1 = await adapter.send("hello") step2 = await step1.assert_reply("Please confirm. (1) Yes or (2) No") step3 = await step2.send("yes") await step3.assert_reply("Confirmed")
def __init__(self, nlu_recognizer: NLU, user_state: UserState): super(BookingRoomDialog, self).__init__(BookingRoomDialog.__name__) # Load the NLU module self._nlu_recognizer = nlu_recognizer # Load the RoomReservation class self.room_reservation_accessor = user_state.create_property( "RoomReservation") # Setup the waterfall dialog self.add_dialog( WaterfallDialog("WFBookingDialog", [ self.people_step, self.duration_step, self.breakfast_step, self.summary_step, ])) # Append the prompts and custom prompts self.add_dialog( NumberPrompt("PeoplePrompt", BookingRoomDialog.people_prompt_validator)) self.add_dialog( NumberPrompt("DurationPrompt", BookingRoomDialog.duration_prompt_validator)) self.add_dialog(ConfirmPrompt("IsTakingBreakfastPrompt")) self.initial_dialog_id = "WFBookingDialog"
def __init__(self, connection_name: str): super(MainDialog, self).__init__(MainDialog.__name__, connection_name) self.add_dialog( OAuthPrompt( OAuthPrompt.__name__, OAuthPromptSettings( connection_name=connection_name, text="Please Sign In", title="Sign In", timeout=300000, ), )) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( "WFDialog", [ self.prompt_step, self.login_step, self.command_step, self.process_step, ], )) self.initial_dialog_id = "WFDialog"
def __init__( self, user_state: UserState, conversation_state: ConversationState, reminders_accessor, ): super(RemindersDialog, self).__init__(RemindersDialog.__name__) self.user_state = user_state self.conversation_state = conversation_state self.REMINDER = "value-reminder" self.conversation_state_accessor = self.conversation_state.create_property( "ActivityMappingState") self.reminders_accessor = reminders_accessor self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( "WFDialog", [ self.choice_step, self.reminder_step, self.time_step, self.confirm_step, ], )) self.initial_dialog_id = "WFDialog" self.recognizer = ReminderRecognizer()
def __init__( self, connection_name: str ): super(MainDialog, self).__init__(MainDialog.__name__, connection_name) self.add_dialog( OAuthPrompt( OAuthPrompt.__name__, OAuthPromptSettings( connection_name=connection_name, text="Please Sign In", title="Sign In", timeout=300000 ) ) ) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( "WFDialog", [ self.prompt_step, self.login_step, self.display_token_phase1, self.display_token_phase2 ] ) ) self.initial_dialog_id = "WFDialog"
def __init__(self, configuration: DefaultConfig): super().__init__(AuthDialog.__name__) self.connection_name = configuration.CONNECTION_NAME self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( OAuthPrompt( OAuthPrompt.__name__, OAuthPromptSettings( connection_name=self.connection_name, text= f"Please Sign In to connection: '{self.connection_name}'", title="Sign In", timeout= 300000, # User has 5 minutes to login (1000 * 60 * 5) ), )) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.prompt_step, self.login_step, self.display_token, ], )) # The initial child Dialog to run. self.initial_dialog_id = WaterfallDialog.__name__
async def test_should_recognize_and_use_custom_locale_dict(self, ): async def exec_test(turn_context: TurnContext): dialog_context = await dialogs.create_context(turn_context) results: DialogTurnResult = await dialog_context.continue_dialog() if results.status == DialogTurnStatus.Empty: options = PromptOptions(prompt=Activity( type=ActivityTypes.message, text="Please confirm.")) await dialog_context.prompt("prompt", options) elif results.status == DialogTurnStatus.Complete: selected_choice = results.result await turn_context.send_activity(selected_choice.value) await convo_state.save_changes(turn_context) async def validator(prompt: PromptValidatorContext) -> bool: assert prompt if not prompt.recognized.succeeded: await prompt.context.send_activity("Bad input.") return prompt.recognized.succeeded adapter = TestAdapter(exec_test) convo_state = ConversationState(MemoryStorage()) dialog_state = convo_state.create_property("dialogState") dialogs = DialogSet(dialog_state) culture = PromptCultureModel( locale="custom-locale", no_in_language="customNo", yes_in_language="customYes", separator="customSeparator", inline_or="customInlineOr", inline_or_more="customInlineOrMore", ) custom_dict = { culture.locale: ( Choice(culture.yes_in_language), Choice(culture.no_in_language), ChoiceFactoryOptions(culture.separator, culture.inline_or, culture.inline_or_more, True), ) } confirm_prompt = ConfirmPrompt("prompt", validator, choice_defaults=custom_dict) dialogs.add(confirm_prompt) step1 = await adapter.send( Activity(type=ActivityTypes.message, text="Hello", locale=culture.locale)) await step1.assert_reply( "Please confirm. (1) customYescustomInlineOr(2) customNo")
def __init__(self, dialog_id: str = None): super(BookingDialog, self).__init__(dialog_id or BookingDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateResolverDialog(DateResolverDialog.__name__)) self.add_dialog(WaterfallDialog(WaterfallDialog.__name__, [])) self.initial_dialog_id(WaterfallDialog.__name__)
def __init__(self, dialog_id: str = None): super(CardDialog, self).__init__(dialog_id or CardDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.first_step, self.confirm_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(DantocDialog, self).__init__(dialog_id or DantocDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateResolverDialog(DateResolverDialog.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.destination_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, luis_recognizer: WorkBoardRecognizer, dialog_id: str = None): super(ShowOKRDialog, self).__init__(dialog_id or ShowOKRDialog.__name__) self._luis_recognizer = luis_recognizer self._action = ShowOKRAction() self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [self.ask_obj_step, self.process_usr_reply_step], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, user_state: UserState): super(AddUtteranceDialog, self).__init__(AddUtteranceDialog.__name__) self.user_profile_accessor = user_state.create_property("DialogData") ### add_dialog --> 增加來回對話的round self.add_dialog( WaterfallDialog(WaterfallDialog.__name__, [ self.enter_a_training_utterance, self.enter_the_specified_intent, self.enter_the_specified_entity, self.enter_the_tagged_entity, self.inquire_keep_going_or_not, self.final_step ])) #依照本次dialog對話需要的方法,增加方法(yes/no問題、選項問題、純文字題等等) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__))
def __init__(self, dialog_id: str = None): super(CancellaDialogo, self).__init__(dialog_id or CancellaDialogo.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.date_step, self.result_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(FindBookDialog, self).__init__(dialog_id or FindBookDialog.__name__) self.add_dialog( TextPrompt("TextPromptLibro", FindBookDialog.validateName)) self.add_dialog( TextPrompt("TextPromptSito", FindBookDialog.validateSite)) self.add_dialog( ConfirmPrompt(ConfirmPrompt.__name__, FindBookDialog.yes_noValidator)) self.add_dialog( WaterfallDialog("WFDialog", [ self.prompt_step, self.search_step, self.confirmRec_step, self.prompt_to_wish, self.confirm_step, self.add_to_wishlist ])) self.initial_dialog_id = "WFDialog"
def __init__(self, recognizer: MusicRecognizer, dialog_id: str = None): super(RecommendationDialog, self).__init__(dialog_id or RecommendationDialog.__name__) self.luis_recognizer = recognizer self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.genre_step, self.recommend_step, self.confirmation_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(CalcoloDialog, self).__init__(dialog_id or CalcoloDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.date_step, self.result_step, #self.period_step, self.final_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(LehoiDialog, self).__init__(dialog_id or LehoiDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateResolverDialog(DateResolverDialog.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.destination_step, # self.origin_step, # self.travel_date_step, # self.confirm_step, self.final_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(RestaurantFinderDialog, self).__init__(dialog_id or RestaurantFinderDialog.__name__) self.gmaps_service = GoogleMapsService() self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.food_step, self.location_step, self.confirm_step, self.results1_step, self.results2_step, self.results3_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, luis_recognizer: OrderingRecognizer, dialog_id: str = None): super(OrderTrackingDialog, self).__init__(dialog_id or OrderTrackingDialog.__name__) self._luis_recognizer = luis_recognizer self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateResolverDialog(DateResolverDialog.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.email_step, self.orderid_step, self.final_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(ConnectivityCheckDialog, self).__init__(dialog_id or ConnectivityCheckDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.destination_step, self.source_step, self.protocol_step, self.port_step, self.confirm_step, self.result_step, self.final_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(RecommendDialog, self).__init__(dialog_id or RecommendDialog.__name__) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.brand_step, self.use_step, self.cost_step, self.looking_step, self.performance_step, self.confirm_step, self.final_step, ], )) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, user_state: UserState): super(OrderDialog, self).__init__(OrderDialog.__name__) self.current_order: Order = None self.order_list: List[Order] = list() self.user_profile_accesor = user_state.create_property("UserProfile") self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.options_step, self.interpret_user_intention, self.goodbye_step, ], )) self.add_dialog(ChoicePrompt("options_step")) self.add_dialog(TextPrompt("interpret_user_intention")) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.initial_dialog_id = WaterfallDialog.__name__ self.add_dialog(TextPrompt(TextPrompt.__name__))