Просмотр исходного кода

Fixed the issue where recall the knowledge base in the iteration of the workflow and report errors when executing (#10060)

JasonVV 5 месяцев назад
Родитель
Сommit
219f5d9845
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      api/factories/variable_factory.py

+ 2 - 1
api/factories/variable_factory.py

@@ -10,6 +10,7 @@ from core.variables import (
     ArrayNumberVariable,
     ArrayObjectSegment,
     ArrayObjectVariable,
+    ArraySegment,
     ArrayStringSegment,
     ArrayStringVariable,
     FileSegment,
@@ -79,7 +80,7 @@ def build_segment(value: Any, /) -> Segment:
     if isinstance(value, list):
         items = [build_segment(item) for item in value]
         types = {item.value_type for item in items}
-        if len(types) != 1:
+        if len(types) != 1 or all(isinstance(item, ArraySegment) for item in items):
             return ArrayAnySegment(value=value)
         match types.pop():
             case SegmentType.STRING: