Spaces:
Sleeping
Sleeping
from open_webui.config import BannerModel | |
from fastapi import APIRouter, Depends, Request | |
from pydantic import BaseModel | |
from open_webui.utils.utils import get_admin_user, get_verified_user | |
from open_webui.config import get_config, save_config | |
router = APIRouter() | |
############################ | |
# ImportConfig | |
############################ | |
class ImportConfigForm(BaseModel): | |
config: dict | |
async def import_config(form_data: ImportConfigForm, user=Depends(get_admin_user)): | |
save_config(form_data.config) | |
return get_config() | |
############################ | |
# ExportConfig | |
############################ | |
async def export_config(user=Depends(get_admin_user)): | |
return get_config() | |
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 | |