File size: 1,293 Bytes
9577d95 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
from api.routers import chats
from api.routers import memory
from db.session import create_db_and_tables
from core.config import get_settings
settings = get_settings()
@asynccontextmanager
async def lifespan(app: FastAPI):
print(f"INFO: Starting up {settings.APP_NAME} v{settings.APP_VERSION}...")
create_db_and_tables()
print("INFO: Database tables checked/created.")
yield
print(f"INFO: Shutting down {settings.APP_NAME}...")
# FastAPI app instance
app = FastAPI(
title=settings.APP_NAME,
description=f"An API for interacting with {settings.APP_NAME}.",
version=settings.APP_VERSION,
lifespan=lifespan
)
# --- Middleware ---
app.add_middleware(
CORSMiddleware,
allow_origins=[settings.FRONTEND_URL],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# --- Routers ---
app.include_router(chats.router, prefix="/api/chats", tags=["Chats & Messages"])
app.include_router(memory.router, prefix="/api/memories", tags=["Memory Management"])
# --- Root Endpoint ---
@app.get("/", tags=["Health"])
async def read_root():
return {"status": "ok", "message": "Welcome to Makhfi AI!"} |