# -*- coding: utf-8 -*- """ FastAPI 模块化 API 网关 前后端分离 + 模块化架构:知识图谱管理、数字人答疑、个性化推荐 """ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from backend.config import get_settings from backend.database import engine, Base, get_db, ensure_user_profile_columns from backend.api.auth_router import router as auth_router from backend.api.knowledge_router import router as knowledge_router from backend.api.qa_router import router as qa_router from backend.api.recommendation_router import router as recommendation_router from backend.api.user_router import router as user_router from backend.api.teacher_router import router as teacher_router settings = get_settings() app = FastAPI(title="初中化学 AI 数字人辅助教学系统", version="2.0") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # 创建 / 升级表结构 Base.metadata.create_all(bind=engine) ensure_user_profile_columns() # 注册路由 app.include_router(auth_router, prefix=settings.API_V1_PREFIX) app.include_router(knowledge_router, prefix=settings.API_V1_PREFIX) app.include_router(qa_router, prefix=settings.API_V1_PREFIX) app.include_router(recommendation_router, prefix=settings.API_V1_PREFIX) app.include_router(user_router, prefix=settings.API_V1_PREFIX) app.include_router(teacher_router, prefix=settings.API_V1_PREFIX) @app.get("/") def root(): return {"message": "初中化学 AI 数字人辅助教学系统 API", "docs": "/docs"}