File size: 955 Bytes
30b5007
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
"""Hugging Face Inference Endpoints entry point — deploy this repo as a CPU/GPU API.

Request body:
    {"inputs": ["basket_add_detail", "saw_checkout"]}                        # list of active flags
    {"inputs": {"saw_checkout": 1, "sign_in": 1}, "parameters": {"model": "pytorch_mlp"}}
    {"inputs": [{"saw_checkout": 1}, {"saw_homepage": 1}]}                    # several sessions
Response: {"buy": p, "no_buy": 1 - p} (a list of them for several sessions).
"""
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 {}
        return self.predictor.predict(inputs, **parameters)