nlpServer.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. """
  2. @author: luojunhui
  3. """
  4. from applications.textSimilarity import NLPFunction
  5. class NLPServer(object):
  6. """
  7. nlp_server
  8. """
  9. def __init__(self, params, model, embedding_manager):
  10. """
  11. :param params:
  12. """
  13. self.data = None
  14. self.function = None
  15. self.params = params
  16. self.nlp = NLPFunction(model=model, embedding_manager=embedding_manager)
  17. def check_params(self):
  18. """
  19. 参数校验
  20. :return:
  21. """
  22. try:
  23. self.data = self.params['data']
  24. self.function = self.params['function']
  25. self.use_cache = self.params.get('use_cache', True)
  26. print("参数校验成功")
  27. return None
  28. except Exception as e:
  29. error_info = {
  30. "error": "params error",
  31. "detail": str(e)
  32. }
  33. print("参数校验失败")
  34. return error_info
  35. def schedule_function(self):
  36. """
  37. :return:
  38. """
  39. match self.function:
  40. case "similarities":
  41. return self.nlp.base_string_similarity(text_dict=self.data, use_cache=self.use_cache)
  42. case "similarities_cross":
  43. return self.nlp.base_list_similarity(pair_list_dict=self.data, use_cache=self.use_cache)
  44. case "similarities_cross_max":
  45. return self.nlp.max_cross_similarity(data=self.data)
  46. case "similarities_cross_avg":
  47. return self.nlp.avg_cross_similarity(data=self.data)
  48. case "similarities_cross_mean":
  49. return self.nlp.mean_cross_similarity(data=self.data)
  50. def deal(self):
  51. """
  52. deal function
  53. :return:
  54. """
  55. return self.check_params() if self.check_params() else self.schedule_function()