main.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # -*- coding: utf-8 -*-
  2. """
  3. FastAPI 模块化 API 网关
  4. 前后端分离 + 模块化架构:知识图谱管理、数字人答疑、个性化推荐
  5. """
  6. from fastapi import FastAPI
  7. from fastapi.middleware.cors import CORSMiddleware
  8. from backend.config import get_settings
  9. from backend.database import engine, Base, get_db, ensure_user_profile_columns
  10. from backend.api.auth_router import router as auth_router
  11. from backend.api.knowledge_router import router as knowledge_router
  12. from backend.api.qa_router import router as qa_router
  13. from backend.api.recommendation_router import router as recommendation_router
  14. from backend.api.user_router import router as user_router
  15. from backend.api.teacher_router import router as teacher_router
  16. settings = get_settings()
  17. app = FastAPI(title="初中化学 AI 数字人辅助教学系统", version="2.0")
  18. app.add_middleware(
  19. CORSMiddleware,
  20. allow_origins=["*"],
  21. allow_credentials=True,
  22. allow_methods=["*"],
  23. allow_headers=["*"],
  24. )
  25. # 创建 / 升级表结构
  26. Base.metadata.create_all(bind=engine)
  27. ensure_user_profile_columns()
  28. # 注册路由
  29. app.include_router(auth_router, prefix=settings.API_V1_PREFIX)
  30. app.include_router(knowledge_router, prefix=settings.API_V1_PREFIX)
  31. app.include_router(qa_router, prefix=settings.API_V1_PREFIX)
  32. app.include_router(recommendation_router, prefix=settings.API_V1_PREFIX)
  33. app.include_router(user_router, prefix=settings.API_V1_PREFIX)
  34. app.include_router(teacher_router, prefix=settings.API_V1_PREFIX)
  35. @app.get("/")
  36. def root():
  37. return {"message": "初中化学 AI 数字人辅助教学系统 API", "docs": "/docs"}