|  | @@ -2,8 +2,9 @@ from collections.abc import Mapping
 | 
											
												
													
														|  |  from enum import Enum
 |  |  from enum import Enum
 | 
											
												
													
														|  |  from typing import Any, Optional
 |  |  from typing import Any, Optional
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -from pydantic import BaseModel, ConfigDict
 |  | 
 | 
											
												
													
														|  | 
 |  | +from pydantic import BaseModel, ConfigDict, Field, ValidationInfo, field_validator
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +from constants import UUID_NIL
 | 
											
												
													
														|  |  from core.app.app_config.entities import AppConfig, EasyUIBasedAppConfig, WorkflowUIBasedAppConfig
 |  |  from core.app.app_config.entities import AppConfig, EasyUIBasedAppConfig, WorkflowUIBasedAppConfig
 | 
											
												
													
														|  |  from core.entities.provider_configuration import ProviderModelBundle
 |  |  from core.entities.provider_configuration import ProviderModelBundle
 | 
											
												
													
														|  |  from core.file.file_obj import FileVar
 |  |  from core.file.file_obj import FileVar
 | 
											
										
											
												
													
														|  | @@ -116,13 +117,36 @@ class EasyUIBasedAppGenerateEntity(AppGenerateEntity):
 | 
											
												
													
														|  |      model_config = ConfigDict(protected_namespaces=())
 |  |      model_config = ConfigDict(protected_namespaces=())
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -class ChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):
 |  | 
 | 
											
												
													
														|  | 
 |  | +class ConversationAppGenerateEntity(AppGenerateEntity):
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  | -    Chat Application Generate Entity.
 |  | 
 | 
											
												
													
														|  | 
 |  | +    Base entity for conversation-based app generation.
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      conversation_id: Optional[str] = None
 |  |      conversation_id: Optional[str] = None
 | 
											
												
													
														|  | -    parent_message_id: Optional[str] = None
 |  | 
 | 
											
												
													
														|  | 
 |  | +    parent_message_id: Optional[str] = Field(
 | 
											
												
													
														|  | 
 |  | +        default=None,
 | 
											
												
													
														|  | 
 |  | +        description=(
 | 
											
												
													
														|  | 
 |  | +            "Starting from v0.9.0, parent_message_id is used to support message regeneration for internal chat API."
 | 
											
												
													
														|  | 
 |  | +            "For service API, we need to ensure its forward compatibility, "
 | 
											
												
													
														|  | 
 |  | +            "so passing in the parent_message_id as request arg is not supported for now. "
 | 
											
												
													
														|  | 
 |  | +            "It needs to be set to UUID_NIL so that the subsequent processing will treat it as legacy messages."
 | 
											
												
													
														|  | 
 |  | +        ),
 | 
											
												
													
														|  | 
 |  | +    )
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    @field_validator("parent_message_id")
 | 
											
												
													
														|  | 
 |  | +    @classmethod
 | 
											
												
													
														|  | 
 |  | +    def validate_parent_message_id(cls, v, info: ValidationInfo):
 | 
											
												
													
														|  | 
 |  | +        if info.data.get("invoke_from") == InvokeFrom.SERVICE_API and v != UUID_NIL:
 | 
											
												
													
														|  | 
 |  | +            raise ValueError("parent_message_id should be UUID_NIL for service API")
 | 
											
												
													
														|  | 
 |  | +        return v
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +class ChatAppGenerateEntity(ConversationAppGenerateEntity, EasyUIBasedAppGenerateEntity):
 | 
											
												
													
														|  | 
 |  | +    """
 | 
											
												
													
														|  | 
 |  | +    Chat Application Generate Entity.
 | 
											
												
													
														|  | 
 |  | +    """
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    pass
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  class CompletionAppGenerateEntity(EasyUIBasedAppGenerateEntity):
 |  |  class CompletionAppGenerateEntity(EasyUIBasedAppGenerateEntity):
 | 
											
										
											
												
													
														|  | @@ -133,16 +157,15 @@ class CompletionAppGenerateEntity(EasyUIBasedAppGenerateEntity):
 | 
											
												
													
														|  |      pass
 |  |      pass
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -class AgentChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):
 |  | 
 | 
											
												
													
														|  | 
 |  | +class AgentChatAppGenerateEntity(ConversationAppGenerateEntity, EasyUIBasedAppGenerateEntity):
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |      Agent Chat Application Generate Entity.
 |  |      Agent Chat Application Generate Entity.
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    conversation_id: Optional[str] = None
 |  | 
 | 
											
												
													
														|  | -    parent_message_id: Optional[str] = None
 |  | 
 | 
											
												
													
														|  | 
 |  | +    pass
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -class AdvancedChatAppGenerateEntity(AppGenerateEntity):
 |  | 
 | 
											
												
													
														|  | 
 |  | +class AdvancedChatAppGenerateEntity(ConversationAppGenerateEntity):
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
												
													
														|  |      Advanced Chat Application Generate Entity.
 |  |      Advanced Chat Application Generate Entity.
 | 
											
												
													
														|  |      """
 |  |      """
 | 
											
										
											
												
													
														|  | @@ -150,8 +173,6 @@ class AdvancedChatAppGenerateEntity(AppGenerateEntity):
 | 
											
												
													
														|  |      # app config
 |  |      # app config
 | 
											
												
													
														|  |      app_config: WorkflowUIBasedAppConfig
 |  |      app_config: WorkflowUIBasedAppConfig
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    conversation_id: Optional[str] = None
 |  | 
 | 
											
												
													
														|  | -    parent_message_id: Optional[str] = None
 |  | 
 | 
											
												
													
														|  |      workflow_run_id: Optional[str] = None
 |  |      workflow_run_id: Optional[str] = None
 | 
											
												
													
														|  |      query: str
 |  |      query: str
 | 
											
												
													
														|  |  
 |  |  
 |