2023-12-30 12:53:33 +02:00
|
|
|
from fastapi import FastAPI, Depends
|
|
|
|
|
from fastapi.routing import APIRoute
|
2023-11-18 16:47:12 -08:00
|
|
|
from fastapi.middleware.cors import CORSMiddleware
|
2024-01-07 23:43:32 -08:00
|
|
|
from apps.web.routers import (
|
|
|
|
|
auths,
|
|
|
|
|
users,
|
|
|
|
|
chats,
|
|
|
|
|
documents,
|
2024-05-24 00:26:00 -07:00
|
|
|
models,
|
2024-01-07 23:43:32 -08:00
|
|
|
prompts,
|
|
|
|
|
configs,
|
2024-05-19 08:00:07 -07:00
|
|
|
memories,
|
2024-01-07 23:43:32 -08:00
|
|
|
utils,
|
|
|
|
|
)
|
2024-02-14 01:17:43 -08:00
|
|
|
from config import (
|
|
|
|
|
WEBUI_VERSION,
|
|
|
|
|
WEBUI_AUTH,
|
|
|
|
|
DEFAULT_MODELS,
|
|
|
|
|
DEFAULT_PROMPT_SUGGESTIONS,
|
|
|
|
|
DEFAULT_USER_ROLE,
|
|
|
|
|
ENABLE_SIGNUP,
|
|
|
|
|
USER_PERMISSIONS,
|
2024-03-20 18:35:02 -07:00
|
|
|
WEBHOOK_URL,
|
2024-03-26 21:30:53 +00:00
|
|
|
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
|
2024-05-10 13:36:10 +08:00
|
|
|
JWT_EXPIRES_IN,
|
2024-05-10 15:03:24 +08:00
|
|
|
AppConfig,
|
2024-02-14 01:17:43 -08:00
|
|
|
)
|
2023-11-18 16:47:12 -08:00
|
|
|
|
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
|
|
|
|
origins = ["*"]
|
|
|
|
|
|
2024-05-10 15:03:24 +08:00
|
|
|
app.state.config = AppConfig()
|
2024-02-19 20:44:00 -08:00
|
|
|
|
2024-05-10 15:03:24 +08:00
|
|
|
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
|
2024-05-24 18:26:36 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
app.state.MODELS = {}
|
2024-03-26 21:30:53 +00:00
|
|
|
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
|
2024-01-01 12:32:28 -08:00
|
|
|
|
2024-05-19 08:00:07 -07:00
|
|
|
|
2023-11-18 16:47:12 -08:00
|
|
|
app.add_middleware(
|
|
|
|
|
CORSMiddleware,
|
|
|
|
|
allow_origins=origins,
|
|
|
|
|
allow_credentials=True,
|
|
|
|
|
allow_methods=["*"],
|
|
|
|
|
allow_headers=["*"],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
app.include_router(auths.router, prefix="/auths", tags=["auths"])
|
2024-01-01 10:55:50 +02:00
|
|
|
app.include_router(users.router, prefix="/users", tags=["users"])
|
|
|
|
|
app.include_router(chats.router, prefix="/chats", tags=["chats"])
|
2024-05-19 08:00:07 -07:00
|
|
|
|
2024-01-07 23:43:32 -08:00
|
|
|
app.include_router(documents.router, prefix="/documents", tags=["documents"])
|
2024-05-24 00:26:00 -07:00
|
|
|
app.include_router(models.router, prefix="/models", tags=["models"])
|
2024-01-02 21:00:50 -08:00
|
|
|
app.include_router(prompts.router, prefix="/prompts", tags=["prompts"])
|
2024-05-19 08:00:07 -07:00
|
|
|
app.include_router(memories.router, prefix="/memories", tags=["memories"])
|
|
|
|
|
|
2024-01-02 16:48:10 -08:00
|
|
|
app.include_router(configs.router, prefix="/configs", tags=["configs"])
|
2023-12-26 22:10:22 -08:00
|
|
|
app.include_router(utils.router, prefix="/utils", tags=["utils"])
|
2023-11-18 16:47:12 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.get("/")
|
|
|
|
|
async def get_status():
|
2024-01-02 16:48:10 -08:00
|
|
|
return {
|
|
|
|
|
"status": True,
|
|
|
|
|
"auth": WEBUI_AUTH,
|
2024-05-10 15:03:24 +08:00
|
|
|
"default_models": app.state.config.DEFAULT_MODELS,
|
|
|
|
|
"default_prompt_suggestions": app.state.config.DEFAULT_PROMPT_SUGGESTIONS,
|
2024-01-02 16:48:10 -08:00
|
|
|
}
|