Ron Au
Initial Commit
28a1ae6
import os
import requests
import json
from io import BytesIO
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse, StreamingResponse
from modules.inference import infer_t5
from modules.dataset import query_emotion
# https://huggingface.co/settings/tokens
# https://huggingface.co/spaces/{username}/{space}/settings
API_TOKEN = os.getenv("BIG_GAN_TOKEN")
app = FastAPI(docs_url=None, redoc_url=None)
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.head("/")
@app.get("/")
def index() -> FileResponse:
return FileResponse(path="static/index.html", media_type="text/html")
@app.get("/infer_biggan")
def biggan(input):
output = requests.request(
"POST",
"https://api-inference.huggingface.co/models/osanseviero/BigGAN-deep-128",
headers={"Authorization": f"Bearer {API_TOKEN}"},
data=json.dumps(input),
)
return StreamingResponse(BytesIO(output.content), media_type="image/png")
@app.get("/infer_t5")
def t5(input):
output = infer_t5(input)
return {"output": output}
@app.get("/query_emotion")
def emotion(start, end):
output = query_emotion(int(start), int(end))
return {"output": output}