main.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from patch_intent_cls import recognizer_bge, quick_answer_q_a_v2
  2. if __name__ == '__main__':
  3. # mode = 'query' #
  4. # while True:
  5. # print('1.查询模式;2.测试模式;')
  6. # query = input("请输入模式:\n")
  7. # print('切换到模式:', query)
  8. # if query == 'q' or query == 'Q':
  9. # print("退出!")
  10. # break
  11. # if query == '1': # 查询模式
  12. # mode = 'query'
  13. # while True:
  14. # query = input("\n查询模式,请输入查询语句:\n")
  15. # if query == "q":
  16. # print("退出!")
  17. # break
  18. # recognizer_bge.pick_out(query, 10)
  19. # if query == '2':
  20. # mode = 'test'
  21. # while True:
  22. # query = input("\n测试模式,请输入测试语句:\n")
  23. # if query == "q":
  24. # print("退出!")
  25. # break
  26. # recognizer.pick_out(query, len(recognizer.template_meta_list))
  27. question = input("请输入查询语句:")
  28. results = {} # 存放意图识别结果
  29. user_intent_conf, user_intent = recognizer_bge.pick_out(question, top_k=4)
  30. target_intent = user_intent[0] # 目标意图
  31. target_intent_conf = user_intent_conf[0] # 目标意图置信度
  32. candidate_intent = user_intent[1:] # 候选意图
  33. candidate_intent_conf = user_intent_conf[1:] # 候选意图置信度
  34. # 单独处理有奖问答分支
  35. if target_intent.get('parent') == 5 and target_intent.get('child') == 99:
  36. results['intent'] = "5" # 大类
  37. results['metric_type'] = "99" # 小类
  38. results['confidence'] = str(target_intent_conf) # 置信度
  39. results['status'] = "无"
  40. results['metric'] = quick_answer_q_a_v2(question) # 主要更新metric
  41. else:
  42. results['intent'] = str(target_intent.get('parent')) # 大类
  43. results['metric_type'] = str(target_intent.get('child')) # 小类
  44. results['confidence'] = str(target_intent_conf) # 置信度
  45. results['metric'] = target_intent.get('alias')
  46. results['status'] = "无"
  47. # 判断意图可信程度,低于阈值就直接归到其他类
  48. if target_intent_conf < 0.1:
  49. results['intent'] = "6" # 其他问题大类为6
  50. results['metric_type'] = "9999" # 其他问题小类为9999
  51. results['confidence'] = str(1 - target_intent_conf) # 置信度
  52. results['metric'] = "其他问题"
  53. results['status'] = "无"