fix: workflow as tool type

This commit is contained in:
Yeuoly 2024-08-29 14:09:47 +08:00
parent c8b0160ea9
commit 4a8d3c54ca
No known key found for this signature in database
GPG Key ID: A66E7E320FB19F61
3 changed files with 27 additions and 3 deletions

View File

@ -4,7 +4,7 @@ import os
import threading
import uuid
from collections.abc import Generator
from typing import Union
from typing import Literal, Union, overload
from flask import Flask, current_app
from pydantic import ValidationError
@ -32,6 +32,28 @@ logger = logging.getLogger(__name__)
class WorkflowAppGenerator(BaseAppGenerator):
@overload
def generate(
self, app_model: App,
workflow: Workflow,
user: Union[Account, EndUser],
args: dict,
invoke_from: InvokeFrom,
stream: Literal[True] = True,
call_depth: int = 0,
) -> Generator[dict, None, None]: ...
@overload
def generate(
self, app_model: App,
workflow: Workflow,
user: Union[Account, EndUser],
args: dict,
invoke_from: InvokeFrom,
stream: Literal[False] = False,
call_depth: int = 0,
) -> dict: ...
def generate(
self, app_model: App,
workflow: Workflow,

View File

@ -1,5 +1,5 @@
from abc import ABC, abstractmethod
from collections.abc import Generator, Mapping
from collections.abc import Generator
from copy import deepcopy
from enum import Enum
from typing import TYPE_CHECKING, Any, Optional, Union

View File

@ -48,6 +48,8 @@ class WorkflowTool(Tool):
from core.app.apps.workflow.app_generator import WorkflowAppGenerator
generator = WorkflowAppGenerator()
assert self.runtime and self.runtime.invoke_from
result = generator.generate(
app_model=app,
workflow=workflow,
@ -154,7 +156,7 @@ class WorkflowTool(Tool):
try:
file_var_list = [FileVar(**f) for f in file]
for file_var in file_var_list:
file_dict = {
file_dict: dict[str, Any] = {
'transfer_method': file_var.transfer_method.value,
'type': file_var.type.value,
}