From e8f93380d1e260017f2483c5f410a5cfb0a0219c Mon Sep 17 00:00:00 2001 From: wangxiaolei Date: Tue, 2 Dec 2025 10:25:52 +0800 Subject: [PATCH] Fix validation (#28985) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- api/core/app/entities/app_invoke_entities.py | 37 ++++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/api/core/app/entities/app_invoke_entities.py b/api/core/app/entities/app_invoke_entities.py index 81c355eb10..0cb573cb86 100644 --- a/api/core/app/entities/app_invoke_entities.py +++ b/api/core/app/entities/app_invoke_entities.py @@ -4,15 +4,15 @@ from typing import TYPE_CHECKING, Any, Optional from pydantic import BaseModel, ConfigDict, Field, ValidationInfo, field_validator -if TYPE_CHECKING: - from core.ops.ops_trace_manager import TraceQueueManager - from constants import UUID_NIL from core.app.app_config.entities import EasyUIBasedAppConfig, WorkflowUIBasedAppConfig from core.entities.provider_configuration import ProviderModelBundle from core.file import File, FileUploadConfig from core.model_runtime.entities.model_entities import AIModelEntity +if TYPE_CHECKING: + from core.ops.ops_trace_manager import TraceQueueManager + class InvokeFrom(StrEnum): """ @@ -130,7 +130,7 @@ class AppGenerateEntity(BaseModel): # extra parameters, like: auto_generate_conversation_name extras: dict[str, Any] = Field(default_factory=dict) - # tracing instance; use forward ref to avoid circular import at import time + # tracing instance trace_manager: Optional["TraceQueueManager"] = None @@ -275,23 +275,14 @@ class RagPipelineGenerateEntity(WorkflowAppGenerateEntity): start_node_id: str | None = None -# NOTE: Avoid importing heavy tracing modules at import time to prevent circular imports. -# Forward reference to TraceQueueManager is kept as a string; we rebuild with a stub now to -# avoid Pydantic forward-ref errors in test contexts, and with the real class at app startup. +from core.ops.ops_trace_manager import TraceQueueManager - -# Minimal stub to satisfy Pydantic model_rebuild in environments where the real type is not importable yet. -class _TraceQueueManagerStub: - pass - - -_ns = {"TraceQueueManager": _TraceQueueManagerStub} -AppGenerateEntity.model_rebuild(_types_namespace=_ns) -EasyUIBasedAppGenerateEntity.model_rebuild(_types_namespace=_ns) -ConversationAppGenerateEntity.model_rebuild(_types_namespace=_ns) -ChatAppGenerateEntity.model_rebuild(_types_namespace=_ns) -CompletionAppGenerateEntity.model_rebuild(_types_namespace=_ns) -AgentChatAppGenerateEntity.model_rebuild(_types_namespace=_ns) -AdvancedChatAppGenerateEntity.model_rebuild(_types_namespace=_ns) -WorkflowAppGenerateEntity.model_rebuild(_types_namespace=_ns) -RagPipelineGenerateEntity.model_rebuild(_types_namespace=_ns) +AppGenerateEntity.model_rebuild() +EasyUIBasedAppGenerateEntity.model_rebuild() +ConversationAppGenerateEntity.model_rebuild() +ChatAppGenerateEntity.model_rebuild() +CompletionAppGenerateEntity.model_rebuild() +AgentChatAppGenerateEntity.model_rebuild() +AdvancedChatAppGenerateEntity.model_rebuild() +WorkflowAppGenerateEntity.model_rebuild() +RagPipelineGenerateEntity.model_rebuild()