app_invoke_entities.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. from enum import Enum
  2. from typing import Any, Optional
  3. from pydantic import BaseModel
  4. from core.app.app_config.entities import AppConfig, EasyUIBasedAppConfig, WorkflowUIBasedAppConfig
  5. from core.entities.provider_configuration import ProviderModelBundle
  6. from core.file.file_obj import FileVar
  7. from core.model_runtime.entities.model_entities import AIModelEntity
  8. class InvokeFrom(Enum):
  9. """
  10. Invoke From.
  11. """
  12. SERVICE_API = 'service-api'
  13. WEB_APP = 'web-app'
  14. EXPLORE = 'explore'
  15. DEBUGGER = 'debugger'
  16. @classmethod
  17. def value_of(cls, value: str) -> 'InvokeFrom':
  18. """
  19. Get value of given mode.
  20. :param value: mode value
  21. :return: mode
  22. """
  23. for mode in cls:
  24. if mode.value == value:
  25. return mode
  26. raise ValueError(f'invalid invoke from value {value}')
  27. def to_source(self) -> str:
  28. """
  29. Get source of invoke from.
  30. :return: source
  31. """
  32. if self == InvokeFrom.WEB_APP:
  33. return 'web_app'
  34. elif self == InvokeFrom.DEBUGGER:
  35. return 'dev'
  36. elif self == InvokeFrom.EXPLORE:
  37. return 'explore_app'
  38. elif self == InvokeFrom.SERVICE_API:
  39. return 'api'
  40. return 'dev'
  41. class ModelConfigWithCredentialsEntity(BaseModel):
  42. """
  43. Model Config With Credentials Entity.
  44. """
  45. provider: str
  46. model: str
  47. model_schema: AIModelEntity
  48. mode: str
  49. provider_model_bundle: ProviderModelBundle
  50. credentials: dict[str, Any] = {}
  51. parameters: dict[str, Any] = {}
  52. stop: list[str] = []
  53. class AppGenerateEntity(BaseModel):
  54. """
  55. App Generate Entity.
  56. """
  57. task_id: str
  58. # app config
  59. app_config: AppConfig
  60. inputs: dict[str, Any]
  61. files: list[FileVar] = []
  62. user_id: str
  63. # extras
  64. stream: bool
  65. invoke_from: InvokeFrom
  66. # invoke call depth
  67. call_depth: int = 0
  68. # extra parameters, like: auto_generate_conversation_name
  69. extras: dict[str, Any] = {}
  70. class EasyUIBasedAppGenerateEntity(AppGenerateEntity):
  71. """
  72. Chat Application Generate Entity.
  73. """
  74. # app config
  75. app_config: EasyUIBasedAppConfig
  76. model_config: ModelConfigWithCredentialsEntity
  77. query: Optional[str] = None
  78. class ChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):
  79. """
  80. Chat Application Generate Entity.
  81. """
  82. conversation_id: Optional[str] = None
  83. class CompletionAppGenerateEntity(EasyUIBasedAppGenerateEntity):
  84. """
  85. Completion Application Generate Entity.
  86. """
  87. pass
  88. class AgentChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):
  89. """
  90. Agent Chat Application Generate Entity.
  91. """
  92. conversation_id: Optional[str] = None
  93. class AdvancedChatAppGenerateEntity(AppGenerateEntity):
  94. """
  95. Advanced Chat Application Generate Entity.
  96. """
  97. # app config
  98. app_config: WorkflowUIBasedAppConfig
  99. conversation_id: Optional[str] = None
  100. query: Optional[str] = None
  101. class SingleIterationRunEntity(BaseModel):
  102. """
  103. Single Iteration Run Entity.
  104. """
  105. node_id: str
  106. inputs: dict
  107. single_iteration_run: Optional[SingleIterationRunEntity] = None
  108. class WorkflowAppGenerateEntity(AppGenerateEntity):
  109. """
  110. Workflow Application Generate Entity.
  111. """
  112. # app config
  113. app_config: WorkflowUIBasedAppConfig
  114. class SingleIterationRunEntity(BaseModel):
  115. """
  116. Single Iteration Run Entity.
  117. """
  118. node_id: str
  119. inputs: dict
  120. single_iteration_run: Optional[SingleIterationRunEntity] = None