eu-stock-forecasting / handler.py
shalev396's picture
Add eu-stock-forecasting model: weights, model.py, Inference Endpoint handler, card
1042da0 unverified
Raw History Blame Contribute Delete
1.05 kB
"""Hugging Face Inference Endpoints entry point — deploy this repo as a CPU API.
Request body: {"inputs": {"cutoff": "1997-10-01", "horizon": 30, "index": "DAX"}}
(also accepted: {"inputs": "1997-10-01", "parameters": {"horizon": 30, "index": "DAX"}}
or {"inputs": ["1997-10-01", 30, "DAX"]}). Response: the `Predictor.predict` JSON dict.
"""
import sys
from pathlib import Path
HERE = Path(__file__).resolve().parent
sys.path.insert(0, str(HERE))
import model as M # noqa: E402
class EndpointHandler:
def __init__(self, path: str = ""):
self.predictor = M.load(path or HERE, "cuda" if M.cuda_available() else "cpu")
def __call__(self, data: dict):
inputs = data.pop("inputs", data)
parameters = data.pop("parameters", None) or {}
if isinstance(inputs, dict):
return self.predictor.predict(**inputs, **parameters)
if isinstance(inputs, (list, tuple)):
return self.predictor.predict(*inputs, **parameters)
return self.predictor.predict(inputs, **parameters)