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.

__init__.py 8.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. from flask import Blueprint
  2. from flask_restx import Namespace
  3. from libs.external_api import ExternalApi
  4. from .app.app_import import AppImportApi, AppImportCheckDependenciesApi, AppImportConfirmApi
  5. from .explore.audio import ChatAudioApi, ChatTextApi
  6. from .explore.completion import ChatApi, ChatStopApi, CompletionApi, CompletionStopApi
  7. from .explore.conversation import (
  8. ConversationApi,
  9. ConversationListApi,
  10. ConversationPinApi,
  11. ConversationRenameApi,
  12. ConversationUnPinApi,
  13. )
  14. from .explore.message import (
  15. MessageFeedbackApi,
  16. MessageListApi,
  17. MessageMoreLikeThisApi,
  18. MessageSuggestedQuestionApi,
  19. )
  20. from .explore.workflow import (
  21. InstalledAppWorkflowRunApi,
  22. InstalledAppWorkflowTaskStopApi,
  23. )
  24. from .files import FileApi, FilePreviewApi, FileSupportTypeApi
  25. from .remote_files import RemoteFileInfoApi, RemoteFileUploadApi
  26. bp = Blueprint("console", __name__, url_prefix="/console/api")
  27. api = ExternalApi(
  28. bp,
  29. version="1.0",
  30. title="Console API",
  31. description="Console management APIs for app configuration, monitoring, and administration",
  32. )
  33. # Create namespace
  34. console_ns = Namespace("console", description="Console management API operations", path="/")
  35. # File
  36. api.add_resource(FileApi, "/files/upload")
  37. api.add_resource(FilePreviewApi, "/files/<uuid:file_id>/preview")
  38. api.add_resource(FileSupportTypeApi, "/files/support-type")
  39. # Remote files
  40. api.add_resource(RemoteFileInfoApi, "/remote-files/<path:url>")
  41. api.add_resource(RemoteFileUploadApi, "/remote-files/upload")
  42. # Import App
  43. api.add_resource(AppImportApi, "/apps/imports")
  44. api.add_resource(AppImportConfirmApi, "/apps/imports/<string:import_id>/confirm")
  45. api.add_resource(AppImportCheckDependenciesApi, "/apps/imports/<string:app_id>/check-dependencies")
  46. # Import other controllers
  47. from . import (
  48. admin, # pyright: ignore[reportUnusedImport]
  49. apikey, # pyright: ignore[reportUnusedImport]
  50. extension, # pyright: ignore[reportUnusedImport]
  51. feature, # pyright: ignore[reportUnusedImport]
  52. init_validate, # pyright: ignore[reportUnusedImport]
  53. ping, # pyright: ignore[reportUnusedImport]
  54. setup, # pyright: ignore[reportUnusedImport]
  55. version, # pyright: ignore[reportUnusedImport]
  56. )
  57. # Import app controllers
  58. from .app import (
  59. advanced_prompt_template, # pyright: ignore[reportUnusedImport]
  60. agent, # pyright: ignore[reportUnusedImport]
  61. annotation, # pyright: ignore[reportUnusedImport]
  62. app, # pyright: ignore[reportUnusedImport]
  63. audio, # pyright: ignore[reportUnusedImport]
  64. completion, # pyright: ignore[reportUnusedImport]
  65. conversation, # pyright: ignore[reportUnusedImport]
  66. conversation_variables, # pyright: ignore[reportUnusedImport]
  67. generator, # pyright: ignore[reportUnusedImport]
  68. mcp_server, # pyright: ignore[reportUnusedImport]
  69. message, # pyright: ignore[reportUnusedImport]
  70. model_config, # pyright: ignore[reportUnusedImport]
  71. ops_trace, # pyright: ignore[reportUnusedImport]
  72. site, # pyright: ignore[reportUnusedImport]
  73. statistic, # pyright: ignore[reportUnusedImport]
  74. workflow, # pyright: ignore[reportUnusedImport]
  75. workflow_app_log, # pyright: ignore[reportUnusedImport]
  76. workflow_draft_variable, # pyright: ignore[reportUnusedImport]
  77. workflow_run, # pyright: ignore[reportUnusedImport]
  78. workflow_statistic, # pyright: ignore[reportUnusedImport]
  79. )
  80. # Import auth controllers
  81. from .auth import (
  82. activate, # pyright: ignore[reportUnusedImport]
  83. data_source_bearer_auth, # pyright: ignore[reportUnusedImport]
  84. data_source_oauth, # pyright: ignore[reportUnusedImport]
  85. forgot_password, # pyright: ignore[reportUnusedImport]
  86. login, # pyright: ignore[reportUnusedImport]
  87. oauth, # pyright: ignore[reportUnusedImport]
  88. oauth_server, # pyright: ignore[reportUnusedImport]
  89. )
  90. # Import billing controllers
  91. from .billing import billing, compliance # pyright: ignore[reportUnusedImport]
  92. # Import datasets controllers
  93. from .datasets import (
  94. data_source, # pyright: ignore[reportUnusedImport]
  95. datasets, # pyright: ignore[reportUnusedImport]
  96. datasets_document, # pyright: ignore[reportUnusedImport]
  97. datasets_segments, # pyright: ignore[reportUnusedImport]
  98. external, # pyright: ignore[reportUnusedImport]
  99. hit_testing, # pyright: ignore[reportUnusedImport]
  100. metadata, # pyright: ignore[reportUnusedImport]
  101. website, # pyright: ignore[reportUnusedImport]
  102. )
  103. # Import explore controllers
  104. from .explore import (
  105. installed_app, # pyright: ignore[reportUnusedImport]
  106. parameter, # pyright: ignore[reportUnusedImport]
  107. recommended_app, # pyright: ignore[reportUnusedImport]
  108. saved_message, # pyright: ignore[reportUnusedImport]
  109. )
  110. # Import tag controllers
  111. from .tag import tags # pyright: ignore[reportUnusedImport]
  112. # Import workspace controllers
  113. from .workspace import (
  114. account, # pyright: ignore[reportUnusedImport]
  115. agent_providers, # pyright: ignore[reportUnusedImport]
  116. endpoint, # pyright: ignore[reportUnusedImport]
  117. load_balancing_config, # pyright: ignore[reportUnusedImport]
  118. members, # pyright: ignore[reportUnusedImport]
  119. model_providers, # pyright: ignore[reportUnusedImport]
  120. models, # pyright: ignore[reportUnusedImport]
  121. plugin, # pyright: ignore[reportUnusedImport]
  122. tool_providers, # pyright: ignore[reportUnusedImport]
  123. workspace, # pyright: ignore[reportUnusedImport]
  124. )
  125. # Explore Audio
  126. api.add_resource(ChatAudioApi, "/installed-apps/<uuid:installed_app_id>/audio-to-text", endpoint="installed_app_audio")
  127. api.add_resource(ChatTextApi, "/installed-apps/<uuid:installed_app_id>/text-to-audio", endpoint="installed_app_text")
  128. # Explore Completion
  129. api.add_resource(
  130. CompletionApi, "/installed-apps/<uuid:installed_app_id>/completion-messages", endpoint="installed_app_completion"
  131. )
  132. api.add_resource(
  133. CompletionStopApi,
  134. "/installed-apps/<uuid:installed_app_id>/completion-messages/<string:task_id>/stop",
  135. endpoint="installed_app_stop_completion",
  136. )
  137. api.add_resource(
  138. ChatApi, "/installed-apps/<uuid:installed_app_id>/chat-messages", endpoint="installed_app_chat_completion"
  139. )
  140. api.add_resource(
  141. ChatStopApi,
  142. "/installed-apps/<uuid:installed_app_id>/chat-messages/<string:task_id>/stop",
  143. endpoint="installed_app_stop_chat_completion",
  144. )
  145. # Explore Conversation
  146. api.add_resource(
  147. ConversationRenameApi,
  148. "/installed-apps/<uuid:installed_app_id>/conversations/<uuid:c_id>/name",
  149. endpoint="installed_app_conversation_rename",
  150. )
  151. api.add_resource(
  152. ConversationListApi, "/installed-apps/<uuid:installed_app_id>/conversations", endpoint="installed_app_conversations"
  153. )
  154. api.add_resource(
  155. ConversationApi,
  156. "/installed-apps/<uuid:installed_app_id>/conversations/<uuid:c_id>",
  157. endpoint="installed_app_conversation",
  158. )
  159. api.add_resource(
  160. ConversationPinApi,
  161. "/installed-apps/<uuid:installed_app_id>/conversations/<uuid:c_id>/pin",
  162. endpoint="installed_app_conversation_pin",
  163. )
  164. api.add_resource(
  165. ConversationUnPinApi,
  166. "/installed-apps/<uuid:installed_app_id>/conversations/<uuid:c_id>/unpin",
  167. endpoint="installed_app_conversation_unpin",
  168. )
  169. # Explore Message
  170. api.add_resource(MessageListApi, "/installed-apps/<uuid:installed_app_id>/messages", endpoint="installed_app_messages")
  171. api.add_resource(
  172. MessageFeedbackApi,
  173. "/installed-apps/<uuid:installed_app_id>/messages/<uuid:message_id>/feedbacks",
  174. endpoint="installed_app_message_feedback",
  175. )
  176. api.add_resource(
  177. MessageMoreLikeThisApi,
  178. "/installed-apps/<uuid:installed_app_id>/messages/<uuid:message_id>/more-like-this",
  179. endpoint="installed_app_more_like_this",
  180. )
  181. api.add_resource(
  182. MessageSuggestedQuestionApi,
  183. "/installed-apps/<uuid:installed_app_id>/messages/<uuid:message_id>/suggested-questions",
  184. endpoint="installed_app_suggested_question",
  185. )
  186. # Explore Workflow
  187. api.add_resource(InstalledAppWorkflowRunApi, "/installed-apps/<uuid:installed_app_id>/workflows/run")
  188. api.add_resource(
  189. InstalledAppWorkflowTaskStopApi, "/installed-apps/<uuid:installed_app_id>/workflows/tasks/<string:task_id>/stop"
  190. )
  191. api.add_namespace(console_ns)