Files
chat-frontend/backend/app/main.py

60 lines
1.3 KiB
Python

from pathlib import Path
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.api.health import router as health_router
from app.api.auth import router as auth_router
from app.api.chats import router as chats_router
from app.core.config import settings
from app.db.init_db import init_db
from app.db.session import SessionLocal
def ensure_dirs() -> None:
for path in [settings.upload_root, settings.temp_root, settings.log_root]:
Path(path).mkdir(parents=True, exist_ok=True)
ensure_dirs()
app = FastAPI(
title="AI Chat MVP Backend",
version="0.1.0",
)
@app.on_event("startup")
def on_startup():
db = SessionLocal()
try:
init_db(db)
finally:
db.close()
app.add_middleware(
CORSMiddleware,
allow_origins=[
"http://127.0.0.1:13000",
"http://localhost:13000",
"http://192.168.149.194:13000",
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(health_router, prefix="/api")
app.include_router(auth_router, prefix="/api/auth", tags=["auth"])
app.include_router(chats_router, prefix="/api", tags=["chats"])
@app.get("/")
def root() -> dict:
return {
"service": "ai-chat-backend",
"env": settings.app_env,
"docs": "/docs",
}