Spaces:
Running
Running
from fastapi import FastAPI, Depends | |
from fastapi.routing import APIRoute | |
from fastapi.middleware.cors import CORSMiddleware | |
from apps.web.routers import ( | |
auths, | |
users, | |
chats, | |
documents, | |
modelfiles, | |
prompts, | |
configs, | |
memories, | |
utils, | |
) | |
from config import ( | |
WEBUI_VERSION, | |
WEBUI_AUTH, | |
DEFAULT_MODELS, | |
DEFAULT_PROMPT_SUGGESTIONS, | |
DEFAULT_USER_ROLE, | |
ENABLE_SIGNUP, | |
USER_PERMISSIONS, | |
WEBHOOK_URL, | |
WEBUI_AUTH_TRUSTED_EMAIL_HEADER, | |
JWT_EXPIRES_IN, | |
AppConfig, | |
) | |
app = FastAPI() | |
origins = ["*"] | |
app.state.config = AppConfig() | |
app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP | |
app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN | |
app.state.config.DEFAULT_MODELS = DEFAULT_MODELS | |
app.state.config.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS | |
app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE | |
app.state.config.USER_PERMISSIONS = USER_PERMISSIONS | |
app.state.config.WEBHOOK_URL = WEBHOOK_URL | |
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=origins, | |
allow_credentials=True, | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
app.include_router(auths.router, prefix="/auths", tags=["auths"]) | |
app.include_router(users.router, prefix="/users", tags=["users"]) | |
app.include_router(chats.router, prefix="/chats", tags=["chats"]) | |
app.include_router(documents.router, prefix="/documents", tags=["documents"]) | |
app.include_router(modelfiles.router, prefix="/modelfiles", tags=["modelfiles"]) | |
app.include_router(prompts.router, prefix="/prompts", tags=["prompts"]) | |
app.include_router(memories.router, prefix="/memories", tags=["memories"]) | |
app.include_router(configs.router, prefix="/configs", tags=["configs"]) | |
app.include_router(utils.router, prefix="/utils", tags=["utils"]) | |
async def get_status(): | |
return { | |
"status": True, | |
"auth": WEBUI_AUTH, | |
"default_models": app.state.config.DEFAULT_MODELS, | |
"default_prompt_suggestions": app.state.config.DEFAULT_PROMPT_SUGGESTIONS, | |
} | |