app_fields.py 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. from flask_restful import fields # type: ignore
  2. from fields.workflow_fields import workflow_partial_fields
  3. from libs.helper import AppIconUrlField, TimestampField
  4. app_detail_kernel_fields = {
  5. "id": fields.String,
  6. "name": fields.String,
  7. "description": fields.String,
  8. "mode": fields.String(attribute="mode_compatible_with_agent"),
  9. "icon_type": fields.String,
  10. "icon": fields.String,
  11. "icon_background": fields.String,
  12. "icon_url": AppIconUrlField,
  13. }
  14. related_app_list = {
  15. "data": fields.List(fields.Nested(app_detail_kernel_fields)),
  16. "total": fields.Integer,
  17. }
  18. model_config_fields = {
  19. "opening_statement": fields.String,
  20. "suggested_questions": fields.Raw(attribute="suggested_questions_list"),
  21. "suggested_questions_after_answer": fields.Raw(attribute="suggested_questions_after_answer_dict"),
  22. "speech_to_text": fields.Raw(attribute="speech_to_text_dict"),
  23. "text_to_speech": fields.Raw(attribute="text_to_speech_dict"),
  24. "retriever_resource": fields.Raw(attribute="retriever_resource_dict"),
  25. "annotation_reply": fields.Raw(attribute="annotation_reply_dict"),
  26. "more_like_this": fields.Raw(attribute="more_like_this_dict"),
  27. "sensitive_word_avoidance": fields.Raw(attribute="sensitive_word_avoidance_dict"),
  28. "external_data_tools": fields.Raw(attribute="external_data_tools_list"),
  29. "model": fields.Raw(attribute="model_dict"),
  30. "user_input_form": fields.Raw(attribute="user_input_form_list"),
  31. "dataset_query_variable": fields.String,
  32. "pre_prompt": fields.String,
  33. "agent_mode": fields.Raw(attribute="agent_mode_dict"),
  34. "prompt_type": fields.String,
  35. "chat_prompt_config": fields.Raw(attribute="chat_prompt_config_dict"),
  36. "completion_prompt_config": fields.Raw(attribute="completion_prompt_config_dict"),
  37. "dataset_configs": fields.Raw(attribute="dataset_configs_dict"),
  38. "file_upload": fields.Raw(attribute="file_upload_dict"),
  39. "created_by": fields.String,
  40. "created_at": TimestampField,
  41. "updated_by": fields.String,
  42. "updated_at": TimestampField,
  43. }
  44. app_detail_fields = {
  45. "id": fields.String,
  46. "name": fields.String,
  47. "description": fields.String,
  48. "mode": fields.String(attribute="mode_compatible_with_agent"),
  49. "icon": fields.String,
  50. "icon_background": fields.String,
  51. "enable_site": fields.Boolean,
  52. "enable_api": fields.Boolean,
  53. "model_config": fields.Nested(model_config_fields, attribute="app_model_config", allow_null=True),
  54. "workflow": fields.Nested(workflow_partial_fields, allow_null=True),
  55. "tracing": fields.Raw,
  56. "use_icon_as_answer_icon": fields.Boolean,
  57. "created_by": fields.String,
  58. "created_at": TimestampField,
  59. "updated_by": fields.String,
  60. "updated_at": TimestampField,
  61. "edit_auth": fields.Integer,
  62. "dept_id": fields.String,
  63. }
  64. prompt_config_fields = {
  65. "prompt_template": fields.String,
  66. }
  67. model_config_partial_fields = {
  68. "model": fields.Raw(attribute="model_dict"),
  69. "pre_prompt": fields.String,
  70. "created_by": fields.String,
  71. "created_at": TimestampField,
  72. "updated_by": fields.String,
  73. "updated_at": TimestampField,
  74. }
  75. tag_fields = {"id": fields.String, "name": fields.String, "type": fields.String}
  76. app_partial_fields = {
  77. "id": fields.String,
  78. "name": fields.String,
  79. "max_active_requests": fields.Raw(),
  80. "description": fields.String(attribute="desc_or_prompt"),
  81. "mode": fields.String(attribute="mode_compatible_with_agent"),
  82. "icon_type": fields.String,
  83. "icon": fields.String,
  84. "icon_background": fields.String,
  85. "icon_url": AppIconUrlField,
  86. "model_config": fields.Nested(model_config_partial_fields, attribute="app_model_config", allow_null=True),
  87. "workflow": fields.Nested(workflow_partial_fields, allow_null=True),
  88. "use_icon_as_answer_icon": fields.Boolean,
  89. "created_by": fields.String,
  90. "created_at": TimestampField,
  91. "updated_by": fields.String,
  92. "updated_at": TimestampField,
  93. "tags": fields.List(fields.Nested(tag_fields)),
  94. "dept_id": fields.String,
  95. "edit_auth": fields.Integer,
  96. }
  97. app_pagination_fields = {
  98. "page": fields.Integer,
  99. "limit": fields.Integer(attribute="per_page"),
  100. "total": fields.Integer,
  101. "has_more": fields.Boolean(attribute="has_next"),
  102. "data": fields.List(fields.Nested(app_partial_fields), attribute="items"),
  103. }
  104. template_fields = {
  105. "name": fields.String,
  106. "icon": fields.String,
  107. "icon_background": fields.String,
  108. "description": fields.String,
  109. "mode": fields.String,
  110. "model_config": fields.Nested(model_config_fields),
  111. }
  112. template_list_fields = {
  113. "data": fields.List(fields.Nested(template_fields)),
  114. }
  115. site_fields = {
  116. "access_token": fields.String(attribute="code"),
  117. "code": fields.String,
  118. "title": fields.String,
  119. "icon_type": fields.String,
  120. "icon": fields.String,
  121. "icon_background": fields.String,
  122. "icon_url": AppIconUrlField,
  123. "description": fields.String,
  124. "default_language": fields.String,
  125. "chat_color_theme": fields.String,
  126. "chat_color_theme_inverted": fields.Boolean,
  127. "customize_domain": fields.String,
  128. "copyright": fields.String,
  129. "privacy_policy": fields.String,
  130. "custom_disclaimer": fields.String,
  131. "customize_token_strategy": fields.String,
  132. "prompt_public": fields.Boolean,
  133. "app_base_url": fields.String,
  134. "show_workflow_steps": fields.Boolean,
  135. "use_icon_as_answer_icon": fields.Boolean,
  136. "created_by": fields.String,
  137. "created_at": TimestampField,
  138. "updated_by": fields.String,
  139. "updated_at": TimestampField,
  140. }
  141. deleted_tool_fields = {
  142. "type": fields.String,
  143. "tool_name": fields.String,
  144. "provider_id": fields.String,
  145. }
  146. app_detail_fields_with_site = {
  147. "id": fields.String,
  148. "name": fields.String,
  149. "description": fields.String,
  150. "mode": fields.String(attribute="mode_compatible_with_agent"),
  151. "icon_type": fields.String,
  152. "icon": fields.String,
  153. "icon_background": fields.String,
  154. "icon_url": AppIconUrlField,
  155. "enable_site": fields.Boolean,
  156. "enable_api": fields.Boolean,
  157. "model_config": fields.Nested(model_config_fields, attribute="app_model_config", allow_null=True),
  158. "workflow": fields.Nested(workflow_partial_fields, allow_null=True),
  159. "site": fields.Nested(site_fields),
  160. "api_base_url": fields.String,
  161. "use_icon_as_answer_icon": fields.Boolean,
  162. "created_by": fields.String,
  163. "created_at": TimestampField,
  164. "updated_by": fields.String,
  165. "updated_at": TimestampField,
  166. "deleted_tools": fields.List(fields.Nested(deleted_tool_fields)),
  167. "edit_auth": fields.Integer,
  168. "dept_id": fields.String,
  169. }
  170. app_site_fields = {
  171. "app_id": fields.String,
  172. "access_token": fields.String(attribute="code"),
  173. "code": fields.String,
  174. "title": fields.String,
  175. "icon": fields.String,
  176. "icon_background": fields.String,
  177. "description": fields.String,
  178. "default_language": fields.String,
  179. "customize_domain": fields.String,
  180. "copyright": fields.String,
  181. "privacy_policy": fields.String,
  182. "custom_disclaimer": fields.String,
  183. "customize_token_strategy": fields.String,
  184. "prompt_public": fields.Boolean,
  185. "show_workflow_steps": fields.Boolean,
  186. "use_icon_as_answer_icon": fields.Boolean,
  187. }
  188. leaked_dependency_fields = {"type": fields.String, "value": fields.Raw, "current_identifier": fields.String}
  189. app_import_fields = {
  190. "id": fields.String,
  191. "status": fields.String,
  192. "app_id": fields.String,
  193. "app_mode": fields.String,
  194. "current_dsl_version": fields.String,
  195. "imported_dsl_version": fields.String,
  196. "error": fields.String,
  197. }
  198. app_import_check_dependencies_fields = {
  199. "leaked_dependencies": fields.List(fields.Nested(leaked_dependency_fields)),
  200. }