Spaces:
Sleeping
Sleeping
from fastapi import Response, Request | |
from fastapi import Depends, FastAPI, HTTPException, status | |
from datetime import datetime, timedelta | |
from typing import Union | |
from fastapi import APIRouter | |
from pydantic import BaseModel | |
import time | |
import uuid | |
from config import BannerModel | |
from apps.webui.models.users import Users | |
from utils.utils import ( | |
get_password_hash, | |
get_verified_user, | |
get_admin_user, | |
create_token, | |
) | |
from utils.misc import get_gravatar_url, validate_email_format | |
from constants import ERROR_MESSAGES | |
router = APIRouter() | |
class SetDefaultModelsForm(BaseModel): | |
models: str | |
class PromptSuggestion(BaseModel): | |
title: list[str] | |
content: str | |
class SetDefaultSuggestionsForm(BaseModel): | |
suggestions: list[PromptSuggestion] | |
############################ | |
# SetDefaultModels | |
############################ | |
async def set_global_default_models( | |
request: Request, form_data: SetDefaultModelsForm, user=Depends(get_admin_user) | |
): | |
request.app.state.config.DEFAULT_MODELS = form_data.models | |
return request.app.state.config.DEFAULT_MODELS | |
async def set_global_default_suggestions( | |
request: Request, | |
form_data: SetDefaultSuggestionsForm, | |
user=Depends(get_admin_user), | |
): | |
data = form_data.model_dump() | |
request.app.state.config.DEFAULT_PROMPT_SUGGESTIONS = data["suggestions"] | |
return request.app.state.config.DEFAULT_PROMPT_SUGGESTIONS | |
############################ | |
# SetBanners | |
############################ | |
class SetBannersForm(BaseModel): | |
banners: list[BannerModel] | |
async def set_banners( | |
request: Request, | |
form_data: SetBannersForm, | |
user=Depends(get_admin_user), | |
): | |
data = form_data.model_dump() | |
request.app.state.config.BANNERS = data["banners"] | |
return request.app.state.config.BANNERS | |
async def get_banners( | |
request: Request, | |
user=Depends(get_verified_user), | |
): | |
return request.app.state.config.BANNERS | |