def test_preprocess_selector_multiple_retrieval_intents(): # use some available data training_data = rasa.shared.nlu.training_data.loading.load_data( "data/examples/rasa/demo-rasa.yml" ) training_data_responses = rasa.shared.nlu.training_data.loading.load_data( "data/examples/rasa/demo-rasa-responses.yml" ) training_data_extra_intent = TrainingData( [ Message.build( text="Is it possible to detect the version?", intent="faq/q1" ), Message.build(text="How can I get a new virtual env", intent="faq/q2"), ] ) training_data = training_data.merge(training_data_responses).merge( training_data_extra_intent ) response_selector = ResponseSelector() response_selector.preprocess_train_data(training_data) assert sorted(response_selector.all_retrieval_intents) == ["chitchat", "faq"]
def test_resolve_intent_response_key_from_label( predicted_label, train_on_text, resolved_intent_response_key ): # use data that include some responses training_data = rasa.shared.nlu.training_data.loading.load_data( "data/examples/rasa/demo-rasa.yml" ) training_data_responses = rasa.shared.nlu.training_data.loading.load_data( "data/examples/rasa/demo-rasa-responses.yml" ) training_data = training_data.merge(training_data_responses) response_selector = ResponseSelector( component_config={"use_text_as_label": train_on_text} ) response_selector.preprocess_train_data(training_data) label_intent_response_key = response_selector._resolve_intent_response_key( {"id": hash(predicted_label), "name": predicted_label} ) assert resolved_intent_response_key == label_intent_response_key assert ( response_selector.responses[ util.intent_response_key_to_template_key(label_intent_response_key) ] == training_data.responses[ util.intent_response_key_to_template_key(resolved_intent_response_key) ] )
def test_ground_truth_for_training(use_text_as_label, label_values): # use data that include some responses training_data = load_data("data/examples/rasa/demo-rasa.md") training_data_responses = load_data( "data/examples/rasa/demo-rasa-responses.md") training_data = training_data.merge(training_data_responses) response_selector = ResponseSelector( component_config={"use_text_as_label": use_text_as_label}) response_selector.preprocess_train_data(training_data) assert response_selector.responses == training_data.responses assert (sorted(list( response_selector.index_label_id_mapping.values())) == label_values)