113-gliner-multi / handler.py
bhaskars113's picture
Create handler.py
25a79b4 verified
import torch
import subprocess
import sys
class EndpointHandler:
def __init__(self, path=""):
# Ensure gliner is installed first
try:
import gliner
except ImportError:
subprocess.check_call([sys.executable, "-m", "pip", "install", "gliner==0.2.8"])
import gliner
from gliner import GLiNER
self.model = GLiNER.from_pretrained(path)
self.model = self.model.to("cuda")
self.model.eval()
def __call__(self, data):
if isinstance(data, dict) and "inputs" in data:
data = data["inputs"]
text = data.get("text", "")
labels = data.get("labels", [])
if not text or not labels:
return {"error": "Please provide 'text' and 'labels'"}
entities = self.model.predict_entities(text, labels)
return {"entities": entities}