from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from routers import health, embeddings, classification, daily_report, rag from db.vector_store import vector_store from db.metadata_store import metadata_store @asynccontextmanager async def lifespan(app: FastAPI): vector_store.initialize() metadata_store.initialize() yield app = FastAPI( title="TK AI Service", description="AI 서비스 (유사 검색, 분류, 보고서)", version="1.0.0", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=False, allow_methods=["*"], allow_headers=["*"], ) app.include_router(health.router, prefix="/api/ai") app.include_router(embeddings.router, prefix="/api/ai") app.include_router(classification.router, prefix="/api/ai") app.include_router(daily_report.router, prefix="/api/ai") app.include_router(rag.router, prefix="/api/ai") @app.get("/") async def root(): return {"message": "TK AI Service", "version": "1.0.0"}