http-server / app.py
Ron Au
Initial Commit
5264665
raw
history blame
2.39 kB
import os
import json
import requests
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
from urllib.parse import parse_qs, urlparse
from inference import infer_t5
from dataset import query_emotion
# https://huggingface.co/settings/tokens
# https://huggingface.co/spaces/{username}/{space}/settings
API_TOKEN = os.getenv("BIG_GAN_TOKEN")
class RequestHandler(SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == "/":
self.path = "index.html"
return SimpleHTTPRequestHandler.do_GET(self)
if self.path.startswith("/infer_biggan"):
url = urlparse(self.path)
query = parse_qs(url.query)
input = query.get("input", None)[0]
output = requests.request(
"POST",
"/static-proxy?url=https%3A%2F%2Fapi-inference.huggingface.co%2Fmodels%2Fosanseviero%2FBigGAN-deep-128%26quot%3B%3C%2Fspan%3E%2C%3C!-- HTML_TAG_END -->
headers={"Authorization": f"Bearer {API_TOKEN}"},
data=json.dumps(input),
)
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(output.content)
return SimpleHTTPRequestHandler
elif self.path.startswith("/infer_t5"):
url = urlparse(self.path)
query = parse_qs(url.query)
input = query.get("input", None)[0]
output = infer_t5(input)
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(json.dumps({"output": output}).encode("utf-8"))
return SimpleHTTPRequestHandler
elif self.path.startswith("/query_emotion"):
url = urlparse(self.path)
query = parse_qs(url.query)
start = int(query.get("start", None)[0])
end = int(query.get("end", None)[0])
output = query_emotion(start, end)
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(json.dumps({"output": output}).encode("utf-8"))
return SimpleHTTPRequestHandler
else:
return SimpleHTTPRequestHandler.do_GET(self)
server = ThreadingHTTPServer(("", 7860), RequestHandler)
server.serve_forever()