from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline import torch class EndpointHandler: def __init__(self, path=""): self.tokenizer = AutoTokenizer.from_pretrained(path, use_fast=False) self.model = AutoModelForCausalLM.from_pretrained( path, torch_dtype=torch.float16, device_map="auto" ) self.pipe = pipeline("text-generation", model=self.model, tokenizer=self.tokenizer) def __call__(self, data): messages = data.get("inputs", {}).get("messages", []) if not messages: messages = [{"role": "user", "content": str(data.get("inputs", ""))}] text = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) out = self.pipe(text, max_new_tokens=data.get("parameters", {}).get("max_tokens", 2048), temperature=data.get("parameters", {}).get("temperature", 0.3), do_sample=True) return {"choices": [{"message": {"role": "assistant", "content": out[0]["generated_text"][len(text):]}}]}