| |
| |
|
|
| """ |
| Main application entry point |
| """ |
|
|
| from fastapi import FastAPI, Request, Response |
| from fastapi.middleware.cors import CORSMiddleware |
|
|
| from app.core.config import settings |
| from app.core import openai |
| from app.api import admin |
| from app.utils.reload_config import RELOAD_CONFIG |
|
|
| from granian import Granian |
|
|
| |
| app = FastAPI( |
| title="OpenAI Compatible API Server", |
| description="An OpenAI-compatible API server for Z.AI chat service", |
| version="1.0.0", |
| ) |
|
|
| |
| app.add_middleware( |
| CORSMiddleware, |
| allow_origins=["*"], |
| allow_credentials=True, |
| allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"], |
| allow_headers=["Content-Type", "Authorization"], |
| ) |
|
|
| |
| app.include_router(openai.router) |
| app.include_router(admin.router) |
|
|
|
|
| @app.options("/") |
| async def handle_options(): |
| """Handle OPTIONS requests""" |
| return Response(status_code=200) |
|
|
|
|
| @app.get("/") |
| async def root(): |
| """Root endpoint""" |
| return {"message": "OpenAI Compatible API Server"} |
|
|
|
|
| def run_server(): |
| Granian( |
| "main:app", |
| interface="asgi", |
| address="0.0.0.0", |
| port=settings.LISTEN_PORT, |
| reload=False, |
| **RELOAD_CONFIG, |
| ).serve() |
|
|
|
|
| if __name__ == "__main__": |
| run_server() |
|
|