From 7c659755075a92ebc408f736683d48895e0fee7b Mon Sep 17 00:00:00 2001 From: EvanYao <2869018789@qq.com> Date: Sun, 24 May 2026 09:44:27 +0800 Subject: [PATCH] fix: handle null summary_index_setting in KnowledgeIndexNodeData (#36355) --- .../workflow/nodes/knowledge_index/entities.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/api/core/workflow/nodes/knowledge_index/entities.py b/api/core/workflow/nodes/knowledge_index/entities.py index 260881e49c..12f47f3d57 100644 --- a/api/core/workflow/nodes/knowledge_index/entities.py +++ b/api/core/workflow/nodes/knowledge_index/entities.py @@ -1,6 +1,6 @@ -from typing import Union +from typing import Any, Union -from pydantic import BaseModel +from pydantic import BaseModel, field_validator from core.rag.entities import RerankingModelConfig, WeightedScoreConfig from core.rag.index_processor.index_processor_base import SummaryIndexSettingDict @@ -101,3 +101,14 @@ class KnowledgeIndexNodeData(BaseNodeData): index_chunk_variable_selector: list[str] indexing_technique: str | None = None summary_index_setting: SummaryIndexSettingDict | None = None + + @field_validator("summary_index_setting", mode="before") + @classmethod + def normalize_summary_index_setting(cls, v: Any) -> Any: + """Treat dicts with enable=None (or missing enable) as None (#36233).""" + if v is None: + return None + if isinstance(v, dict): + if v.get("enable") is None: + return None + return v