functions.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. """
  2. @author: luojunhui
  3. """
  4. import asyncio
  5. from .model_init import models
  6. class ParamProcess(object):
  7. """
  8. 处理 params, 继承 models
  9. """
  10. def __init__(self):
  11. self.model_v1 = models.model_v1
  12. self.model_v2 = models.model_v2
  13. self.layer_encoder = models.label_encoder
  14. async def predict_score(self, version, features):
  15. """
  16. 预测
  17. :param version: 模型版本
  18. :param features: 视频被 label_encoder 之后的features
  19. :return: score: 返回的分数
  20. """
  21. match version:
  22. case "v1":
  23. return await self.model_v1.predict(features)
  24. case "v2":
  25. return await self.model_v2.predict(features)
  26. async def process_label(self, params):
  27. """
  28. 处理类别 features 和 float features
  29. :param params: 接收到的参数
  30. :return:
  31. """
  32. version = params['version']
  33. features = params['features']
  34. match version:
  35. case "v1":
  36. # 全部转化为类别
  37. print("all to string cate")
  38. # features = []
  39. return version, features
  40. case "v2":
  41. print("all to float cate")
  42. # features = []
  43. return version, features
  44. async def process(self, params):
  45. """
  46. 处理
  47. :param params:
  48. :return:
  49. """
  50. version, features = await self.process_label(params)
  51. print(version, features)
  52. # return await self.predict_score(version, features)