from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from functools import lru_cache from models import CheckResponse from completions import check_text, load_model app = FastAPI() model, tokenizer, device = load_model() @lru_cache(maxsize=100) def cached_check_text(text: str): return check_text(text, model, tokenizer, device) @app.get("/check", response_model=CheckResponse) def check(text: str): print(f"Checking text: {text}") return CheckResponse(text=text, words=cached_check_text(text)) app.mount("/", StaticFiles(directory="frontend/public", html=True))