diff --git a/llamaMultiAgentApp.py b/llamaMultiAgentApp.py new file mode 100644 index 0000000..f5f7831 --- /dev/null +++ b/llamaMultiAgentApp.py @@ -0,0 +1,69 @@ +import tkinter as tk +from tkinter import simpledialog, messagebox +import ollama +import random + +class Agent: + def __init__(self, role): + self.role = role + + def analyze_task(self, task): + response = ollama.chat( + model='llama3.2-vision', + messages=[{ + 'role': 'user', + 'content': f"As a {self.role}, analyze this task: {task}" + }] + ) + return response['message']['content'] + +class Supervisor: + def __init__(self): + self.agents = [] + + def add_agent(self, agent): + self.agents.append(agent) + + def assign_task(self, task): + for agent in self.agents: + analysis = agent.analyze_task(task) + response = ollama.chat( + model='llama3.2-vision', + messages=[{ + 'role': 'user', + 'content': f"As a supervisor, is this analysis satisfactory? Analysis: {analysis}" + }] + ) + if "yes" in response['message']['content'].lower(): + return f"Task solved by {agent.role}" + return "Task not solved satisfactorily" + +def create_multi_agent_system(): + roles = ['Detective', 'Scientist', 'Artist', 'Engineer', 'Philosopher'] + num_agents = simpledialog.askinteger("Input", "How many agents? (2-5)", minvalue=2, maxvalue=5) + + supervisor = Supervisor() + + for _ in range(num_agents): + role = simpledialog.askstring("Input", f"Choose a role for agent {_+1}:\n" + "\n".join(roles)) + if role in roles: + supervisor.add_agent(Agent(role)) + roles.remove(role) + else: + messagebox.showerror("Error", "Invalid role selected") + return None + + return supervisor + +def main(): + root = tk.Tk() + root.withdraw() + + system = create_multi_agent_system() + if system: + task = simpledialog.askstring("Input", "Enter the task:") + result = system.assign_task(task) + messagebox.showinfo("Result", result) + +if __name__ == "__main__": + main()