from patch_intent_cls import recognizer_bge, quick_answer_q_a_v2 if __name__ == '__main__': # mode = 'query' # # while True: # print('1.查询模式;2.测试模式;') # query = input("请输入模式:\n") # print('切换到模式:', query) # if query == 'q' or query == 'Q': # print("退出!") # break # if query == '1': # 查询模式 # mode = 'query' # while True: # query = input("\n查询模式,请输入查询语句:\n") # if query == "q": # print("退出!") # break # recognizer_bge.pick_out(query, 10) # if query == '2': # mode = 'test' # while True: # query = input("\n测试模式,请输入测试语句:\n") # if query == "q": # print("退出!") # break # recognizer.pick_out(query, len(recognizer.template_meta_list)) question = input("请输入查询语句:") results = {} # 存放意图识别结果 user_intent_conf, user_intent = recognizer_bge.pick_out(question, top_k=4) target_intent = user_intent[0] # 目标意图 target_intent_conf = user_intent_conf[0] # 目标意图置信度 candidate_intent = user_intent[1:] # 候选意图 candidate_intent_conf = user_intent_conf[1:] # 候选意图置信度 # 单独处理有奖问答分支 if target_intent.get('parent') == 5 and target_intent.get('child') == 99: results['intent'] = "5" # 大类 results['metric_type'] = "99" # 小类 results['confidence'] = str(target_intent_conf) # 置信度 results['status'] = "无" results['metric'] = quick_answer_q_a_v2(question) # 主要更新metric else: results['intent'] = str(target_intent.get('parent')) # 大类 results['metric_type'] = str(target_intent.get('child')) # 小类 results['confidence'] = str(target_intent_conf) # 置信度 results['metric'] = target_intent.get('alias') results['status'] = "无" # 判断意图可信程度,低于阈值就直接归到其他类 if target_intent_conf < 0.1: results['intent'] = "6" # 其他问题大类为6 results['metric_type'] = "9999" # 其他问题小类为9999 results['confidence'] = str(1 - target_intent_conf) # 置信度 results['metric'] = "其他问题" results['status'] = "无"