|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
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()
|
|
|
|