configs.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 get_password_hash, get_current_user, create_token
  11. from utils.misc import get_gravatar_url, validate_email_format
  12. from constants import ERROR_MESSAGES
  13. router = APIRouter()
  14. class SetDefaultModelsForm(BaseModel):
  15. models: str
  16. class PromptSuggestion(BaseModel):
  17. title: List[str]
  18. content: str
  19. class SetDefaultSuggestionsForm(BaseModel):
  20. suggestions: List[PromptSuggestion]
  21. ############################
  22. # SetDefaultModels
  23. ############################
  24. @router.post("/default/models", response_model=str)
  25. async def set_global_default_models(
  26. request: Request, form_data: SetDefaultModelsForm, user=Depends(get_current_user)
  27. ):
  28. if user.role == "admin":
  29. request.app.state.DEFAULT_MODELS = form_data.models
  30. return request.app.state.DEFAULT_MODELS
  31. else:
  32. raise HTTPException(
  33. status_code=status.HTTP_403_FORBIDDEN,
  34. detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
  35. )
  36. @router.post("/default/suggestions", response_model=str)
  37. async def set_global_default_suggestions(
  38. request: Request,
  39. form_data: SetDefaultSuggestionsForm,
  40. user=Depends(get_current_user),
  41. ):
  42. if user.role == "admin":
  43. request.app.state.DEFAULT_PROMPT_SUGGESTIONS = form_data.suggestions
  44. return request.app.state.DEFAULT_PROMPT_SUGGESTIONS
  45. else:
  46. raise HTTPException(
  47. status_code=status.HTTP_403_FORBIDDEN,
  48. detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
  49. )