def test_load_from_path_all_sccenario(self): processor = MongoProcessor() processor.save_from_path("tests/testing_data/all", "all", "testUser") training_data = processor.load_nlu("all") assert isinstance(training_data, TrainingData) assert training_data.training_examples.__len__() == 283 assert training_data.entity_synonyms.__len__() == 3 assert training_data.regex_features.__len__() == 5 assert training_data.lookup_tables.__len__() == 1 story_graph = processor.load_stories("all") assert isinstance(story_graph, StoryGraph) == True assert story_graph.story_steps.__len__() == 13 domain = processor.load_domain("all") assert isinstance(domain, Domain) assert domain.slots.__len__() == 8 assert domain.templates.keys().__len__() == 21 assert domain.entities.__len__() == 7 assert domain.form_names.__len__() == 2 assert domain.user_actions.__len__() == 32 assert domain.intents.__len__() == 22 assert not Utility.check_empty_string( domain.templates["utter_cheer_up"][0]["image"] ) assert domain.templates["utter_did_that_help"][0]["buttons"].__len__() == 2 assert domain.templates["utter_offer_help"][0]["custom"] assert domain.slots[0].type_name == "unfeaturized"
def train_model_for_bot(bot: str): """ Trains the rasa model, using the data that is loaded onto Mongo, through the bot files """ processor = MongoProcessor() nlu = processor.load_nlu(bot) if not nlu.training_examples: raise AppException("Training data does not exists!") domain = processor.load_domain(bot) stories = processor.load_stories(bot) config = processor.load_config(bot) directory = Utility.save_files( nlu.nlu_as_markdown().encode(), domain.as_yaml().encode(), stories.as_story_string().encode(), yaml.dump(config).encode(), ) output = os.path.join(DEFAULT_MODELS_PATH, bot) model = train(domain=os.path.join(directory,DEFAULT_DOMAIN_PATH), config=os.path.join(directory,DEFAULT_CONFIG_PATH), training_files=os.path.join(directory,DEFAULT_DATA_PATH), output=output) Utility.delete_directory(directory) return model
def test_load_domain(self): processor = MongoProcessor() domain = processor.load_domain("tests") assert isinstance(domain, Domain) assert domain.slots.__len__() == 0 assert domain.templates.keys().__len__() == 6 assert domain.entities.__len__() == 0 assert domain.form_names.__len__() == 0 assert domain.user_actions.__len__() == 6 assert domain.intents.__len__() == 7