|
@@ -3,29 +3,58 @@
|
|
|
"""
|
|
|
import asyncio
|
|
|
|
|
|
-
|
|
|
from .model_init import models
|
|
|
|
|
|
|
|
|
-async def process_data(params):
|
|
|
+class ParamProcess(models):
|
|
|
"""
|
|
|
- 执行结果
|
|
|
- :param params:
|
|
|
- :return:
|
|
|
+ 处理 params, 继承 models
|
|
|
"""
|
|
|
- print("正在处理")
|
|
|
- flag = params['version']
|
|
|
- if flag == "v1":
|
|
|
- model = models.model_v1
|
|
|
- elif flag == "v2":
|
|
|
- model = models.model_v2
|
|
|
- else:
|
|
|
- return
|
|
|
- features = params['features']
|
|
|
- prediction = model.predict([features])
|
|
|
- print("处理完成")
|
|
|
- return {'prediction': prediction.tolist()}
|
|
|
-
|
|
|
-
|
|
|
+ def __init__(self):
|
|
|
+ self.model_v1 = models.model_v1
|
|
|
+ self.model_v2 = models.model_v2
|
|
|
+ self.layer_encoder = models.label_encoder
|
|
|
+
|
|
|
+ async def predict_score(self, version, features):
|
|
|
+ """
|
|
|
+ 预测
|
|
|
+ :param version: 模型版本
|
|
|
+ :param features: 视频被 label_encoder 之后的features
|
|
|
+ :return: score: 返回的分数
|
|
|
+ """
|
|
|
+ match version:
|
|
|
+ case "v1":
|
|
|
+ return await self.model_v1.predict(x)
|
|
|
+ case "v2":
|
|
|
+ return await self.model_v2.predict(x)
|
|
|
+
|
|
|
+ async def process_label(self, params):
|
|
|
+ """
|
|
|
+ 处理类别 features 和 float features
|
|
|
+ :param params: 接收到的参数
|
|
|
+ :return:
|
|
|
+ """
|
|
|
+ version = params['version']
|
|
|
+ features = params['features']
|
|
|
+ match version:
|
|
|
+ case "v1":
|
|
|
+ # 全部转化为类别
|
|
|
+ print("all to string cate")
|
|
|
+ # features = []
|
|
|
+ return version, features
|
|
|
+ case "v2":
|
|
|
+ print("all to float cate")
|
|
|
+ # features = []
|
|
|
+ return version, features
|
|
|
+
|
|
|
+ async def process(self, params):
|
|
|
+ """
|
|
|
+ 处理
|
|
|
+ :param params:
|
|
|
+ :return:
|
|
|
+ """
|
|
|
+ version, features = await self.process_label(params)
|
|
|
+ print(version, features)
|
|
|
+ return await self.process_score(version, features)
|
|
|
|
|
|
|