""" @author: luojunhui """ from typing import List from pydantic import BaseModel from similarities import BertSimilarity import numpy as np import torch import logging class NLPServer(object): """ nlp_server """ def __init__(self, params): """ :param params: """ self.model = None self.function = None self.text_02 = None self.text_01 = None self.params = params def check_params(self): """ 参数校验 :return: """ try: self.text_01 = self.params['text_01'] self.text_02 = self.params['text_02'] self.function = self.params['function'] self.model = self.params['model'] return None except Exception as e: error_info = { "error": "params error", "detail": str(e) } return error_info def choose_function(self): """ :return: """ match self.function: case "similarities": return case "similarities_cross": return case "similarities_cross_max": return case "similarities_cross_avg": return case "similarities_cross_mean": return def base_similarity(self): """ base similarity :return: """ try: res = { 'score_list': [] } return res except Exception as e: return {"error": str(e)} def deal(self): """ deal function :return: """ return self.check_params if self.check_params else self.choose_function