app_fields.py 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. from flask_restful import fields
  2. from libs.helper import TimestampField
  3. app_detail_kernel_fields = {
  4. "id": fields.String,
  5. "name": fields.String,
  6. "description": fields.String,
  7. "mode": fields.String(attribute="mode_compatible_with_agent"),
  8. "icon": fields.String,
  9. "icon_background": fields.String,
  10. }
  11. related_app_list = {
  12. "data": fields.List(fields.Nested(app_detail_kernel_fields)),
  13. "total": fields.Integer,
  14. }
  15. model_config_fields = {
  16. "opening_statement": fields.String,
  17. "suggested_questions": fields.Raw(attribute="suggested_questions_list"),
  18. "suggested_questions_after_answer": fields.Raw(attribute="suggested_questions_after_answer_dict"),
  19. "speech_to_text": fields.Raw(attribute="speech_to_text_dict"),
  20. "text_to_speech": fields.Raw(attribute="text_to_speech_dict"),
  21. "retriever_resource": fields.Raw(attribute="retriever_resource_dict"),
  22. "annotation_reply": fields.Raw(attribute="annotation_reply_dict"),
  23. "more_like_this": fields.Raw(attribute="more_like_this_dict"),
  24. "sensitive_word_avoidance": fields.Raw(attribute="sensitive_word_avoidance_dict"),
  25. "external_data_tools": fields.Raw(attribute="external_data_tools_list"),
  26. "model": fields.Raw(attribute="model_dict"),
  27. "user_input_form": fields.Raw(attribute="user_input_form_list"),
  28. "dataset_query_variable": fields.String,
  29. "pre_prompt": fields.String,
  30. "agent_mode": fields.Raw(attribute="agent_mode_dict"),
  31. "prompt_type": fields.String,
  32. "chat_prompt_config": fields.Raw(attribute="chat_prompt_config_dict"),
  33. "completion_prompt_config": fields.Raw(attribute="completion_prompt_config_dict"),
  34. "dataset_configs": fields.Raw(attribute="dataset_configs_dict"),
  35. "file_upload": fields.Raw(attribute="file_upload_dict"),
  36. "created_at": TimestampField,
  37. }
  38. app_detail_fields = {
  39. "id": fields.String,
  40. "name": fields.String,
  41. "description": fields.String,
  42. "mode": fields.String(attribute="mode_compatible_with_agent"),
  43. "icon": fields.String,
  44. "icon_background": fields.String,
  45. "enable_site": fields.Boolean,
  46. "enable_api": fields.Boolean,
  47. "model_config": fields.Nested(model_config_fields, attribute="app_model_config", allow_null=True),
  48. "tracing": fields.Raw,
  49. "created_at": TimestampField,
  50. }
  51. prompt_config_fields = {
  52. "prompt_template": fields.String,
  53. }
  54. model_config_partial_fields = {
  55. "model": fields.Raw(attribute="model_dict"),
  56. "pre_prompt": fields.String,
  57. }
  58. tag_fields = {"id": fields.String, "name": fields.String, "type": fields.String}
  59. app_partial_fields = {
  60. "id": fields.String,
  61. "name": fields.String,
  62. "max_active_requests": fields.Raw(),
  63. "description": fields.String(attribute="desc_or_prompt"),
  64. "mode": fields.String(attribute="mode_compatible_with_agent"),
  65. "icon": fields.String,
  66. "icon_background": fields.String,
  67. "model_config": fields.Nested(model_config_partial_fields, attribute="app_model_config", allow_null=True),
  68. "created_at": TimestampField,
  69. "tags": fields.List(fields.Nested(tag_fields)),
  70. }
  71. app_pagination_fields = {
  72. "page": fields.Integer,
  73. "limit": fields.Integer(attribute="per_page"),
  74. "total": fields.Integer,
  75. "has_more": fields.Boolean(attribute="has_next"),
  76. "data": fields.List(fields.Nested(app_partial_fields), attribute="items"),
  77. }
  78. template_fields = {
  79. "name": fields.String,
  80. "icon": fields.String,
  81. "icon_background": fields.String,
  82. "description": fields.String,
  83. "mode": fields.String,
  84. "model_config": fields.Nested(model_config_fields),
  85. }
  86. template_list_fields = {
  87. "data": fields.List(fields.Nested(template_fields)),
  88. }
  89. site_fields = {
  90. "access_token": fields.String(attribute="code"),
  91. "code": fields.String,
  92. "title": fields.String,
  93. "icon": fields.String,
  94. "icon_background": fields.String,
  95. "description": fields.String,
  96. "default_language": fields.String,
  97. "chat_color_theme": fields.String,
  98. "chat_color_theme_inverted": fields.Boolean,
  99. "customize_domain": fields.String,
  100. "copyright": fields.String,
  101. "privacy_policy": fields.String,
  102. "custom_disclaimer": fields.String,
  103. "customize_token_strategy": fields.String,
  104. "prompt_public": fields.Boolean,
  105. "app_base_url": fields.String,
  106. "show_workflow_steps": fields.Boolean,
  107. }
  108. app_detail_fields_with_site = {
  109. "id": fields.String,
  110. "name": fields.String,
  111. "description": fields.String,
  112. "mode": fields.String(attribute="mode_compatible_with_agent"),
  113. "icon": fields.String,
  114. "icon_background": fields.String,
  115. "enable_site": fields.Boolean,
  116. "enable_api": fields.Boolean,
  117. "model_config": fields.Nested(model_config_fields, attribute="app_model_config", allow_null=True),
  118. "site": fields.Nested(site_fields),
  119. "api_base_url": fields.String,
  120. "created_at": TimestampField,
  121. "deleted_tools": fields.List(fields.String),
  122. }
  123. app_site_fields = {
  124. "app_id": fields.String,
  125. "access_token": fields.String(attribute="code"),
  126. "code": fields.String,
  127. "title": fields.String,
  128. "icon": fields.String,
  129. "icon_background": fields.String,
  130. "description": fields.String,
  131. "default_language": fields.String,
  132. "customize_domain": fields.String,
  133. "copyright": fields.String,
  134. "privacy_policy": fields.String,
  135. "custom_disclaimer": fields.String,
  136. "customize_token_strategy": fields.String,
  137. "prompt_public": fields.Boolean,
  138. "show_workflow_steps": fields.Boolean,
  139. }