|
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. |
|
""" |
|
|
|
|
|
texts = data.pop("inputs") |
|
return self.sbert.encode( |
|
texts, |
|
task="retrieval.query" |
|
).tolist() |
|
|