From ae53286bcc1a46c8abcbc1991a13d4ecd7e2f2e6 Mon Sep 17 00:00:00 2001 From: QuantumGhost Date: Thu, 29 May 2025 02:43:35 +0800 Subject: [PATCH] feat(api): add support for conversation input fields in draft node run api --- api/controllers/console/app/workflow.py | 14 +++++++++++--- api/services/workflow_service.py | 4 +--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/api/controllers/console/app/workflow.py b/api/controllers/console/app/workflow.py index 45741a6d5a..116df9fa4f 100644 --- a/api/controllers/console/app/workflow.py +++ b/api/controllers/console/app/workflow.py @@ -402,15 +402,23 @@ class DraftWorkflowNodeRunApi(Resource): parser = reqparse.RequestParser() parser.add_argument("inputs", type=dict, required=True, nullable=False, location="json") + parser.add_argument("query", type=str, required=False, location="json", default="") + parser.add_argument("files", type=list, location="json", default=[]) args = parser.parse_args() - inputs = args.get("inputs") - if inputs == None: + user_inputs = args.get("inputs") + if user_inputs is None: raise ValueError("missing inputs") + # TODO(QuantumGhost): we should validate files here. workflow_service = WorkflowService() workflow_node_execution = workflow_service.run_draft_workflow_node( - app_model=app_model, node_id=node_id, user_inputs=inputs, account=current_user + app_model=app_model, + node_id=node_id, + user_inputs=user_inputs, + account=current_user, + query=args.get("query", ""), + files=args.get("files", []), ) return workflow_node_execution diff --git a/api/services/workflow_service.py b/api/services/workflow_service.py index c902721bdb..cc31bc39ea 100644 --- a/api/services/workflow_service.py +++ b/api/services/workflow_service.py @@ -1,12 +1,12 @@ import json import logging -import time import uuid from collections.abc import Callable, Generator, Mapping, Sequence from datetime import UTC, datetime from typing import Any, Optional from uuid import uuid4 +import time from sqlalchemy import select from sqlalchemy.orm import Session @@ -45,7 +45,6 @@ from models.workflow import ( ) from services.errors.app import IsDraftWorkflowError, WorkflowHashNotEqualError from services.workflow.workflow_converter import WorkflowConverter - from .errors.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError from .workflow_draft_variable_service import ( DraftVariableSaver, @@ -318,7 +317,6 @@ class WorkflowService: account: Account, query: str = "", files: list[File] | None = None, - conversation_id: str | None = None, ) -> WorkflowNodeExecution: """ Run draft workflow node