Spaces:
Paused
Paused
| from fastapi import Response, Request | |
| from fastapi import Depends, FastAPI, HTTPException, status | |
| from datetime import datetime, timedelta | |
| from typing import List, 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 | |