|
@@ -2,8 +2,9 @@ from collections.abc import Mapping
|
|
|
from enum import Enum
|
|
|
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.entities.provider_configuration import ProviderModelBundle
|
|
|
from core.file.file_obj import FileVar
|
|
@@ -116,13 +117,36 @@ class EasyUIBasedAppGenerateEntity(AppGenerateEntity):
|
|
|
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
|
|
|
- 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):
|
|
@@ -133,16 +157,15 @@ class CompletionAppGenerateEntity(EasyUIBasedAppGenerateEntity):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-class AgentChatAppGenerateEntity(EasyUIBasedAppGenerateEntity):
|
|
|
+class AgentChatAppGenerateEntity(ConversationAppGenerateEntity, EasyUIBasedAppGenerateEntity):
|
|
|
"""
|
|
|
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.
|
|
|
"""
|
|
@@ -150,8 +173,6 @@ class AdvancedChatAppGenerateEntity(AppGenerateEntity):
|
|
|
# app config
|
|
|
app_config: WorkflowUIBasedAppConfig
|
|
|
|
|
|
- conversation_id: Optional[str] = None
|
|
|
- parent_message_id: Optional[str] = None
|
|
|
workflow_run_id: Optional[str] = None
|
|
|
query: str
|
|
|
|