Spaces:
Running
on
T4
Running
on
T4
""" main api file """ | |
from fastapi.responses import HTMLResponse | |
from fastapi.staticfiles import StaticFiles | |
from fastapi.templating import Jinja2Templates | |
from fastapi import FastAPI, Request | |
from fastapi.middleware.cors import CORSMiddleware | |
from app.routers import routes | |
""" initialize app with openapi configurations """ | |
app = FastAPI( | |
title="Mother Tongue Voice Matcher", | |
version="0.0.5", | |
servers=[ | |
{ | |
"url": "http://127.0.0.1:8000/api/v1", | |
"description": "Local Server", | |
}, | |
{ | |
"url": "https://motherstongue-voice-matcher-api.hf.space/api/v1", | |
"description": "Huggingface Server", | |
} | |
], | |
root_path="/api/v1", | |
root_path_in_servers=False, | |
) | |
# cors policy | |
origins = [ | |
"http://localhost", | |
"http://localhost:8080", | |
"http://localhost:3000", | |
"http://localhost:5173", | |
"http://127.0.0.1", | |
"http://127.0.0.1:8080", | |
"http://127.0.0.1:3000", | |
"http://127.0.0.1:5173", | |
"https://motherstongue-voice-matcher-api.hf.space", | |
] | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=origins, | |
allow_credentials=True, | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
# mount the static folder | |
app.mount("/static", StaticFiles(directory="app/static"), name="static") | |
# mount the templets folder | |
templates = Jinja2Templates(directory="app/templates") | |
async def root(request: Request): | |
"""set the root to show a html welcome page""" | |
return templates.TemplateResponse(request=request, name="index.html") | |
# include all the other api endpoints | |
app.include_router(routes.router) | |