Files
zzrouter/backend/app/main.py

47 lines
1.0 KiB
Python

"""FastAPI application entry point."""
from contextlib import asynccontextmanager
from fastapi import FastAPI
from .database import init_db, seed_default_providers
from .services.logger import async_logger
from .routes import health_router, chat_router, openai_router, anthropic_router
@asynccontextmanager
async def lifespan(app: FastAPI):
"""Application lifespan handler."""
# Startup
await init_db()
await seed_default_providers()
await async_logger.start()
yield
# Shutdown
await async_logger.stop()
app = FastAPI(
title="zzrouter",
description="AI Model API Proxy Service",
version="0.1.0",
lifespan=lifespan
)
# Register routers
app.include_router(health_router)
app.include_router(chat_router)
app.include_router(openai_router)
app.include_router(anthropic_router)
def run_server():
"""Run the server (entry point for script)."""
import uvicorn
from .config import HOST, PORT
uvicorn.run(app, host=HOST, port=PORT)
if __name__ == "__main__":
run_server()