Spaces:
Build error
Build error
| from fastapi import APIRouter, Depends, Request | |
| from pydantic import BaseModel | |
| from typing import Optional | |
| from open_webui.utils.auth import get_admin_user, get_verified_user | |
| from open_webui.config import get_config, save_config | |
| from open_webui.config import BannerModel | |
| 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() | |
| ############################ | |
| # SetDefaultModels | |
| ############################ | |
| class ModelsConfigForm(BaseModel): | |
| DEFAULT_MODELS: Optional[str] | |
| MODEL_ORDER_LIST: Optional[list[str]] | |
| async def get_models_config(request: Request, user=Depends(get_admin_user)): | |
| return { | |
| "DEFAULT_MODELS": request.app.state.config.DEFAULT_MODELS, | |
| "MODEL_ORDER_LIST": request.app.state.config.MODEL_ORDER_LIST, | |
| } | |
| async def set_models_config( | |
| request: Request, form_data: ModelsConfigForm, user=Depends(get_admin_user) | |
| ): | |
| request.app.state.config.DEFAULT_MODELS = form_data.DEFAULT_MODELS | |
| request.app.state.config.MODEL_ORDER_LIST = form_data.MODEL_ORDER_LIST | |
| return { | |
| "DEFAULT_MODELS": request.app.state.config.DEFAULT_MODELS, | |
| "MODEL_ORDER_LIST": request.app.state.config.MODEL_ORDER_LIST, | |
| } | |
| class PromptSuggestion(BaseModel): | |
| title: list[str] | |
| content: str | |
| class SetDefaultSuggestionsForm(BaseModel): | |
| suggestions: list[PromptSuggestion] | |
| async def set_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 | |