from transformers import AutoTokenizer, AutoModelForCausalLM import torch class EndpointHandler: def __init__(self, path=""): self.tokenizer = AutoTokenizer.from_pretrained(path) self.model = AutoModelForCausalLM.from_pretrained( path, torch_dtype=torch.float16, device_map="auto" ) def __call__(self, data): inputs = data.pop("inputs", data) params = data.pop("parameters", {}) encoded = self.tokenizer(inputs, return_tensors="pt").to(self.model.device) output = self.model.generate( **encoded, max_new_tokens=params.get("max_new_tokens", 600), temperature=params.get("temperature", 0.1), repetition_penalty=params.get("repetition_penalty", 1.1), do_sample=True, ) return self.tokenizer.decode(output[0][encoded["input_ids"].shape[1]:], skip_special_tokens=True)