You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

fields.py 2.0KB

5 kuukautta sitten
5 kuukautta sitten
5 kuukautta sitten
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from flask_restx import Api, Namespace, fields
  2. from libs.helper import AppIconUrlField
  3. parameters__system_parameters = {
  4. "image_file_size_limit": fields.Integer,
  5. "video_file_size_limit": fields.Integer,
  6. "audio_file_size_limit": fields.Integer,
  7. "file_size_limit": fields.Integer,
  8. "workflow_file_upload_limit": fields.Integer,
  9. }
  10. def build_system_parameters_model(api_or_ns: Api | Namespace):
  11. """Build the system parameters model for the API or Namespace."""
  12. return api_or_ns.model("SystemParameters", parameters__system_parameters)
  13. parameters_fields = {
  14. "opening_statement": fields.String,
  15. "suggested_questions": fields.Raw,
  16. "suggested_questions_after_answer": fields.Raw,
  17. "speech_to_text": fields.Raw,
  18. "text_to_speech": fields.Raw,
  19. "retriever_resource": fields.Raw,
  20. "annotation_reply": fields.Raw,
  21. "more_like_this": fields.Raw,
  22. "user_input_form": fields.Raw,
  23. "sensitive_word_avoidance": fields.Raw,
  24. "file_upload": fields.Raw,
  25. "system_parameters": fields.Nested(parameters__system_parameters),
  26. }
  27. def build_parameters_model(api_or_ns: Api | Namespace):
  28. """Build the parameters model for the API or Namespace."""
  29. copied_fields = parameters_fields.copy()
  30. copied_fields["system_parameters"] = fields.Nested(build_system_parameters_model(api_or_ns))
  31. return api_or_ns.model("Parameters", copied_fields)
  32. site_fields = {
  33. "title": fields.String,
  34. "chat_color_theme": fields.String,
  35. "chat_color_theme_inverted": fields.Boolean,
  36. "icon_type": fields.String,
  37. "icon": fields.String,
  38. "icon_background": fields.String,
  39. "icon_url": AppIconUrlField,
  40. "description": fields.String,
  41. "copyright": fields.String,
  42. "privacy_policy": fields.String,
  43. "custom_disclaimer": fields.String,
  44. "default_language": fields.String,
  45. "show_workflow_steps": fields.Boolean,
  46. "use_icon_as_answer_icon": fields.Boolean,
  47. }
  48. def build_site_model(api_or_ns: Api | Namespace):
  49. """Build the site model for the API or Namespace."""
  50. return api_or_ns.model("Site", site_fields)