templates/http-server
10
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 