update task and format

Former-commit-id: 289815faaa
group-chat
Kye 1 year ago
parent 465c167cd9
commit 2476f37fd6

@ -1,16 +1,23 @@
from typing import List, Callable from typing import List, Callable
from swarms import Worker from swarms import Worker
class MultiAgentDebate: class MultiAgentDebate:
def __init__(self, agents: List[Worker], selection_func: Callable[[int, List[Worker]], int]): def __init__(self, agents: List[Worker], selection_func: Callable[[int, List[Worker]], int]):
self.agents = agents self.agents = agents
self.selection_func = selection_func self.selection_func = selection_func
def run(self, task: str): def reset_agents(self):
results = [] for agent in self.agents:
agent.reset()
def inject_agent(self, agent: Worker):
self.agents.append(agent)
for i in range(len(self.agents)): def run(self, task: str, max_iters: int = None):
# Select the speaker based on the selection function self.reset_agents()
results = []
for i in range(max_iters or len(self.agents)):
speaker_idx = self.selection_func(i, self.agents) speaker_idx = self.selection_func(i, self.agents)
speaker = self.agents[speaker_idx] speaker = self.agents[speaker_idx]
response = speaker.run(task) response = speaker.run(task)
@ -20,6 +27,13 @@ class MultiAgentDebate:
}) })
return results return results
def update_task(self, task: str):
self.task = task
def format_results(self, results):
formatted_results = "\n".join([f"Agent {result['agent']} responded: {result['response']}" for result in results])
return formatted_results
# Define a selection function # Define a selection function
def select_speaker(step: int, agents: List[Worker]) -> int: def select_speaker(step: int, agents: List[Worker]) -> int:
# This function selects the speaker in a round-robin fashion # This function selects the speaker in a round-robin fashion
@ -41,7 +55,7 @@ debate = MultiAgentDebate(agents, select_speaker)
# Run task # Run task
task = "What were the winning boston marathon times for the past 5 years (ending in 2022)? Generate a table of the year, name, country of origin, and times." task = "What were the winning boston marathon times for the past 5 years (ending in 2022)? Generate a table of the year, name, country of origin, and times."
results = debate.run(task) results = debate.run(task, max_iters=4)
# Print results # Print results
for result in results: for result in results:

@ -24,7 +24,7 @@ class DialogueSimulator:
speaker_message = speaker.run(prompt) speaker_message = speaker.run(prompt)
for receiver in self.agents: for receiver in self.agents:
message_history = f"Speaker Name: {speaker.name} and message: {speake_message}" message_history = f"Speaker Name: {speaker.name} and message: {speaker_message}"
receiver.run(message_history) receiver.run(message_history)
print(f"({speaker.name}): {speaker_message}") print(f"({speaker.name}): {speaker_message}")

Loading…
Cancel
Save