Spaces:
Build error
Build error
File size: 1,780 Bytes
05be5a5 c13ce0c 05be5a5 943db10 05be5a5 dcf15a2 05be5a5 c13ce0c 05be5a5 943db10 05be5a5 943db10 05be5a5 943db10 05be5a5 943db10 05be5a5 943db10 6412c24 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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()
|