From 4da6ec787e8bb26a2396f0df965f564e1d2d009c Mon Sep 17 00:00:00 2001 From: goofy <38034027+goofy-z@users.noreply.github.com> Date: Wed, 13 Aug 2025 14:07:13 +0800 Subject: [PATCH] feat: support to upload files for visual model call when running LLM node for debugging in a single step (#23521) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- api/core/workflow/nodes/llm/node.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/api/core/workflow/nodes/llm/node.py b/api/core/workflow/nodes/llm/node.py index dfc2a0000b..c0c0cb405c 100644 --- a/api/core/workflow/nodes/llm/node.py +++ b/api/core/workflow/nodes/llm/node.py @@ -5,7 +5,7 @@ import logging from collections.abc import Generator, Mapping, Sequence from typing import TYPE_CHECKING, Any, Optional -from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity +from core.app.entities.app_invoke_entities import InvokeFrom, ModelConfigWithCredentialsEntity from core.file import FileType, file_manager from core.helper.code_executor import CodeExecutor, CodeLanguage from core.llm_generator.output_parser.errors import OutputParserError @@ -194,6 +194,17 @@ class LLMNode(BaseNode): else [] ) + # single step run fetch file from sys files + if not files and self.invoke_from == InvokeFrom.DEBUGGER and not self.previous_node_id: + files = ( + llm_utils.fetch_files( + variable_pool=variable_pool, + selector=["sys", "files"], + ) + if self._node_data.vision.enabled + else [] + ) + if files: node_inputs["#files#"] = [file.to_dict() for file in files]