|
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", |
|
redoc_url=f"/{api_prefix}/redoc", |
|
openapi_url=f"/{api_prefix}/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) |
|
|
|
|