CoolFace
Apppublic

templates/http-server

sourceHugging Facemitupdated 2y agoView on Hugging Face
10likes
app.py80 linesDownload Raw Back to root
1import os2import json3import requests4from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer5from urllib.parse import parse_qs, urlparse6 7from inference import infer_t58from dataset import query_emotion9 10# https://huggingface.co/settings/tokens11# https://huggingface.co/spaces/{username}/{space}/settings12API_TOKEN = os.getenv("BIG_GAN_TOKEN")13 14 15class RequestHandler(SimpleHTTPRequestHandler):16    def do_GET(self):17        if self.path == "/":18            self.path = "index.html"19 20            return SimpleHTTPRequestHandler.do_GET(self)21 22        if self.path.startswith("/infer_biggan"):23            url = urlparse(self.path)24            query = parse_qs(url.query)25            input = query.get("input", None)[0]26 27            output = requests.request(28                "POST",29                "https://api-inference.huggingface.co/models/osanseviero/BigGAN-deep-128",30                headers={"Authorization": f"Bearer {API_TOKEN}"},31                data=json.dumps(input),32            )33 34            self.send_response(200)35            self.send_header("Content-Type", "application/json")36            self.end_headers()37 38            self.wfile.write(output.content)39 40            return SimpleHTTPRequestHandler41 42        elif self.path.startswith("/infer_t5"):43            url = urlparse(self.path)44            query = parse_qs(url.query)45            input = query.get("input", None)[0]46 47            output = infer_t5(input)48 49            self.send_response(200)50            self.send_header("Content-Type", "application/json")51            self.end_headers()52 53            self.wfile.write(json.dumps({"output": output}).encode("utf-8"))54 55            return SimpleHTTPRequestHandler56 57        elif self.path.startswith("/query_emotion"):58            url = urlparse(self.path)59            query = parse_qs(url.query)60            start = int(query.get("start", None)[0])61            end = int(query.get("end", None)[0])62 63            output = query_emotion(start, end)64 65            self.send_response(200)66            self.send_header("Content-Type", "application/json")67            self.end_headers()68 69            self.wfile.write(json.dumps({"output": output}).encode("utf-8"))70 71            return SimpleHTTPRequestHandler72 73        else:74            return SimpleHTTPRequestHandler.do_GET(self)75 76 77server = ThreadingHTTPServer(("", 7860), RequestHandler)78 79server.serve_forever()80