from sentence_transformers import SentenceTransformer from typing import Union, List, Dict class EndpointHandler: """ A handler class to summarize CVs or job vacancies using a pre-trained language model. """ def __init__(self, path: str = ""): """ Initializes the EndpointHandler with model and tokenizer. :param path: Optional path parameter, default is an empty string. """ self.sbert = SentenceTransformer( "jinaai/jina-embeddings-v3", trust_remote_code=True ) def __call__(self, data: Dict[str, Union[str, List[str]]]) -> List[str]: """ Summarizes the input CV(s) or job vacancies into bullet points. :param data: A dictionary with "inputs" and "type" keys. :return: A list of summarized strings. """ # Extract inputs and type texts = data.pop("inputs") return self.sbert.encode( texts, task="retrieval.query" ).tolist()