def test_eva_robot(): robot = EvaRobot(TEST_PROJECT, TEST_PROJECT, TEST_PROJECT) robot.train() rst = robot.process_question("帮我查一下美国利率新闻") # todo query answer json in evarobot target = { 'intent': 'search', 'sid': 0, 'response_id': 'search', 'nlu': { 'intent': 'search', 'slots': { 'country': 'United States', 'category': 'Interest Rate' } } } assert same_dict(rst, target) rst = robot.process_question("帮我查一下伊朗的新闻") from pprint import pprint pprint(rst) rst = robot.process_question("分析一下美元和黄金的相关性") pprint(rst) rst = robot.process_question("2003年") rst = robot.process_question("二零零三年") pprint(rst)
def test_robot(): robot0 = NLURobot.get_robot(TEST_PROJECT) robot = NLURobot.get_robot(TEST_PROJECT) assert id(robot0) == id(robot) robot = NLURobot.reset_robot(TEST_PROJECT) assert id(robot) != id(robot0) robot0 = NLURobot.get_robot(TEST_PROJECT) assert id(robot0) == id(robot) robot0.train() context = { "intent": None, "agents": [("weather.query", "weather.query", "node4")] } rst = robot0.predict(context, "帮我查一下北京今天的天气") target = { 'question': '帮我查一下北京今天的天气', 'intent': 'weather.query', 'confidence': 1, 'entities': { 'date': '今天', 'city': '北京' }, 'target_entities': ['meteorology', 'date', 'city'], 'node_id': 'node4' } assert same_dict(rst, target)
def test_entity_recognizer(): recognizer = EntityRecognizer.get_entity_recognizer(file_io) result = recognizer.recognize("北京在哪里", ["city"]) target = {'city': '北京'} assert (result == target) result = recognizer.recognize("帝都在哪里", ["city"]) assert (result == target) result = recognizer.recognize("福州在哪里", ["city"]) assert (result == {'city': '福州'}) result = recognizer.recognize("深圳在哪里", ["city"]) assert (result == {}) result = recognizer.recognize("深圳会下雨吗", ["city", "meteorology"]) assert (same_dict(result, {"meteorology": "雨"})) result = recognizer.recognize("深圳会下雨吗", ["@sys.city", "meteorology"]) assert (same_dict(result, {"meteorology": "雨", "@sys.city": "深圳"})) result = recognizer.recognize("深圳今天会下雨吗", ["@sys.date"]) assert result == {"@sys.date": "今天"}
def test_dm_file_io(): tree = file_io.get_dict_tree() assert(len(tree["children"]) == 7) target = { "data": { "id": "root", "tag": "root", "entrance": False, "response_id": "root", "timeout": "5", "type": "TYPE_MIX" } } assert same_dict(tree, target, "children")
def test_eva_robot(): robot = EvaRobot(TEST_PROJECT, TEST_PROJECT, TEST_PROJECT) robot.train() rst = robot.process_question("帮我查一下北京今天的天气") # todo query answer json in evarobot target = { 'intent': 'weather.query', 'nlu': { 'intent': 'weather.query', 'slots': { 'city': '北京', 'date': '今天' } }, 'response_id': 'result', 'sid': 0 } assert same_dict(rst, target)
def test_en_robot(): robot = EvaRobot(TEST_PROJECT, TEST_PROJECT, TEST_PROJECT) robot.train() rst = robot.process_question("show me American interest rate") # todo query answer json in evarobot target = { 'intent': 'search', 'sid': 0, 'response_id': 'search', 'nlu': { 'intent': 'search', 'slots': { 'country': 'United States', 'category': 'Interest Rate' } } } assert same_dict(rst, target)
def test_file_io(): sensitive_words = file_io.get_sensitive_words() assert (set(sensitive_words) == {"共产党", "毛泽东", "法轮功"}) not_nonsense_words = file_io.get_not_nonsense_words() assert (set(not_nonsense_words) == {"你好", "晚安"}) rst = file_io.get_entities_with_value() entities = rst["entities"] target = { 'city': { '北京': ['帝都', '北京'], '上海': ['魔都', '上海'], '福州': ['福州'] }, '@sys.city': { '北京': ['帝都', '北京'], '上海': ['魔都', '上海'], '深圳': ['鹏城', '深圳'] }, 'meteorology': { '晴': ['晴'], '雨': ['雨'] } } assert same_dict(target, entities) scripts = rst["scripts"] sys_script_path = os.path.join(PROJECT_DIR, "tests", "data", "projects", "sys", "entity", "date.py") script_path = os.path.join(PROJECT_DIR, "tests", "data", "projects", "project_cn_test", "entity", "date.py") with open(sys_script_path, "r") as file: sys_script = file.read() with open(script_path, "r") as file: script = file.read() assert scripts == { "@sys.date": sys_script, "date": script, } rst = file_io.get_label_data() target = { LabeledData("weather.query", "帮我查一下北京今天的天气"), LabeledData("weather.query", "深圳明天会下雨吗"), LabeledData("weather.query", "今天什么天气"), LabeledData("airline.query", "帮我查一下从北京到上海的航班"), LabeledData("airline.query", "帮我看看去北京的航班有哪些") } assert set(rst) == target rst = file_io.get_all_intent_entities() target = { 'airline.query': { 'slots': { 'from_city': 'city', 'to_city': 'city' } }, 'weather.query': { 'slots': { 'city': '@sys.city', 'date': '@sys.date', 'meteorology': 'meteorology' } } } assert same_dict(rst, target)