You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.5 KiB
2.5 KiB
# Module/Function Name: ConcurrentWorkflow
class swarms.structs.ConcurrentWorkflow(max_workers, autosave, saved_state_filepath):
"""
ConcurrentWorkflow class for running a set of tasks concurrently using N autonomous agents.
Args:
- max_workers (int): The maximum number of workers to use for concurrent execution.
- autosave (bool): Whether to autosave the workflow state.
- saved_state_filepath (Optional[str]): The file path to save the workflow state.
"""
def add(self, task, tasks=None):
"""Adds a task to the workflow.
Args:
- task (Task): Task to add to the workflow.
- tasks (List[Task]): List of tasks to add to the workflow (optional).
"""
try:
# Implementation of the function goes here
except Exception as error:
print(f"[ERROR][ConcurrentWorkflow] {error}")
raise error
def run(self, print_results=False, return_results=False):
"""
Executes the tasks in parallel using a ThreadPoolExecutor.
Args:
- print_results (bool): Whether to print the results of each task. Default is False.
- return_results (bool): Whether to return the results of each task. Default is False.
Returns:
- (List[Any]): A list of the results of each task, if return_results is True. Otherwise, returns None.
"""
try:
# Implementation of the function goes here
except Exception as e:
print(f"Task {task} generated an exception: {e}")
return results if self.return_results else None
def _execute_task(self, task):
"""Executes a task.
Args:
- task (Task): Task to execute.
Returns:
- result: The result of executing the task.
"""
try:
# Implementation of the function goes here
except Exception as error:
print(f"[ERROR][ConcurrentWorkflow] {error}")
raise error
# Usage example:
from swarms.models import OpenAIChat
from swarms.structs import ConcurrentWorkflow
llm = OpenAIChat(openai_api_key="")
workflow = ConcurrentWorkflow(max_workers=5)
workflow.add("What's the weather in miami", llm)
workflow.add("Create a report on these metrics", llm)
workflow.run()
workflow.tasks
"""
```