Files

74 lines
1.8 KiB
Python
Raw Permalink Normal View History

"""
AI聊天室后端主入口
FastAPI应用启动文件
"""
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
from loguru import logger
from config import settings
from database.connection import connect_db, close_db
from routers import providers, agents, chatrooms, discussions
@asynccontextmanager
async def lifespan(app: FastAPI):
"""
应用生命周期管理
启动时连接数据库关闭时断开连接
"""
logger.info("正在启动AI聊天室服务...")
await connect_db()
logger.info("数据库连接成功")
yield
logger.info("正在关闭AI聊天室服务...")
await close_db()
logger.info("服务已关闭")
# 创建FastAPI应用
app = FastAPI(
title="AI聊天室",
description="多Agent协作讨论平台",
version="1.0.0",
lifespan=lifespan
)
# 配置CORS
app.add_middleware(
CORSMiddleware,
allow_origins=settings.CORS_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 注册路由
app.include_router(providers.router, prefix="/api/providers", tags=["AI接口管理"])
app.include_router(agents.router, prefix="/api/agents", tags=["Agent管理"])
app.include_router(chatrooms.router, prefix="/api/chatrooms", tags=["聊天室管理"])
app.include_router(discussions.router, prefix="/api/discussions", tags=["讨论结果"])
@app.get("/")
async def root():
"""根路径健康检查"""
return {"message": "AI聊天室服务运行中", "version": "1.0.0"}
@app.get("/health")
async def health_check():
"""健康检查接口"""
return {"status": "healthy"}
if __name__ == "__main__":
uvicorn.run(
"main:app",
host=settings.HOST,
port=settings.PORT,
reload=settings.DEBUG
)