Spaces:
Build error
Build error
from fastapi import FastAPI | |
from fastapi.staticfiles import StaticFiles | |
from .extractor_server import app as extractor_app, delete_folder_if_old_or_empty, output_folder | |
from .annorator_server import app as annotator_app | |
import os | |
from .config import Config | |
from fastapi import Request | |
from fastapi.responses import HTMLResponse | |
from fastapi.staticfiles import StaticFiles | |
import os | |
from jinja2 import Environment, FileSystemLoader, select_autoescape | |
fast_api = FastAPI() | |
# Mount static files ONCE | |
static_folder = os.path.join(Config.current_path, "static") | |
fast_api.mount("/static", StaticFiles(directory=static_folder), name="static") | |
fast_api.include_router(extractor_app) | |
fast_api.include_router(annotator_app) | |
# Templates | |
template_dirs = [static_folder] | |
env = Environment( | |
loader=FileSystemLoader(template_dirs), | |
autoescape=select_autoescape(['html', 'xml']) | |
) | |
# Routes | |
async def index(request: Request): | |
delete_folder_if_old_or_empty(output_folder) | |
template = env.get_template("index.html") # From tool/ | |
html_content = template.render(request=request) | |
return HTMLResponse(content=html_content) | |
async def index(request: Request): | |
template = env.get_template("annotator.html") # From tool/ | |
html_content = template.render(request=request) | |
return HTMLResponse(content=html_content) | |
def main(): | |
import uvicorn | |
uvicorn.run( | |
fast_api, | |
host="0.0.0.0", # Or "0.0.0.0" to allow access from other machines | |
port=7860, # Change to any available port, e.g., 8080 | |
# reload=True # Enables auto-reload for development (like --reload in CLI) | |
) | |
if __name__ == "__main__": | |
main() | |