Spaces:
Sleeping
Sleeping
| from collections.abc import AsyncIterator | |
| from contextlib import asynccontextmanager | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from fastapi.staticfiles import StaticFiles | |
| from app.config import get_settings | |
| from app.routes.verify_document import router as document_router | |
| from app.schemas.document_verification import HealthResponse, RootResponse | |
| settings = get_settings() | |
| async def lifespan(_: FastAPI) -> AsyncIterator[None]: | |
| settings.upload_dir.mkdir(parents=True, exist_ok=True) | |
| settings.output_dir.mkdir(parents=True, exist_ok=True) | |
| yield | |
| app = FastAPI( | |
| title=settings.app_name, | |
| description="BitCheck Document Verification API.", | |
| version=settings.version, | |
| lifespan=lifespan, | |
| ) | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=False, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| app.include_router(document_router) | |
| app.mount("/outputs", StaticFiles(directory=str(settings.output_dir)), name="outputs") | |
| def root() -> RootResponse: | |
| return RootResponse( | |
| service=settings.app_name, | |
| status="running", | |
| version=settings.version, | |
| ) | |
| def health() -> HealthResponse: | |
| return HealthResponse( | |
| status="ok", | |
| service=settings.app_name, | |
| version=settings.version, | |
| ocr_available=False, | |
| qr_available=False, | |
| deepseek_available=settings.deepseek_available, | |
| model=settings.deepseek_model, | |
| ) | |