From 33062288404d95358e59ac3188e335d87d729477 Mon Sep 17 00:00:00 2001 From: kenwoodjw Date: Fri, 21 Mar 2025 20:57:02 +0800 Subject: [PATCH] fix: workflow file add related-id in iteration node (#16255) Signed-off-by: kenwoodjw --- api/core/file/enums.py | 1 + api/core/file/file_manager.py | 2 ++ web/app/components/workflow/constants.ts | 4 ++++ web/app/components/workflow/nodes/constants.ts | 2 +- web/app/components/workflow/nodes/loop/default.ts | 2 +- web/app/components/workflow/types.ts | 1 + 6 files changed, 10 insertions(+), 2 deletions(-) diff --git a/api/core/file/enums.py b/api/core/file/enums.py index 06b99d3eb..a50a651dd 100644 --- a/api/core/file/enums.py +++ b/api/core/file/enums.py @@ -49,6 +49,7 @@ class FileAttribute(StrEnum): TRANSFER_METHOD = "transfer_method" URL = "url" EXTENSION = "extension" + RELATED_ID = "related_id" class ArrayFileAttribute(StrEnum): diff --git a/api/core/file/file_manager.py b/api/core/file/file_manager.py index 4a50fb85c..4ebe997ac 100644 --- a/api/core/file/file_manager.py +++ b/api/core/file/file_manager.py @@ -34,6 +34,8 @@ def get_attr(*, file: File, attr: FileAttribute): return file.remote_url case FileAttribute.EXTENSION: return file.extension + case FileAttribute.RELATED_ID: + return file.related_id def to_prompt_message_content( diff --git a/web/app/components/workflow/constants.ts b/web/app/components/workflow/constants.ts index 63f45b82b..19195b168 100644 --- a/web/app/components/workflow/constants.ts +++ b/web/app/components/workflow/constants.ts @@ -556,6 +556,10 @@ export const FILE_STRUCT: Var[] = [ variable: 'url', type: VarType.string, }, + { + variable: 'related_id', + type: VarType.string, + }, ] export const DEFAULT_FILE_UPLOAD_SETTING = { diff --git a/web/app/components/workflow/nodes/constants.ts b/web/app/components/workflow/nodes/constants.ts index 239873121..0cd692223 100644 --- a/web/app/components/workflow/nodes/constants.ts +++ b/web/app/components/workflow/nodes/constants.ts @@ -100,5 +100,5 @@ export const TRANSFER_METHOD = [ { value: TransferMethod.remote_url, i18nKey: 'url' }, ] -export const SUB_VARIABLES = ['type', 'size', 'name', 'url', 'extension', 'mime_type', 'transfer_method'] +export const SUB_VARIABLES = ['type', 'size', 'name', 'url', 'extension', 'mime_type', 'transfer_method', 'related_id'] export const OUTPUT_FILE_SUB_VARIABLES = SUB_VARIABLES.filter(key => key !== 'transfer_method') diff --git a/web/app/components/workflow/nodes/loop/default.ts b/web/app/components/workflow/nodes/loop/default.ts index 67b1f6edd..d5d1e524b 100644 --- a/web/app/components/workflow/nodes/loop/default.ts +++ b/web/app/components/workflow/nodes/loop/default.ts @@ -83,7 +83,7 @@ export const TRANSFER_METHOD = [ { value: TransferMethod.remote_url, i18nKey: 'url' }, ] -export const SUB_VARIABLES = ['type', 'size', 'name', 'url', 'extension', 'mime_type', 'transfer_method'] +export const SUB_VARIABLES = ['type', 'size', 'name', 'url', 'extension', 'mime_type', 'transfer_method', 'related_id'] export const OUTPUT_FILE_SUB_VARIABLES = SUB_VARIABLES.filter(key => key !== 'transfer_method') export default nodeDefault diff --git a/web/app/components/workflow/types.ts b/web/app/components/workflow/types.ts index 9766f4e0b..7caa07eaa 100644 --- a/web/app/components/workflow/types.ts +++ b/web/app/components/workflow/types.ts @@ -339,6 +339,7 @@ export type RunFile = { transfer_method: TransferMethod[] url?: string upload_file_id?: string + related_id?: string } export type WorkflowRunningData = {