Spaces:
Running
Running
| """ | |
| FastAPI application entry point for InnerVoice backend. | |
| """ | |
| import os | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| from models.database import init_db | |
| from routes.analyze import router as analyze_router | |
| from routes.entries import router as entries_router | |
| from routes.trends import router as trends_router | |
| from routes.alerts import router as alerts_router | |
| from routes.chat import router as chat_router | |
| from routes.auth import router as auth_router | |
| from routes.weekly_report import router as weekly_report_router | |
| from routes.prompts import router as prompts_router | |
| from routes.trusted_circle import router as trusted_circle_router | |
| app = FastAPI( | |
| title="InnerVoice API", | |
| description="AI-powered emotional wellness tracker backend", | |
| version="1.0.0", | |
| ) | |
| # CORS | |
| origins = os.getenv("CORS_ORIGINS", "http://localhost:3000").split(",") | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=origins, | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Init DB & Preload Models on startup | |
| def startup(): | |
| init_db() | |
| print("[InnerVoice] Database initialized.") | |
| # Pre-load AI models to prevent latency during the first user request | |
| from services.text_emotion import _load_model as load_text_model | |
| from services.emotion_analyzer import _load_model as load_audio_model | |
| from services.transcriber import _load_model as load_whisper | |
| print("[InnerVoice] Preloading AI models (Wav2Vec2, RoBERTa, Whisper)...") | |
| load_text_model() | |
| load_audio_model() | |
| load_whisper() | |
| print("[InnerVoice] All models loaded and cached!") | |
| # Register routers | |
| app.include_router(analyze_router, prefix="/api") | |
| app.include_router(entries_router, prefix="/api") | |
| app.include_router(trends_router, prefix="/api") | |
| app.include_router(alerts_router, prefix="/api") | |
| app.include_router(chat_router, prefix="/api") | |
| app.include_router(auth_router, prefix="/api") | |
| app.include_router(weekly_report_router, prefix="/api") | |
| app.include_router(prompts_router, prefix="/api") | |
| app.include_router(trusted_circle_router, prefix="/api") | |
| def health(): | |
| return {"status": "ok", "service": "InnerVoice API"} | |