configs.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from fastapi import Response, Request
  2. from fastapi import Depends, FastAPI, HTTPException, status
  3. from datetime import datetime, timedelta
  4. from typing import List, Union
  5. from fastapi import APIRouter
  6. from pydantic import BaseModel
  7. import time
  8. import uuid
  9. from apps.web.models.users import Users
  10. from utils.utils import (
  11. get_password_hash,
  12. get_current_user,
  13. get_admin_user,
  14. create_token,
  15. )
  16. from utils.misc import get_gravatar_url, validate_email_format
  17. from constants import ERROR_MESSAGES
  18. router = APIRouter()
  19. class SetDefaultModelsForm(BaseModel):
  20. models: str
  21. class PromptSuggestion(BaseModel):
  22. title: List[str]
  23. content: str
  24. class SetDefaultSuggestionsForm(BaseModel):
  25. suggestions: List[PromptSuggestion]
  26. ############################
  27. # SetDefaultModels
  28. ############################
  29. @router.post("/default/models", response_model=str)
  30. async def set_global_default_models(
  31. request: Request, form_data: SetDefaultModelsForm, user=Depends(get_admin_user)
  32. ):
  33. request.app.state.config.DEFAULT_MODELS = form_data.models
  34. return request.app.state.config.DEFAULT_MODELS
  35. @router.post("/default/suggestions", response_model=List[PromptSuggestion])
  36. async def set_global_default_suggestions(
  37. request: Request,
  38. form_data: SetDefaultSuggestionsForm,
  39. user=Depends(get_admin_user),
  40. ):
  41. data = form_data.model_dump()
  42. request.app.state.config.DEFAULT_PROMPT_SUGGESTIONS = data["suggestions"]
  43. return request.app.state.config.DEFAULT_PROMPT_SUGGESTIONS