def test_dialogue_from_parameters(): domain = Domain.load(DEFAULT_DOMAIN_PATH_WITH_SLOTS_AND_NO_ACTIONS) filename = "data/test_dialogues/default.json" tracker = tracker_from_dialogue_file(filename, domain) serialised_dialogue = InMemoryTrackerStore.serialise_tracker(tracker) deserialised_dialogue = Dialogue.from_parameters(json.loads(serialised_dialogue)) assert tracker.as_dialogue().as_dict() == deserialised_dialogue.as_dict()
def test_dialogue_from_parameters(domain: Domain): filename = "data/test_dialogues/default.json" tracker = tracker_from_dialogue_file(filename, domain) serialised_dialogue = InMemoryTrackerStore.serialise_tracker(tracker) deserialised_dialogue = Dialogue.from_parameters( json.loads(serialised_dialogue)) assert tracker.as_dialogue().as_dict() == deserialised_dialogue.as_dict()
def test_tracker_store(store, pair): filename, domainpath = pair domain = Domain.load(domainpath) tracker = tracker_from_dialogue_file(filename, domain) store.save(tracker) restored = store.retrieve(tracker.sender_id) assert restored == tracker
def test_inmemory_tracker_store(pair): filename, domainpath = pair domain = Domain.load(domainpath) tracker = tracker_from_dialogue_file(filename, domain) tracker_store = InMemoryTrackerStore(domain) tracker_store.save(tracker) restored = tracker_store.retrieve(tracker.sender_id) assert restored == tracker
def test_dialogue_from_parameters(): domain = Domain.load("examples/restaurantbot/domain.yml") filename = "data/test_dialogues/restaurantbot.json" tracker = tracker_from_dialogue_file(filename, domain) serialised_dialogue = InMemoryTrackerStore.serialise_tracker(tracker) deserialised_dialogue = Dialogue.from_parameters( json.loads(serialised_dialogue)) assert tracker.as_dialogue().as_dict() == deserialised_dialogue.as_dict()
def test_featurize_trackers_with_max_history_tracker_featurizer( moodbot_domain: Domain): state_featurizer = SingleStateFeaturizer() tracker_featurizer = MaxHistoryTrackerFeaturizer(state_featurizer) tracker = tracker_from_dialogue_file("data/test_dialogues/moodbot.json", moodbot_domain) state_features, labels, entity_tags = tracker_featurizer.featurize_trackers( [tracker], moodbot_domain, RegexInterpreter()) assert state_features is not None assert len(state_features) == 7 assert labels is not None assert len(labels) == 7 # moodbot doesn't contain e2e entities assert not any([any(turn_tags) for turn_tags in entity_tags])
async def test_tracker_write_to_story(tmp_path: Path, moodbot_domain: Domain): tracker = tracker_from_dialogue_file( "data/test_dialogues/moodbot.json", moodbot_domain ) p = tmp_path / "export.md" tracker.export_stories_to_file(str(p)) trackers = await training.load_data( str(p), moodbot_domain, use_story_concatenation=False, tracker_limit=1000, remove_duplicates=False, ) assert len(trackers) == 1 recovered = trackers[0] assert len(recovered.events) == 11 assert recovered.events[4].type_name == "user" assert recovered.events[4].intent == {"confidence": 1.0, "name": "mood_unhappy"}
async def test_tracker_write_to_story(tmpdir, moodbot_domain): tracker = tracker_from_dialogue_file("data/test_dialogues/moodbot.json", moodbot_domain) p = tmpdir.join("export.md") tracker.export_stories_to_file(p.strpath) trackers = await training.load_data(p.strpath, moodbot_domain, use_story_concatenation=False, tracker_limit=1000, remove_duplicates=False) assert len(trackers) == 1 recovered = trackers[0] assert len(recovered.events) == 11 assert recovered.events[4].type_name == "user" assert recovered.events[4].intent == { 'confidence': 1.0, 'name': 'mood_unhappy' }
def test_tracker_default(domain: Domain): filename = "data/test_dialogues/default.json" tracker = tracker_from_dialogue_file(filename, domain) assert tracker.get_slot("name") == "Peter" assert tracker.get_slot("price") is None # slot doesn't exist!
def test_dialogue_serialisation(filename, domain: Domain): dialogue_json = rasa.shared.utils.io.read_file(filename) restored = json.loads(dialogue_json) tracker = tracker_from_dialogue_file(filename, domain) en_de_coded = json.loads(jsonpickle.encode(tracker.as_dialogue())) assert restored == en_de_coded
def test_tracker_default(): domain = Domain.load(DEFAULT_DOMAIN_PATH_WITH_SLOTS_AND_NO_ACTIONS) filename = "data/test_dialogues/default.json" tracker = tracker_from_dialogue_file(filename, domain) assert tracker.get_slot("name") == "Peter" assert tracker.get_slot("price") is None # slot doesn't exist!
def test_tracker_restaurant(): domain = Domain.load("examples/restaurantbot/domain.yml") filename = "data/test_dialogues/restaurantbot.json" tracker = tracker_from_dialogue_file(filename, domain) assert tracker.get_slot("price") == "lo" assert tracker.get_slot("name") is None # slot doesn't exist!
def test_dialogue_serialisation(filename): dialogue_json = utils.read_file(filename) restored = json.loads(dialogue_json) tracker = tracker_from_dialogue_file(filename) en_de_coded = json.loads(jsonpickle.encode(tracker.as_dialogue())) assert restored == en_de_coded