def create(): return If( _id=StylePreferenceProfileCheck.__id(), elements=[ StyleConditions.is_blank(), Output( Prompt(items=["Do you prefer a certain style? "]), children=[ If( elements=[ Condition(name="First_Time", operator="EQUAL_TO_YES"), Output( Prompt( items=[ "<mct:link><b><mct:input>High heels</mct:input></b></mct:link>\n<mct:link><b><mct:input>Boots</mct:input></b></mct:link>\n<mct:link><b><mct:input>Sandals</mct:input></b></mct:link>\n<mct:link><b><mct:input>Trainers</mct:input></b></mct:link>\n<mct:link><b><mct:input>No Preference</mct:input></b></mct:link>", ] ), children=[StylePreferenceProfileCheckInput.goto()] ) ] ), StylePreferenceProfileCheckInput.create() ] ) ] )
def create(): return If( _id=ColorPreferenceProfileCheck.__id(), elements=[ ColorConditions.is_blank(), Output( prompt=Prompt(items=["Do you prefer a certain color?"]), children=[ If( elements=[ FirstTimeConditions.is_yes(), Output( prompt=Prompt( items=[ "<mct:link><b><mct:input>Black</mct:input></b></mct:link>\n<mct:link><b><mct:input>White</mct:input></b></mct:link>\n<mct:link><b><mct:input>Red</mct:input></b></mct:link>\n<mct:link><b><mct:input>Green</mct:input></b></mct:link>\n<mct:link><b><mct:input>No Preference</mct:input></b></mct:link>"] ), children=[ ColorPreferenceProfileCheckInput.goto() ] ) ] ), ColorPreferenceProfileCheckInput.create() ] ) ] )
def create(): return Folder( label="UI ACTIONS", children=[ Input( Grammar(watson_items=["USER CLICKS BOX"]), children=[ Output( prompt=Prompt( items=["{Selected_Movie}."] ), children=[ If( elements=[ Condition(name="Popularity_Score", operator="GREATER_THEN", root_text="6.9"), Output( Prompt( items=[ "Great choice! That gets fabulous ratings.", "That's a good one! You will love it.", " I hear that's a really good movie!" ] ), children=[AfterSearchResults.goto()] ) ] ), If( elements=[ Condition(name="Popularity_Score", operator="LESS_THEN", root_text="4"), Output( Prompt( items=[ "Hmm, I hear that's not such a great movie.", "Um, that one gets low ratings.", "Are you sure about that? The ratings are terrible." ] ), children=[AfterSearchResults.goto()] ) ] ), Output( prompt=Prompt( items=[ "Okay.", "All right.", "Sure thing!", "Coming right up!" ] ), children=[AfterSearchResults.goto()] ) ] ) ] ) ] )
def create(): return Output( _id=StartSearch.__id(), prompt=Prompt( items=["Would you like to find a specific style of shoe?"] # "Would you like to find a movie that's now playing or coming soon?" ), children=[ GetUserInput(children=[ # TODO Not sure how this is useful # (0, "input"): { # (0, "grammar"): { # "item": "$ (DATE_TIME_RANGE)={DateTime_Mentioned_ENT}" # }, # (1, "action"): { # "@varName": "DateTime_Current", # "@operator": "SET_TO", # "#text": "<mct:getTime>America/Tijuana</mct:getTime>" # }, # (2, "goto"): Goto(ref="input_date_time") # }, Input(Grammar( watson_items=["neither", "neither", "$ either", "no"]), children=[ Output(prompt=GenericPrompt.ok(), children=[HowCanHelpYouOutput.goto()]) ]), Input( GenericGrammar.yes_okay(wildcard=False), children=[ Output(Prompt(items=[ "Please tell me the style you would like then.", "Ok great what style would you like?" ]), children=[ StylePreferenceProfileCheckInput.goto() ]) ]), Input(Grammar(watson_items=[ "My name is", "$ my name is", "$ I am", "$ I'm", "$ called", "$ call me", "$ known as" ]), children=[ Output(prompt=Prompt(items=["Sorry."]), children=[ Goto(ref="input_user_knownas_name") ]) ]), PreliminarySequencesSearch.goto() ]) ])
def create(): from dialog.schema.factories.inputs.how_can_i_help_you import HowCanHelpYouInput return Output( _id=HowCanHelpYouOutput.__id(), prompt=Prompt( items=["How can I help you?", "What can I do for you?"]), children=[HowCanHelpYouInput.create()])
def create(): return Input( Grammar( watson_items=[ "Favorites", "$ favorites", "$ favorite movies", "$ favorited", "$ hearted" ] ), children=[ GreetingAction.reset(), SmallTalkAction.set_to_zero(), Output( Prompt( items=[ "When you get the details for a movie, you can save the movie in your <i>Favorites</i> by clicking on the heart icon above the trailer."] ), children=[ GetUserInput( children=[ Input( GenericGrammar.ok(), children=[HowCanHelpYouOutput.goto()] ), PreliminarySequencesSearch.goto() ] ) ] ) ] )
def test_regular(self): actual = Target( Prompt(items=[Mock()]), children=[Action("var_name_value", "operator_value"), Goto()]) folder = Folder(children=[actual]) dialog = Mock() folder._set_dialog(dialog) self.assertEqual(dialog, actual.children[0].dialog) self.assertEqual(dialog, actual.children[1].dialog) self.assertEqual(dialog, actual.children[2].dialog)
def create(): return Input( Grammar(watson_items=[ "Details", "$ details", "$ detail", "$ movie info", "$ movie information" ]), children=[ GreetingAction.reset(), SmallTalkAction.set_to_zero(), Output(Prompt(items=[ "After searching for movies, you can click on a particular movie result to see <i>details</i>, such as rating, summary and trailer.", ]), children=[ GetUserInput(children=[ Input(GenericGrammar.ok(), children=[HowCanHelpYouOutput.goto()]), PreliminarySequencesSearch.goto() ]) ]) ])
def create(): return Folder( label="CLOSING SEQUENCES", children=[ Input(Grammar(watson_items=[ "I should be going", "$ should be going", "$ should go", "$ need to go", "$ got to go", "$ gotta run", "$ gotta go", "$ need to run", "$ need to leave", "$ have to leave", "$ have to go", "$ gtg" ]), children=[ Output( _id="output_2449675", prompt=GenericPrompt.ok(), children=[ Goto(ref="output_did_find_what_looking_for") ]) ]), Input(Grammar(watson_items=[ "Thanks for your help", "$ thank you for your help", "$ thanks for your help" ]), children=[ Output( Prompt(items=["You are welcome."]), children=[ Goto(ref="output_did_find_what_looking_for") ]) ]), Input(Grammar(watson_items=["Goodbye"]), children=[ If(elements=[ TerminalExchangeConditions.is_yes(), Goto(ref="output_end_of_conversation") ]), If(elements=[ TerminalExchangeConditions.is_no(), Goto(ref="output_2449675") ]) ]) ])
def create(): from dialog.schema.factories.folder.sequences import SystemInitiatedSequences return Folder( label="REPAIR SEQUENCES", children=[ Input( Grammar( watson_items=[ "Help", "$ help", "$ how does this work", "$ what do I do", "$ what can I do", "$ don't know", "$ I'm not sure" ] ), children=[ Output( Prompt( items=[ "Say <i>Never mind</i> or <i>nvm</i> to start over.\nSay <i>okay</i> or <i>thanks</i> if my response is acceptable.\nSay <i>What does X mean?</i> for a definition of X.\nSay <i>got to go</i> or <i>bye</i> when you're finished." ] ) ) ] ), Input( Grammar( watson_items=[ "Say that again", "$ say that again", "$ say again", "$ what did you say", "$ come again", "$ say what" ] ), children=[ Output( Prompt(items=["I said..."]), children=[Goto(ref="##special_DNR_GUI_PREVIOUS_OUTPUT_NODE_ID")] ) ] ), Input( Grammar( watson_items=[ "Never mind", "$ Nevermind", "$ Never mind", "$ nvm", "$ start over", "$ start again", "$ restart", "$ redo", "$ do over", "$ start from * beginning", "$ clear * selections" ] ), children=[ Output( Prompt(items=["Okay. Whatever you say, {User_Name}!"]), children=[SystemInitiatedSequences.goto()] ) ] ), Input( Grammar( watson_items=[ "what does * mean", "$ what does * mean", "$ what does * stand for", "$ do you mean by ", "$ what are examples of", "$ what is an example of" ] ), children=[ Input( Grammar( watson_items=[ "trailers", "$ trailer", "$ trailers" ] ), children=[ Output( Prompt( items=[ "<i>Trailers</i> are video previews for movies. <br> <br>"] ), children=[ GetUserInput( children=[ Input( Grammar(watson_items=["okay"]), children=[ Output( Prompt(items=[ "Sure, happy to help. <br> <br>"]), children=[Goto( ref="##special_DNR_GET_USER_INPUT_NODE_ID")] ) ] ) ] ) ], is_insert_DNR_statement=True ) ] ), Input( Grammar( watson_items=[ "genre", "$ genre", "$ genres" ] ), children=[ Output( Prompt( items=[ "The <i>genre</i> is the category of movie, like Drama, Comedy, Action, etc. <br> <br>" ] ) ) ] ), Input( Grammar( watson_items=[ "rating", "$ rating", "$ ratings", "$ mpaa" ] ), children=[ Output( Prompt( items=[ "The <i>rating</i> is a recommendation by the Motion Picture Association of America about the suitability of a movie's content for particular age groups. For example, G is for general audiences, while R is restricted to people 17 and older.<br> <br>"] ) ) ] ), Input( Grammar( watson_items=[ "G", "$ G" ] ), children=[ Output( Prompt( items=[ "G stands for <i>General Audience</i> and is appropriate for everyone.", ] ) ) ] ), Input( Grammar( watson_items=[ "PG-13", "$ PG-13" ] ), children=[ Output( Prompt( items=[ "PG-13 means <i>Parents Strongly Cautioned</i> or that some material may not be suitable for children under 13 years old.", ] ) ) ] ), Input( Grammar( watson_items=[ "Current", "$ current" ] ), children=[ Output( Prompt( items=[ "<i>Current</i> movies are those that have been playing for the past 28 days." ] ) ) ] ), Input( Grammar( watson_items=[ "Upcoming", "$ upcoming" ] ), children=[ Output( Prompt( items=[ "<i>Upcoming</i> movies are those that will come out within the next 6 months." ] ) ) ] ), Input( Grammar( watson_items=[ "$ (GENRE)={Topic}", "$ (UNSUPPORTED_GENRES)={Topic}" ] ), children=[ TopicAction.set_to_value(), Output( Prompt( items=[ "I'm afraid I don't have definitions of the different genres." ] ) ) ] ) ] ), Input( Grammar( watson_items=[ "I already told you!", "$ already told you", "$ already said it" ] ), children=[ Output( Prompt( items=["I'm sorry, please repeat it for me."] ), children=[Goto(ref="getUserInput_how_can_i_help_you")] ) ] ) ] )
def create(): return GetUserInput( _id=ColorPreferenceProfileCheckInput.__id(), children=[ Input( Grammar( watson_items=[ "What", "$ what", "$ which", "$ tell me" ] ), children=[ Input( Grammar( watson_items=[ "colors", "$ they", "$ ones", "$ choices", "$ options", "$ ratings", "$ certifications", "$ what else" ] ), children=[ Output( Prompt( items=["Black, White, Red, Brown or Green <br> <br>"] ), children=[ColorPreferenceProfileCheckInput.goto()] ) ] ) ] ), Input( Grammar( watson_items=[ "Color", "$ (COLOR)={Color_Preference}" ] ), children=[ CurrentIndexAction.set_to_zero(), PageAction.set_to_new(), SearchNowAction.set_to_no(), ColorPreferenceAction.set_to_value(), Goto(ref="output_ok_do_search") ] ), # TODO NOT SUPPORTED PATH # { # (0, "grammar"): { # "item": [ # "NC-17", # "$ NC-17" # ] # }, # (1, "output"): { # (0, "prompt"): { # "item": "I'm afraid I cannot look up NC-17-rated movies.", # "@selectionType": "RANDOM" # }, # (1, "goto"): { # "@ref": "getUserInput_2443780a" # } # } # }, Input( Grammar( watson_items=[ "No", "$ don't care", "$ don't know", "$ no preference", "$ no", "$ none", "$ all", "$ any", "$ anything", "$ whatever", "$ nothing specific", "$ don't have a preference" ] ), children=[ CurrentIndexAction.set_to_zero(), PageAction.set_to_new(), Goto(ref="output_2456875") ] ), Input( GenericGrammar.yes_okay(wildcard=False), children=[ Output( Prompt(items=["Which one?"]), children=[ColorPreferenceProfileCheckInput.goto()] ) ] ), PreliminarySequencesSearch.goto() ] )
def create(): return Input( Grammar( watson_items=["Go back", "$ back", "$ previous", "$ prior"]), children=[ PageAction.set_to_previous(), Action("Show_Previous", operator="SET_TO_YES"), If(elements=[ Condition(name="Current_Index", operator="EQUALS", root_text="10"), Output(prompt=Prompt( items=["Those were the first results"]), children=[Goto(ref="profileCheck_2503183")]) ]), Output( prompt=GenericPrompt.ok(), children=[ Output(prompt=Prompt(items=[ "\"{Search_Now:\"{Search_Now}\", Style:\"{Style_Preference}\", Rating:\"{Color_Preference}\", Index:\"{Current_Index}\", Page:\"{Page}\"}\"" ]), children=[ Action(var_name="Last_Results", operator="SET_TO_NO"), GetUserInput(children=[ Input( Grammar(watson_items= ["UPDATE CURRENT_INDEX"]), children=[ Action(var_name="Show_Next", operator="SET_TO_NO"), Action(var_name="Show_Previous", operator="SET_TO_NO"), If(elements=[ Condition( name="First_Results", operator="EQUAL_TO_YES" ), Output(prompt=Prompt(items=[ "Those were the first results" ]), children=[ Goto( ref= "getUserInput_2503174" ) ]) ]), If(elements=[ Condition( name="Current_Index", operator="EQUALS", root_text="10"), Output(prompt=Prompt(items=[ "Here are the first results" ]), children=[ Action( var_name= "First_Results", operator= "SET_TO_YES" ), AfterSearchResults .goto() ]) ]), Output(prompt=Prompt(items=[ "Here is the previous set of results" ]), children=[ AfterSearchResults. goto() ]) ]) ]) ]) ]) ])
def create(): return Input( grammar=Grammar(items=["more", "$ more", "$ next", "$ forward"]), children=[ Action(var_name="Show_Next", operator="SET_TO_YES"), PageAction.set_to_next(), Output( Prompt(items=["Okay."]), children=[ Output(Prompt( "\"{Search_Now:\"{Search_Now}\", Color:\"{Color_Preference}\", Style:\"{Style_Preference}\", Index:\"{Current_Index}\", Page:\"{Page}\", Total_Movies:\"{%s}\", Total_Pages:\"{Total_Pages}\"}\"" % NAME_RESULTS_COUNT), children=[ Action(var_name="First_Results", operator="SET_TO_NO"), GetUserInput( _id="getUserInput_2503174", children=[ Input( grammar=Grammar(items=[ "UPDATE CURRENT_INDEX" ]), children=[ Action( var_name="Show_Next", operator="SET_TO_NO"), Action( var_name="Show_Previous", operator="SET_TO_NO"), If(elements=[ Condition( name="Last_Results", operator= "EQUAL_TO_YES"), Output(prompt=Prompt( items= "Those were the last results" ), children=[ Goto( ref= "profileCheck_2503183" ) ]) ]), If(elements=[ Condition( name="Current_Index", operator="EQUALS", root_text="{%s}" % NAME_RESULTS_COUNT), Output( prompt=Prompt( items=[ "Here are the last results" ]), children=[ Action( var_name= "Last_Results", operator= "SET_TO_YES" ), Goto( ref= "profileCheck_2503183" ) ]) ]), Output( prompt=Prompt(items=[ "Here is the next set of results" ]), children=[ If(elements=[ StyleConditions. is_blank(), ColorConditions. has_value(), Output( prompt= Prompt(items=[ "for {Style_Preference} {Color_Preference}-rated movies." ]), children=[ AfterSearchResults .goto() ]) ], _id= "profileCheck_2503183" ), If(elements=[ ColorConditions. is_blank(), StyleConditions. has_value(), Output( Prompt( items=[ "for {Recency_Preference} {Genre_Preference} movies." ]), children=[ AfterSearchResults .goto() ]) ]), If(elements=[ ColorConditions. is_blank(), StyleConditions. is_blank(), Output( prompt= Prompt(items=[ "for ALL {Recency_Preference} movies." ]), children=[ AfterSearchResults .goto() ]) ]), Output(Prompt(items=[ "for {Recency_Preference} {Certification_Preference}-rated {Genre_Preference} movies." ]), children=[ AfterSearchResults .goto() ]) ]) ]) ]) ]) ]) ])
def create(): return Folder( label="Main", children=[ Output( prompt=GenericPrompt.what_is_your_name(), children=[ GetUserInput( children=[ Input( Grammar( watson_items=[ "Movies", "$ (Color)={Color_Preference}", "$ (Style)={Style_Preference}", "$ movies", "$ want to see something", "$ planning to go see", "$ planning to go to the", "$ going out to see", "$ planning to see", "$ want to go see", "$ thinking of seeing", "$ thinking we want to see", "$ what do you recommend", "$ can you recommend something", "$ what are your recommendations" ] ), children=[ ColorPreferenceAction.set_to_value(), # CertificationPreferenceAction.set_to_value(), StylePreferenceAction.set_to_value(), TopicAction.set_to_shoes(), PreliminarySequencesSearch.goto() ] ), Input( Grammar( watson_items=[ "Movie-related", "$ (OTHER_MOVIE)={Topic}", "$ (BY_OTHER_MOVIE)={Topic}", "$ showtimes", "$ theaters", "$ fandango", "$ reviews", "$ review", "$ critiques", "$ critique", "$ old movies", "$ classic movies", "$ oldies", "$ classics", "$ trailers", "$ reviews", "$ (DINING)={Topic}", "$ (WEATHER)={Topic}", "$ (TRAFFIC)={Topic}" ] ), children=[PreliminarySequencesSearch.goto()] ), Input( grammar=FeelingGrammar.create_preliminaries(), children=[ PreliminarySequencesSearch.goto() ] ), Input( Grammar( watson_items=[ "Why do you need to know?", "$ why", "$ need to know", "$ use it", "$ do with it" ] ), children=[ Output( prompt=Prompt( items=["Just trying to be friendly."] ), children=[StartSearch.goto()] ) ] ), Input( Grammar( watson_items=[ "I don't want to give it!", "$ don't want", "$ no", "$ refuse", "$ none of your business" ] ), children=[ Output( Prompt(items=["That's fine."]), children=[StartSearch.goto()] ) ] ), Input( ProfileGrammar.create_my_name_is_dynamic_data(), children=[ UserNameAction.set_to_source(), Output( prompt=Prompt(items=["Hi {User_Name}!"]), children=[StartSearch.goto()] ) ], _id="input_user_knownas_name" ) ], _id="getUserInput_what_is_your_name" ), StartSearch.create(), HowCanHelpYouOutput.create() ], _id="output_what_is_name" ) ] )
def ok_fine(): return Prompt(items=["Okay, fine."])
def create(): from dialog.schema.factories.inputs.main_search_criteria import AgainOption, MoreOption, GoBackOption return GetUserInput( _id=AfterSearchResults.__id(), children=[ Input( _id="input_2456878", grammar=Grammar( items=[ "Okay", "okay", "$ done" ] ), children=[AnythingElseCanHelpWith.create()] ), Input( Grammar( items=[ "What do you mean", "$ what do you mean", "$ what does that mean", "$ what did you mean", "$ what were those movies again", "$ what did you mean", "$ what are those" ] ), children=[ Output( prompt=Prompt( items=["These are the {Recency_Preference} movies. Go ahead and click one!"] ), children=[AfterSearchResults.goto()] ) ] ), # TODO could be the details flow? # (2, "input"): { # (0, "grammar"): { # "item": [ # "When are those showing?", # "$ when * showing", # "$ when * playing", # "$ when * play", # "$ what times * showing", # "$ what times * playing", # "$ what times * play", # "$ what * showtimes", # "$ where * showing", # "$ where * playing", # "$ where * play" # ] # }, # (1, "output"): { # "@id": "output_ask_search_for_movies_in_area", # (0, "prompt"): { # "item": "Oh. You mean movies in your area. I must direct you to Fandango for that. Would you like the link?", # "@selectionType": "RANDOM" # }, # (1, "getUserInput"): { # (0, "input"): [ # { # (0, "grammar"): GenericGrammar.yes(), # (1, "output"): { # (0, "prompt"): GenericPrompt.ok(), # (1, "goto"): Goto(ref="output_showtimes_zipcode") # } # }, # { # (0, "grammar"): GenericGrammar.no(), # (1, "output"): { # (0, "prompt"): GenericPrompt.ok(), # (1, "goto"): AfterSearchResults.goto() # } # } # ], # (1, "goto"): AfterSearchResults.goto() # } # } # }, # (3, "if"): { # (0, "cond"): { # "@varName": "Popularity_Score", # "@operator": "HAS_VALUE" # }, # (1, "input"): [ # { # (0, "grammar"): { # "item": [ # "What are the ratings?", # "$ ratings for it", # "$ ratings does it get", # "$ ratings it gets", # "$ ratings it got", # "$ ratings it received", # "$ its ratings", # "$ how many * stars", # "why", # "why not", # "why do you say that" # ] # }, # (1, "output"): { # (0, "prompt"): { # "item": "{Selected_Movie} gets {Popularity_Score} stars from users.", # "@selectionType": "RANDOM" # }, # (1, "getUserInput"): { # (0, "input"): { # (0, "grammar"): { # "item": [ # "okay", # "okay", # "$ sucks", # "haha" # ] # }, # (1, "goto"): AnythingElseCanHelpWith.goto() # }, # (1, "goto"): { # "@ref": "input_2456878" # } # } # } # }, # { # (0, "grammar"): Grammar( # watson_items=[ # "What is it about?", # "$ what's is about?" # ] # ), # (1, "output"): Output( # Prompt( # items=["There should be a short description of {Selected_Movie} to the right."] # ), # children=[ # GetUserInput( # children=[ # Input( # grammar=Grammar( # watson_items=[ # "okay", # "okay", # "$ sucks", # "haha" # ] # ), # children=[AnythingElseCanHelpWith.goto()] # ), # Goto(ref="input_2456878") # ] # ) # ] # ) # } # ], # (2, "goto"): Goto(ref="input_2459410") # }, Input( _id="input_2459410", grammar=Grammar( watson_items=[ "Are those", "$ are those", "$ are these", "$ is that", "$ were those", "$ were these", "$ does this", "$ do these", "$ are they" ] ), children=[ Input( Grammar( watson_items=[ "What are", "$ what are", "$ what were" ] ), children=[ PageAction.set_to_repeat(), Goto(ref="output_search_now") ] ), Input( Grammar( watson_items=[ "all of them", "$ all", "$ it" ] ), children=[Goto(ref="profileCheck_2459411")] ), If( _id="profileCheck_2459411", elements=[ ResultsCountConditions.less_than("{%s}" % NAME_RESULTS_COUNT), Output( Prompt( items=["No. Say <i>show me more</i> if you want to see more."] ), children=[AfterSearchResults.goto()] ) ] ), Output( Prompt( items=["Yes. I'm afraid that's all of them."] ), children=[AfterSearchResults.goto()] ) ] ), RemoveColorInput.create(), RemoveStyleInput.create(), RemoveAllSearchCriteriaInput.create(), # (8, "input"): Showtimes.create(), # (9, "input"): RecencyGenreRatingPreference.create(), # (10, "input"): RecencyGenrePreference.create(), # (11, "input"): RecencyRatingPreference.create(), # (12, "input"): GenreRecencyPreference.create(), # (13, "input"): RecencyPreference.create(), # (15, "input"): CertificationPreference.create(), # (16, "input"): UnsupportedGenre.create(), # (17, "input"): DateTimePreference.create(), AgainOption.create(), MoreOption.create(), GoBackOption.create(), PreliminarySequencesSearch.goto() ] )
def create(): return Folder( label="PRELIMINARY SEQUENCES", _id=PreliminarySequencesFolder._id(), children=[ GreetingAction.reset(), SmallTalkAction.set_to_zero(), Input( Grammar(watson_items=[ "Do you know", "$ do you know", "$ can you", "$ do you have information", "$ can I", "$ can you tell", "$ what kind of", "$ what else do you know" ]), children=[ GreetingAction.reset(), SmallTalkAction.set_to_zero(), Input( Grammar(watson_items=[ "out-of-scope movie topics", "$ (OTHER_MOVIE)={Topic}" ]), children=[ TopicAction.set_to_value(), Input(Grammar(watson_items=["what", "$ what"]), children=[ Goto(ref="output_no_topic_lookup") ]), Output( Prompt(items=["No."]), children=[ Output( _id="output_no_topic_lookup", prompt=Prompt(items=[ "I'm afraid I can't look up movies by {Topic}, only by Genre or MPAA Rating." ]), children=[ GetUserInput(children=[ Input( GenericGrammar.ok(), children=[ HowCanHelpYouOutput .goto() ]), PreliminarySequencesSearch. goto() ]) ]) ]) ]), Input( Grammar(watson_items=[ "by out-of-scope movie topics", "$ (BY_OTHER_MOVIE)={Topic}" ]), children=[ TopicAction.set_to_value(), Input( Grammar(watson_items=["what", "$ what"]), children=[Goto(ref="output_2503370")]), Output( Prompt(items=["No."]), children=[ Output( _id="output_2503370", prompt=Prompt(items=[ "I'm afraid I can't look up {Topic}, only Current and Upcoming movies by Genre or MPAA Rating.", ]), children=[ GetUserInput(children=[ Input(Grammar( watson_items=["Okay." ]), children=[ HowCanHelpYouOutput .goto() ]), PreliminarySequencesSearch. goto() ]) ]) ]) ]), Input( Grammar(watson_items=[ "unsupported genres", "$ (UNSUPPORTED_GENRES)={Topic}" ]), children=[ TopicAction.set_to_value(), Input( grammar=Grammar( watson_items=["what", "$ what"]), children=[Goto(ref="output_2510164")]), Output( Prompt(items=["No."]), children=[ Output( _id="output_2510164", prompt=Prompt(items=[ "I'm afraid {Topic} isn't a movie genre I know. Please try another one." ]), children=[ GetUserInput(children=[ Input(grammar=Grammar( watson_items=["Okay." ]), children=[ HowCanHelpYouOutput .goto() ]), PreliminarySequencesSearch. goto() ]) ]) ]) ]), # { # (0, "grammar"): { # "item": [ # "theaters", # "$ theaters", # "$ fandango" # ] # }, # (1, "input"): { # (0, "grammar"): { # "item": [ # "what", # "$ what" # ] # }, # (1, "goto"): { # "@ref": "output_2503320" # } # }, # (2, "output"): { # (0, "prompt"): { # "item": "No." # }, # (1, "output"): { # "@id": "output_2503320", # (0, "prompt"): { # "item": "I'm afraid I cannot look up theaters myself, but I can give you a link to Fandango.com where you can buy tickets in your ZIP code. ", # "@selectionType": "RANDOM" # }, # (1, "getUserInput"): { # (0, "input"): { # (0, "grammar"): GenericGrammar.ok(), # (1, "goto"): HowCanHelpYouOutput.goto() # }, # (1, "goto"): PreliminarySequencesSearch.goto() # } # } # } # }, Input(Grammar( watson_items=["$ (STYLE)={Style_Preference}"]), children=[ StylePreferenceAction.set_to_value(), Goto(ref="search_2414740") ]), Input( Grammar(watson_items=["genres", "$ genres"]), children=[ Output(Prompt(items=[ "Action, adventure, animated, comedy, crime, documentary, drama, family, fantasy, foreign, historical, horror, music, mystery, romance, science fiction, TV movie, thriller, war movies and western. <br> <br>" ]), children=[ GetUserInput(children=[ Input(GenericGrammar.ok(), children=[ HowCanHelpYouOutput. goto() ]), PreliminarySequencesSearch.goto( ) ]) ]) ]), # { # (0, "grammar"): { # "item": [ # "old movies", # "$ old movies", # "$ classic movies", # "$ oldies", # "$ classics" # ] # }, # (1, "input"): { # (0, "grammar"): { # "item": [ # "what", # "$ what" # ] # }, # (1, "goto"): { # "@ref": "output_2503380" # } # }, # (2, "output"): { # (0, "prompt"): { # "item": "No." # }, # (1, "output"): { # "@id": "output_2503380", # (0, "prompt"): { # "item": "I'm afraid I cannot look up Old Movies, only Current and Upcoming.", # "@selectionType": "RANDOM" # }, # (1, "getUserInput"): { # (0, "input"): { # (0, "grammar"): GenericGrammar.ok(), # (1, "goto"): HowCanHelpYouOutput.goto() # }, # (1, "goto"): PreliminarySequencesSearch.goto() # } # } # } # }, Input( Grammar(watson_items=["shoes", "$ shoes"]), children=[ TopicAction.set_to_shoes(), Input( Grammar(watson_items=["what", "$ what"]), children=[ Goto(ref="output_what_jemboo_knows") ]), Output( prompt=Prompt(items=["Yes."]), children=[ Output( _id="output_what_jemboo_knows", prompt=Prompt(items=[ "I can look up current and upcoming movies by Genre or MPAA Rating and show you trailers for them. But I'm afraid I cannot search by number of stars or by movie titles or actor and director names at this time.", ]), children=[ GetUserInput(children=[ Input( GenericGrammar.ok(), children=[ HowCanHelpYouOutput .goto() ]), PreliminarySequencesSearch. goto() ]) ]) ]) ]), # { # (0, "grammar"): { # "item": [ # "trailer", # "$ trailer", # "$ trailers" # ] # }, # (1, "input"): { # (0, "grammar"): { # "item": [ # "what", # "$ what" # ] # }, # (1, "goto"): { # "@ref": "output_2510290" # } # }, # (2, "output"): { # (0, "prompt"): { # "item": "Yes." # }, # (1, "output"): { # "@id": "output_2510290", # (0, "prompt"): { # "item": "After searching for movies, you can click on a particular movie result to watch its <i>trailer</i>, or video preview.", # "@selectionType": "RANDOM" # }, # (1, "getUserInput"): { # (0, "input"): { # (0, "grammar"): GenericGrammar.ok(), # (1, "goto"): HowCanHelpYouOutput.goto() # }, # (1, "goto"): PreliminarySequencesSearch.goto() # } # } # } # }, Input( Grammar(watson_items=[ "out-of-scope topics", "$ (DINING)={Topic}", "$ (WEATHER)={Topic}", "$ (TRAFFIC)={Topic}" ]), children=[ TopicAction.set_to_value(), OutOfScopeCountAction.increment(), If(elements=[ OutOfScopeCountConditions.is_greater_then( "2"), Output(Prompt(items=[ "I'm sorry I don't know about that. Can I look up some shoes for you?" ]), children=[ GetUserInput(children=[ Input( GenericGrammar.yes(), children=[ StylePreferenceProfileCheck .goto() ]), Input( GenericGrammar.no(), children=[ Action( var_name= "Out-of-Scope_Count", operator= "SET_TO", text="0"), Output(prompt= GenericPrompt .ok_fine()) ]), Input( GenericGrammar.ok(), children=[ StylePreferenceProfileCheck .goto() ]), PreliminarySequencesSearch. goto() ]) ]) ]), Input(Grammar(watson_items=["what", "$ what"]), children=[Goto(ref="output_2497989")]), Output( Prompt(items=["No."]), children=[ Output( _id="output_2497989", prompt=Prompt(items=[ "I'm afraid I don't know much about {Topic}. Just movies." ]), children=[ GetUserInput(children=[ Input(Grammar( watson_items=["Okay." ]), children=[ HowCanHelpYouOutput .goto() ]), PreliminarySequencesSearch. goto() ]) ]) ]) ]), Goto(ref="output_what_jemboo_knows") ]) ])
def create(): return Folder( selection_type="RANDOM", label="OPENING SEQUENCES", children=[ Input( GenericGrammar.create_hello(), children=[ GreetingAction.create_increment(), If(elements=[ Condition(name=NAME_TERMINAL_EXCHANGE, operator="EQUAL_TO_YES"), Goto(ref="output_welcome_back") ]), If(match_type="ANY", elements=[ Condition(name=NAME_GREETING_COUNT, operator="GREATER_THEN", root_text="2"), Condition(name=NAME_SMALL_TALK_COUNT, operator="GREATER_THEN", root_text="2"), Goto(ref="output_end_of_small_talk") ]), Output( Prompt(items=["Hello.", "Hi.", "Hi there."]), children=[ Output( _id="output_how_are_you", prompt=Prompt(items=[ "How are you today?", "How are you feeling today?", "How is it going?" ]), children=[ GetUserInput(children=[ Input(Grammar(watson_items=[ "Movies", "$ (STYLE)={Style_Preference}", "$ (COLOR)={Color_Preference}", "$ movies" ]), children=[ Goto( ref= "input_main_search_criteria" ) ]), Input( FeelingGrammar. create_not_so_good(), children=[ Goto( ref= "output_sorry_to_hear_that" ) ]), Input( FeelingGrammar. create_not_so_bad(), children=[ Goto(ref= "output_good_to_hear") ]), Input( FeelingGrammar. create_feeling_fine(), children=[ Output( _id= "output_good_to_hear", prompt=Prompt(items=[ "Good to hear! <br> <br>" ]), children=[ HowCanHelpYouOutput .goto() ]) ]), Input( FeelingGrammar. create_feeling_great(), children=[ Output(Prompt(items=[ "Fantastic! So glad to hear it. <br> <br>" ]), children=[ HowCanHelpYouOutput .goto() ]) ]), Input( FeelingGrammar. create_feeling_bad(), children=[ Output( _id= "output_sorry_to_hear_that", prompt=Prompt(items=[ "I'm sorry to hear that. <br> <br>" ]), children=[ HowCanHelpYouOutput .goto() ]) ]), PreliminarySequencesSearch.goto() ]) ]) ]) ]), Input( Grammar(watson_items=[ "How are you", "$ how have you been doing", "$ how is it going", "$ how are you", "$ what's shaking", "$ what's up" ]), children=[ GreetingAction.create_increment(), If(elements=[ Condition(name=NAME_GREETING_COUNT, operator="GREATER_THEN", root_text="2"), Condition(name=NAME_SMALL_TALK_COUNT, operator="GREATER_THEN", root_text="2"), Output( _id="output_end_of_small_talk", prompt=Prompt(items=[ "You're very polite, but don't you want me to look up movies for you?" ]), children=[ GetUserInput(children=[ Input(GenericGrammar.yes(), children=[ StylePreferenceProfileCheck. goto() ]), Input(GenericGrammar.no(), children=[ GreetingAction.reset(), Output( GenericPrompt.ok_fine()) ]), Input(GenericGrammar.ok(), children=[ StylePreferenceProfileCheck. goto() ]), PreliminarySequencesSearch.goto() ]) ]) ]), Input(Grammar(watson_items=[ "Fine", "$ excellent", "$ outstanding", "$ fabulous", "$ terrific", "$ not good", "$ not so good", "$ not well", "$ not so well", "$ terrible", "$ awful", "$ worst", "$ bored", "$ sad", "$ good", "$ well", "$ fine", "$ thirsty", "$ hungry", "$ tired" ]), children=[ Output(Prompt( items=["I am doing well, thanks."]), children=[HowCanHelpYouOutput.goto()]) ]), Output(Prompt(items=["I am doing well, thanks."]), children=[Goto(ref="output_how_are_you")]) ]), Input( Grammar(watson_items=[ "Nice to meet you", "$ nice to meet you", "$ pleasure to meet you", "$ make your acquaintance" ]), children=[ If(elements=[ Condition(name="Greeting_Count", operator="GREATER_THEN", root_text="2"), Output(Prompt(items=[ "You're very polite, but don't you want me to look up movies for you?" ]), children=[ GetUserInput(children=[ Input( GenericGrammar.yes(), children=[ StylePreferenceProfileCheck. goto() ]), Input(GenericGrammar.no(), children=[ GreetingAction.reset(), Output(GenericPrompt. ok_fine()) ]), Input( GenericGrammar.ok(), children=[ StylePreferenceProfileCheck. goto() ]), PreliminarySequencesSearch.goto() ]) ]) ]), Output(Prompt( items=["Nice to meet you too, {User_Name}!"]), children=[HowCanHelpYouOutput.goto()]) ]) ])
def create(): from dialog.schema.factories.folder.sequences import SystemInitiatedSequences return Folder( selection_type="RANDOM", label="SMALL TALK SEQUENCES", children=[ SmallTalkAction.create_increment(), Input( Grammar(watson_items=[ "What is your name?", "$ your name", "$ you called", "$ they call you", "$ what can I call you" ]), children=[ SmallTalkConditions.too_much_small_talk_goto(), Output( Prompt(items=["My name is Jemboo."]), children=[ If(elements=[ UserNameConditions.is_blank(), Output( Prompt(items=["What's your name?"]), children=[ Goto( ref= "getUserInput_what_is_your_name" ) ]) ]), GetUserInput(children=[ Input(Grammar(watson_items=[ "Okay", "okay", "hi", "hi jemboo" ]), children=[ Goto(ref="output_what_is_name") ]), Input( Grammar( watson_items=[ "My name is", "$ my name", "$ call me", "$ I'm called", "$ I am called", "$ known as" ]), children=[ Goto(ref="input_user_knownas_name") ]), PreliminarySequencesSearch.goto() ]) ]) ]), Input( Grammar( watson_items=["Siri", "$ (VIRTUAL_AGENTS)={Topic}"]), children=[ TopicAction.set_to_value(), SmallTalkConditions.too_much_small_talk_goto(), Input( Grammar(watson_items=[ "is better", "$ better", "$ smarter" ]), children=[ Output(Prompt( items=["Now you're hurting my feelings."]), children=[ GetUserInput(children=[ Input(Grammar(watson_items=[ "Okay", "$ sorry" ]), children=[ SystemInitiatedSequences .goto() ]), PreliminarySequencesSearch.goto( ) ]) ]) ]) ]), Input( Grammar(watson_items=[ "Do you speak English", "$ speak English", "$ understand English", "$ know English", "$ get English" ]), children=[ SmallTalkConditions.too_much_small_talk_goto(), Output( Prompt(items=[ "I'm sorry, English is my second language. My native tongue is Binary. 01110011 01101111 01110010 01110010 01111001" ]), children=[ GetUserInput(children=[ Input(Grammar(watson_items=["haha", "ok"]), children= [SystemInitiatedSequences.goto()]), Input(Grammar(watson_items=[ "01101110 01110000", "01101110 01101111 00100000 01110000 01110010 01101111 01100010 01101100 01100101 01101101", "01101110 01110000", "01100100 01101111 01101110 00100111 01110100 00100000 01110111 01101111 01110010 01110010 01111001" ]), children=[ Output( Prompt( items=[ "haha, you're good!" ]), children=[ SystemInitiatedSequences. goto() ]) ]), PreliminarySequencesSearch.goto() ]) ]) ]) ])
from dialog.elements import Goto, Prompt, Output, GetUserInput, Folder from dialog.elements.default import Default from dialog.elements.search import Search from dialog.schema.factories.search import PreliminarySequencesSearch folder_how_can_i_help_sequences = Folder( _id="folder_how_can_i_help_you_sequences", children=[ PreliminarySequencesSearch.create(), Search(ref="folder_routing_sequences"), Search(_id="search_2414740", ref="folder_base_sequences"), Default(children=[ Output( is_insert_DNR_statement=True, prompt=Prompt(items=[ "I'm not sure what you mean. I can understand things like <i>Show me recent PG13-rated Action movies.</i>" ]) # , # children=[Goto(ref="##special_DNR_GET_USER_INPUT_NODE_ID")] ) ]) ]) class HowCanHelpYouInput: @staticmethod def goto(): return Goto(ref=HowCanHelpYouInput.__id()) @staticmethod def __id():
def create(): return GetUserInput( _id=StylePreferenceProfileCheckInput.__id(), children=[ Input( Grammar( watson_items=[ "What", "$ what", "$ which", "$ tell me" ] ), children=[ Input( Grammar( watson_items=[ "styles", "$ they", "$ ones", "$ choices", "$ options", "$ styles", "$ what else" ] ), children=[ Output( Prompt( items=[ "For example.... Boots, High heels, Sandals, Trainers or Flats <br> <br>"] ), children=[StylePreferenceProfileCheckInput.goto()] ) ] ) ] ), Input( Grammar( items=[ EntityGrammarItem(dynamic_field_assignment="Style_Preference", entity_id="STYLE") ], watson_items=[ "Style", "$ (Style)={Style_Preference}" ] ), children=[ CurrentIndexAction.set_to_zero(), PageAction.set_to_new(), SearchNowAction.set_to_no(), StylePreferenceAction.set_to_value(), Goto(ref="output_ok_do_search") ] ), # { # (0, "grammar"): { # "item": [ # "NC-17", # "$ NC-17" # ] # }, # (1, "output"): { # (0, "prompt"): { # "item": "I'm afraid I cannot look up NC-17-rated movies.", # "@selectionType": "RANDOM" # }, # (1, "goto"): StylePreferenceProfileCheckInput.goto() # } # }, Input( Grammar( watson_items=[ "No", "$ don't care", "$ don't know", "$ no preference", "$ no", "$ none", "$ all", "$ any", "$ anything", "$ whatever", "$ nothing specific", "$ don't have a preference" ] ), children=[ CurrentIndexAction.set_to_zero(), PageAction.set_to_new(), Goto(ref="output_2456875") ] ), Input( GenericGrammar.yes(), children=[ Output( Prompt(items=["What style?", "Please tell me the style you would prefer."]), children=[StylePreferenceProfileCheckInput.goto()] ) ] ), PreliminarySequencesSearch.goto() ] )
def create(): # Folder return Folder( label="SYSTEM INITIATED SEQUENCES", children=[ Output( _id=SystemInitiatedSequences.__id(), prompt=Prompt( items=["Is there anything else I can help you with?"]), children=[ PageAction.set_to_new(), Action(var_name="Current_Index", operator="SET_TO", text="0"), ColorPreferenceAction.set_to_blank(), # RecencyPreferenceAction.set_to_blank(), StylePreferenceAction.set_to_blank(), Action(var_name="Search_Now", operator="SET_TO_NO"), Action(var_name="Terminal_Exchange", operator="SET_TO_BLANK"), Action(var_name="Topic", operator="SET_TO_BLANK"), Action(var_name="ZIP_Code_Preference", operator="SET_TO_BLANK"), Action(var_name="Display_Trailer", operator="SET_TO_NO"), Action(var_name="Selected_Movie", operator="SET_TO_BLANK"), Action(var_name="Display_Movie_Details", operator="SET_TO_NO"), Action(var_name="Display_Reviews", operator="SET_TO_NO"), Action(var_name="Popularity_Score", operator="SET_TO", text="0.5"), GetUserInput(children=[ Input(GenericGrammar.yes(), children=[HowCanHelpYouOutput.goto()]), Input( GenericGrammar.no(), children=[ Output( prompt=GenericPrompt.ok(), children=[ Goto( ref= "output_did_find_what_looking_for" ) ]) ]), PreliminarySequencesSearch.goto() ]) ]), Output( _id="output_did_find_what_looking_for", prompt=Prompt(items=[ "Did you find what you were looking for, {User_Name}?" ]), children=[ GetUserInput(children=[ Input( GenericGrammar().yes(), children=[ RequestSuccessAction.set_to_yes(), Output( prompt=Prompt(items=["Great!"]), children=[ Output( _id="output_goodbye", prompt=Prompt(items=[ "Goodbye.<br> <br>" ]), children=[ TerminalExchangeAction. set_to_yes(), GreetingAction.reset(), GetUserInput(children=[ Input( Grammar(watson_items =[ "Goodbye", "$ goodbye" ]), children =[ Output( _id= "output_end_of_conversation", prompt= Prompt( items ="<i>Say anything to continue.</i>" ), children=[ GetUserInput(children=[ Output( _id ="output_welcome_back", prompt =Prompt( items =[ "Welcome back!" ] ), children =[ HowCanHelpYouOutput . goto( ) ] ) ]) ]), ]), HowCanHelpYouOutput. goto() ]) ]) ]) ]), Input( GenericGrammar.no(), children=[ RequestSuccessAction.set_to_no(), Output( prompt=Prompt( items=[ "Oh no. Do you want to try again?" ]), children=[ GetUserInput(children=[ Input( GenericGrammar.no(), children= [ TerminalExchangeAction. set_to_no(), Output( prompt =GenericPrompt.ok( ), children=[ Goto(ref= "output_goodbye" ) ]) ]), Input( GenericGrammar.yes(), children=[ Output(prompt=Prompt( items=[ "Okay. What can I do for you?" ]), children=[ Goto( "getUserInput_how_can_i_help_you" ) ]) ]) ]) ]) ]), PreliminarySequencesSearch.goto() ]) ]), Output( _id="output_too_much_small_talk", prompt=Prompt(items=[ "This is fun, but wouldn't you like to look up some movies?" ]), children=[ GetUserInput(children=[ Input( GenericGrammar.yes(), children=[StylePreferenceProfileCheck.goto()]), Input(GenericGrammar.no(), children=[ SmallTalkAction.set_to_zero(), Output(GenericPrompt.ok_fine()) ]), Input( GenericGrammar.ok(), children=[StylePreferenceProfileCheck.goto()]), PreliminarySequencesSearch.goto() ]) ]) ])
def what_is_your_name(): return Prompt(selection_type="RANDOM", items=["What can I call you?", "What's your name?"])
def ok(): return Prompt(items=["Okay."])
def create(): return Input( _id="input_main_search_criteria", grammar=Grammar(watson_items=[ "Movies", "$ (COLOR)={Color_Preference}", "$ (STYLE)={Style_Preference}", # "$ movies" ]), children=[ GreetingAction.reset(), SmallTalkAction.set_to_zero(), CurrentIndexAction.set_to_zero(), PageAction.set_to_new(), TopicAction.set_to_shoes(), ColorPreferenceAction.set_to_value(), StylePreferenceAction.set_to_value(), # DateTimeInput.create(), # CertificationPreferenceInput.create(), # FamilyFriendlyInput.create(), ColorPreferenceInput.create(StylePreferenceInput.goto()), StylePreferenceInput.create(Goto(ref="out_of_scope_topics")), # ZipcodeInput.create(), Input( _id="out_of_scope_topics", grammar=Grammar(watson_items=[ "out-of-scope movie topics", "$ (OTHER_MOVIE)={Topic}" ]), children=[ TopicAction.set_to_value(), Goto(ref="output_no_topic_lookup") ]), StylePreferenceProfileCheck.create(), # GenrePreferenceProfileCheck.create(), ColorPreferenceProfileCheck.create(), Output( _id="output_ok_do_search", prompt=GenericPrompt.ok(), children=[ Output( _id="output_search_now", prompt=Prompt(items=["Search_Now"]), children=[ Action( var_name="Last_Results", operator="SET_TO_NO"), Action( var_name="First_Results", operator="SET_TO_NO"), Action( var_name="Search_Now", operator="SET_TO_YES"), Action( var_name="First_Time", operator="SET_TO_NO"), Input( Grammar( watson_items=["UPDATE NUM_MOVIES"]), children=[ If(elements=[ ResultsCountConditions.equals_zero( ), Output(Prompt(items=[ "I'm afraid I found {%s} matching {Color_Preference} {Style_Preference}. Try changing your criteria." % NAME_RESULTS_COUNT ]), children=[ GetUserInput(children=[ Input( GenericGrammar. ok(), children=[ ColorPreferenceAction . set_to_blank( ), StylePreferenceAction . set_to_blank( ), StylePreferenceProfileCheck .goto(), RemoveColorInput .goto() ]), RemoveColorInput. goto() ]) ]) ]), If(elements=[ StyleConditions.is_blank(), ColorConditions.has_value(), Output(Prompt(items=[ "Good choice, {User_Name}! I found {%s} results for {Recency_Preference} {Color_Preference}-rated movies." % NAME_RESULTS_COUNT ]), children=[ AfterSearchResults.goto( ) ]) ]), If(elements=[ ColorConditions.is_blank(), StyleConditions.has_value(), Output(Prompt(items=[ "Good choice, {User_Name}! I found {%s} results for {Color_Preference} {Style_Preference} movies." % NAME_RESULTS_COUNT ]), children=[ AfterSearchResults.goto( ) ]) ]), If(elements=[ ColorConditions.is_blank(), StyleConditions.is_blank(), Output(Prompt(items=[ "I found {%s} results for ALL {Recency_Preference} movies." % NAME_RESULTS_COUNT ]), children=[ AfterSearchResults.goto( ) ]) ]), Output(Prompt(items=[ "Good choices, {User_Name}! I found {%s} results for {Color_Preference} {Style_Preference} movies." % NAME_RESULTS_COUNT ]), children=[ AfterSearchResults.create() ]) ]) ]) ]) ])