| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | from enum import Enumfrom typing import Any, Optionalfrom pydantic import BaseModelfrom core.app.app_config.entities import AppConfig, EasyUIBasedAppConfig, WorkflowUIBasedAppConfigfrom core.entities.provider_configuration import ProviderModelBundlefrom core.file.file_obj import FileVarfrom core.model_runtime.entities.model_entities import AIModelEntityclass InvokeFrom(Enum):    """    Invoke From.    """    SERVICE_API = 'service-api'    WEB_APP = 'web-app'    EXPLORE = 'explore'    DEBUGGER = 'debugger'    @classmethod    def value_of(cls, value: str) -> 'InvokeFrom':        """        Get value of given mode.        :param value: mode value        :return: mode        """        for mode in cls:            if mode.value == value:                return mode        raise ValueError(f'invalid invoke from value {value}')    def to_source(self) -> str:        """        Get source of invoke from.        :return: source        """        if self == InvokeFrom.WEB_APP:            return 'web_app'        elif self == InvokeFrom.DEBUGGER:            return 'dev'        elif self == InvokeFrom.EXPLORE:            return 'explore_app'        elif self == InvokeFrom.SERVICE_API:            return 'api'        return 'dev'class ModelConfigWithCredentialsEntity(BaseModel):    """    Model Config With Credentials Entity.    """    provider: str    model: str    model_schema: AIModelEntity    mode: str    provider_model_bundle: ProviderModelBundle    credentials: dict[str, Any] = {}    parameters: dict[str, Any] = {}    stop: list[str] = []class AppGenerateEntity(BaseModel):    """    App Generate Entity.    """    task_id: str    # app config    app_config: AppConfig    inputs: dict[str, Any]    files: list[FileVar] = []    user_id: str    # extras    stream: bool    invoke_from: InvokeFrom    # invoke call depth    call_depth: int = 0    # extra parameters, like: auto_generate_conversation_name    extras: dict[str, Any] = {}class EasyUIBasedAppGenerateEntity(AppGenerateEntity):    """    Chat Application Generate Entity.    """    # app config    app_config: EasyUIBasedAppConfig    model_config: ModelConfigWithCredentialsEntity    query: Optional[str] = Noneclass ChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):    """    Chat Application Generate Entity.    """    conversation_id: Optional[str] = Noneclass CompletionAppGenerateEntity(EasyUIBasedAppGenerateEntity):    """    Completion Application Generate Entity.    """    passclass AgentChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):    """    Agent Chat Application Generate Entity.    """    conversation_id: Optional[str] = Noneclass AdvancedChatAppGenerateEntity(AppGenerateEntity):    """    Advanced Chat Application Generate Entity.    """    # app config    app_config: WorkflowUIBasedAppConfig    conversation_id: Optional[str] = None    query: Optional[str] = None    class SingleIterationRunEntity(BaseModel):        """        Single Iteration Run Entity.        """        node_id: str        inputs: dict    single_iteration_run: Optional[SingleIterationRunEntity] = Noneclass WorkflowAppGenerateEntity(AppGenerateEntity):    """    Workflow Application Generate Entity.    """    # app config    app_config: WorkflowUIBasedAppConfig    class SingleIterationRunEntity(BaseModel):        """        Single Iteration Run Entity.        """        node_id: str        inputs: dict    single_iteration_run: Optional[SingleIterationRunEntity] = None
 |