|
from fastapi import FastAPI, Depends |
|
from fastapi.routing import APIRoute |
|
from fastapi.middleware.cors import CORSMiddleware |
|
from apps.webui.routers import ( |
|
auths, |
|
users, |
|
chats, |
|
documents, |
|
models, |
|
prompts, |
|
configs, |
|
memories, |
|
utils, |
|
) |
|
from config import ( |
|
WEBUI_BUILD_HASH, |
|
SHOW_ADMIN_DETAILS, |
|
ADMIN_EMAIL, |
|
WEBUI_AUTH, |
|
DEFAULT_MODELS, |
|
DEFAULT_PROMPT_SUGGESTIONS, |
|
DEFAULT_USER_ROLE, |
|
ENABLE_SIGNUP, |
|
USER_PERMISSIONS, |
|
WEBHOOK_URL, |
|
WEBUI_AUTH_TRUSTED_EMAIL_HEADER, |
|
JWT_EXPIRES_IN, |
|
WEBUI_BANNERS, |
|
AppConfig, |
|
ENABLE_COMMUNITY_SHARING, |
|
) |
|
|
|
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.SHOW_ADMIN_DETAILS = SHOW_ADMIN_DETAILS |
|
app.state.config.ADMIN_EMAIL = ADMIN_EMAIL |
|
|
|
|
|
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.config.BANNERS = WEBUI_BANNERS |
|
|
|
app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING |
|
|
|
app.state.MODELS = {} |
|
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(models.router, prefix="/models", tags=["models"]) |
|
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"]) |
|
|
|
|
|
@app.get("/") |
|
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, |
|
} |
|
|