cca / app.py
sanbo
update sth. at 2025-01-20 14:08:58
08ca036
raw
history blame
1.77 kB
import warnings
import uvicorn
from fastapi import FastAPI, HTTPException
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from fastapi.middleware.cors import CORSMiddleware
from fastapi.templating import Jinja2Templates
from utils.configs import enable_gateway, api_prefix
warnings.filterwarnings("ignore")
log_config = uvicorn.config.LOGGING_CONFIG
default_format = "%(asctime)s | %(levelname)s | %(message)s"
access_format = r'%(asctime)s | %(levelname)s | %(client_addr)s: %(request_line)s %(status_code)s'
log_config["formatters"]["default"]["fmt"] = default_format
log_config["formatters"]["access"]["fmt"] = access_format
app = FastAPI(
docs_url=f"/{api_prefix}/docs", # 设置 Swagger UI 文档路径
redoc_url=f"/{api_prefix}/redoc", # 设置 Redoc 文档路径
openapi_url=f"/{api_prefix}/openapi.json" # 设置 OpenAPI JSON 路径
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
templates = Jinja2Templates(directory="templates")
security_scheme = HTTPBearer()
from app import app
import api.chat2api
if enable_gateway:
import gateway.share
import gateway.login
import gateway.chatgpt
import gateway.gpts
import gateway.admin
import gateway.v1
import gateway.backend
else:
@app.api_route("/{path:path}", methods=["GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD", "PATCH", "TRACE"])
async def reverse_proxy():
raise HTTPException(status_code=404, detail="Gateway is disabled")
if __name__ == "__main__":
uvicorn.run("app:app", host="0.0.0.0", port=5005)
# uvicorn.run("app:app", host="0.0.0.0", port=5005, ssl_keyfile="key.pem", ssl_certfile="cert.pem")