예제 #1
0
def test_swap_intent_with2():
    swap_rules = InputValidator(
        InputValidator._load_yaml(VALIDATOR_RULES_YAML)['intent_substitution'])
    # make sure intent not swapped after another action than the one specified in the rule
    parse_data = {"intent": {"name": "whatever", "confidence": 1.0}}
    Rules._swap_intent(parse_data, None, swap_rules.rules[1])
    assert parse_data["intent"]["name"] == "whatever"
예제 #2
0
def test_swap_intent_with1():
    swap_rules = InputValidator(
        InputValidator._load_yaml(VALIDATOR_RULES_YAML)['intent_substitution'])
    # make sure intent swapped
    parse_data = {"intent": {"name": "chitchat.i_am_angry", "confidence": 1.0}}
    Rules._swap_intent(parse_data, None, swap_rules.rules[1])
    assert parse_data["intent"]["name"] == "request.handover"
예제 #3
0
def test_swap_intent_after1():
    swap_rules = InputValidator(
        InputValidator._load_yaml(VALIDATOR_RULES_YAML)['intent_substitution'])
    # make sure intent swapped
    parse_data = {"intent": {"name": "whatever", "confidence": 1.0}}
    Rules._swap_intent(parse_data, "utter_something", swap_rules.rules[0])
    assert parse_data["intent"]["name"] == "intent_something"
예제 #4
0
def test_swap_intent_with3():
    swap_rules = InputValidator(
        InputValidator._load_yaml(VALIDATOR_RULES_YAML)['intent_substitution'])
    # make sure intent is swapped and entity is added
    parse_data = {"intent": {"name": "chitchat.bye", "confidence": 1.0}}
    Rules._swap_intent(parse_data, None, swap_rules.rules[2])
    assert parse_data["intent"]["name"] == "chitchat"
    assert parse_data["entities"][0]["entity"] == "intent"
    assert parse_data["entities"][0]["value"] == "chitchat.bye"
예제 #5
0
 def get_rules(rules_source):
     if isinstance(rules_source, EndpointConfig):
         return Rules.load_from_remote(rules_source)
     elif isinstance(rules_source, str):
         return Rules.load_from_file(rules_source)
     elif rules_source is not None:
         raise ValueError(
             'Rules must be either a path to a yaml file, or an endpoint of which the GET method '
             'returns rules in a JSON format')
     else:
         return None
예제 #6
0
def test_swap_intent_with4():
    swap_rules = InputValidator(
        InputValidator._load_yaml(VALIDATOR_RULES_YAML)['intent_substitution'])
    # just checking regex is ok
    parse_data = {
        "intent": {
            "name": "chitchat.this_is_frustrating",
            "confidence": 1.0
        }
    }
    Rules._swap_intent(parse_data, None, swap_rules.rules[2])
    assert parse_data["intent"]["name"] == "chitchat.this_is_frustrating"
예제 #7
0
def test_swap_intent_after2():
    swap_rules = InputValidator(
        InputValidator._load_yaml(VALIDATOR_RULES_YAML)['intent_substitution'])
    # make sure intent is not swapped when in unless list
    parse_data = {
        "intent": {
            "name": "chitchat.this_is_frustrating",
            "confidence": 1.0
        }
    }
    Rules._swap_intent(parse_data, "utter_something", swap_rules.rules[0])
    assert parse_data["intent"]["name"] == "chitchat.this_is_frustrating"