File size: 1,003 Bytes
345a2f0
 
cc0dbd1
345a2f0
 
 
6cf0f91
345a2f0
3550d34
 
 
 
 
345a2f0
 
 
 
 
 
 
 
 
 
 
d286efc
2e2e642
 
5761c76
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from typing import Dict, List, Any
from InstructorEmbedding import INSTRUCTOR
import torch

class EndpointHandler():
    def __init__(self, path=""):
        model = INSTRUCTOR(path)
        self.model = model
        if torch.cuda.is_available():
            self.device = torch.device("cuda")
            self.model.to(self.device)
        else:
            self.device = torch.device("cpu")
    def __call__(self, data: Dict[str, Any]) -> List[Dict[str, Any]]:
        """
       data args:
            inputs (:obj: `str`)
            date (:obj: `str`)
      Return:
            A :obj:`list` | `dict`: will be serialized and returned
        """
        # get inputs
        instruction = data.pop("instruction",data)
        text = data.pop("text", data)
        inputs = [[s, instruction] for s in text]
        if (self.device):
            inputs = torch.tensor(inputs).to(self.device)  # Move inputs to the GPU
        embeddings = self.model.encode(inputs)
        return embeddings.tolist()