jebin2's picture
re arrange ui
6412c24
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
@fast_api.get("/", response_class=HTMLResponse)
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)
@fast_api.get("/annotate", response_class=HTMLResponse)
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()