fix: workflow as tool type
This commit is contained in:
parent
c8b0160ea9
commit
4a8d3c54ca
@ -4,7 +4,7 @@ import os
|
|||||||
import threading
|
import threading
|
||||||
import uuid
|
import uuid
|
||||||
from collections.abc import Generator
|
from collections.abc import Generator
|
||||||
from typing import Union
|
from typing import Literal, Union, overload
|
||||||
|
|
||||||
from flask import Flask, current_app
|
from flask import Flask, current_app
|
||||||
from pydantic import ValidationError
|
from pydantic import ValidationError
|
||||||
@ -32,6 +32,28 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class WorkflowAppGenerator(BaseAppGenerator):
|
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(
|
def generate(
|
||||||
self, app_model: App,
|
self, app_model: App,
|
||||||
workflow: Workflow,
|
workflow: Workflow,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from collections.abc import Generator, Mapping
|
from collections.abc import Generator
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import TYPE_CHECKING, Any, Optional, Union
|
from typing import TYPE_CHECKING, Any, Optional, Union
|
||||||
|
@ -48,6 +48,8 @@ class WorkflowTool(Tool):
|
|||||||
from core.app.apps.workflow.app_generator import WorkflowAppGenerator
|
from core.app.apps.workflow.app_generator import WorkflowAppGenerator
|
||||||
generator = WorkflowAppGenerator()
|
generator = WorkflowAppGenerator()
|
||||||
|
|
||||||
|
assert self.runtime and self.runtime.invoke_from
|
||||||
|
|
||||||
result = generator.generate(
|
result = generator.generate(
|
||||||
app_model=app,
|
app_model=app,
|
||||||
workflow=workflow,
|
workflow=workflow,
|
||||||
@ -154,7 +156,7 @@ class WorkflowTool(Tool):
|
|||||||
try:
|
try:
|
||||||
file_var_list = [FileVar(**f) for f in file]
|
file_var_list = [FileVar(**f) for f in file]
|
||||||
for file_var in file_var_list:
|
for file_var in file_var_list:
|
||||||
file_dict = {
|
file_dict: dict[str, Any] = {
|
||||||
'transfer_method': file_var.transfer_method.value,
|
'transfer_method': file_var.transfer_method.value,
|
||||||
'type': file_var.type.value,
|
'type': file_var.type.value,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user