Move all API routes, OpenAI-compatible routes, web UI routes, shared config, models, rate limiter, and auth logic into dedicated files (config.py, routeApi.py, routeOpenAi.py, routeWeb.py). app.py now serves as a clean entry point. Made-with: Cursor
34 lines
1,023 B
Python
34 lines
1,023 B
Python
# Copyright (c) 2025 Patrick Motsch
|
|
# All rights reserved.
|
|
"""Web UI routes for the Private-LLM test interface."""
|
|
|
|
import logging
|
|
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.templating import Jinja2Templates
|
|
from starlette.responses import RedirectResponse
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
templates = Jinja2Templates(directory="templates")
|
|
|
|
router = APIRouter(tags=["Web UI"])
|
|
|
|
|
|
@router.get("/", response_class=HTMLResponse)
|
|
async def _index(request: Request):
|
|
"""Main page with document scanner UI."""
|
|
return templates.TemplateResponse("index.html", {"request": request})
|
|
|
|
|
|
@router.get("/login", response_class=HTMLResponse)
|
|
async def _loginPage(request: Request):
|
|
"""Login page."""
|
|
return templates.TemplateResponse("login.html", {"request": request})
|
|
|
|
|
|
@router.get("/logout", response_class=HTMLResponse)
|
|
async def _logout(request: Request):
|
|
"""Logout - redirect to login page."""
|
|
return RedirectResponse(url="/login", status_code=302)
|