diff --git a/docs/applications/business-analyst-agent.md b/docs/applications/business-analyst-agent.md index e2b38e4e..644232cc 100644 --- a/docs/applications/business-analyst-agent.md +++ b/docs/applications/business-analyst-agent.md @@ -96,7 +96,7 @@ tool_schema = QueryPlan( We specify the query, task specification and an appropriate system prompt. ```python -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms import Agent query = "How do we improve Nike's revenue in Q3 2024?" diff --git a/examples/agents/settings/various_models/example_agent.py b/examples/agents/settings/various_models/example_agent.py index e96fa12c..9944a947 100644 --- a/examples/agents/settings/various_models/example_agent.py +++ b/examples/agents/settings/various_models/example_agent.py @@ -4,7 +4,9 @@ import sys from dotenv import load_dotenv # Import the OpenAIChat model and the Agent struct -from swarms import OpenAIChat, Agent +from swarms import Agent + +from swarm_models import OpenAIChat # Load the environment variables load_dotenv() diff --git a/examples/agents/settings/various_models/groq_agent.py b/examples/agents/settings/various_models/groq_agent.py index c32c9098..44999c31 100644 --- a/examples/agents/settings/various_models/groq_agent.py +++ b/examples/agents/settings/various_models/groq_agent.py @@ -4,7 +4,7 @@ from swarms.prompts.finance_agent_sys_prompt import ( FINANCIAL_AGENT_SYS_PROMPT, ) from swarms.structs.agent import Agent -from swarms import OpenAIChat +from swarm_models import OpenAIChat # Example usage: api_key = os.getenv("GROQ_API_KEY") diff --git a/examples/agents/tools/agent_with_basemodel_output_type.py b/examples/agents/tools/agent_with_basemodel_output_type.py index 9a1c746a..71879764 100644 --- a/examples/agents/tools/agent_with_basemodel_output_type.py +++ b/examples/agents/tools/agent_with_basemodel_output_type.py @@ -1,5 +1,5 @@ from pydantic import BaseModel, Field -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms import Agent import os diff --git a/examples/agents/tools/tool_agent/tool_agent_with_llm.py b/examples/agents/tools/tool_agent/tool_agent_with_llm.py index 67ef0102..90166162 100644 --- a/examples/agents/tools/tool_agent/tool_agent_with_llm.py +++ b/examples/agents/tools/tool_agent/tool_agent_with_llm.py @@ -3,7 +3,9 @@ import os from dotenv import load_dotenv from pydantic import BaseModel, Field -from swarms import OpenAIChat, ToolAgent +from swarms import ToolAgent + +from swarm_models import OpenAIChat from swarms.tools.json_utils import base_model_to_json # Load the environment variables diff --git a/examples/agents/use_cases/finance/openai_model.py b/examples/agents/use_cases/finance/openai_model.py index 7845ffcd..1c573582 100644 --- a/examples/agents/use_cases/finance/openai_model.py +++ b/examples/agents/use_cases/finance/openai_model.py @@ -1,4 +1,6 @@ -from swarms import OpenAIChat, Agent +from swarms import Agent + +from swarm_models import OpenAIChat import os api_key = os.getenv("OPENAI_API_KEY") diff --git a/examples/collabs/swarms_example.ipynb b/examples/collabs/swarms_example.ipynb index 62bb00cb..831f34e4 100644 --- a/examples/collabs/swarms_example.ipynb +++ b/examples/collabs/swarms_example.ipynb @@ -512,7 +512,7 @@ from swarm_models import Anthropic\n", "\n", "from dotenv import load_dotenv\n", "\n", - "from swarms import OpenAIChat, Worker, tool\n", + "from swarm_models import OpenAIChat, Worker, tool\n", "\n", "# Loading environment variables from .env file\n", "load_dotenv()\n", diff --git a/examples/demos/business_analysis_swarm/business-analyst-agent.ipynb b/examples/demos/business_analysis_swarm/business-analyst-agent.ipynb index f921add3..c09913db 100644 --- a/examples/demos/business_analysis_swarm/business-analyst-agent.ipynb +++ b/examples/demos/business_analysis_swarm/business-analyst-agent.ipynb @@ -146,7 +146,7 @@ "metadata": {}, "outputs": [], "source": [ - "from swarms import OpenAIChat\n", + "from swarm_models import OpenAIChat\n", "from swarms import Agent\n", "\n", "query = \"How do we improve Nike's revenue in Q3 2024?\"\n", diff --git a/examples/demos/email_phiser/email_swarm.py b/examples/demos/email_phiser/email_swarm.py index 7ce62c42..d88618bf 100644 --- a/examples/demos/email_phiser/email_swarm.py +++ b/examples/demos/email_phiser/email_swarm.py @@ -1,7 +1,7 @@ import os -from swarms import OpenAIChat, Agent, AgentRearrange - +from swarms import Agent, AgentRearrange +from swarm_models import OpenAIChat llm = OpenAIChat( openai_api_key=os.getenv("OPENAI_API_KEY"), diff --git a/examples/demos/society_of_agents/accountant_team.py b/examples/demos/society_of_agents/accountant_team.py index 882890b1..bf6593e8 100644 --- a/examples/demos/society_of_agents/accountant_team.py +++ b/examples/demos/society_of_agents/accountant_team.py @@ -1,4 +1,5 @@ -from swarms import OpenAIChat, AgentRearrange, Agent +from swarms import AgentRearrange, Agent +from swarm_models import OpenAIChat from swarms.prompts.finance_agent_sys_prompt import ( FINANCIAL_AGENT_SYS_PROMPT, ) diff --git a/examples/structs/swarms/concurrent_swarm/concurrent_groq 2.py b/examples/structs/swarms/concurrent_swarm/concurrent_groq 2.py index edaaf2e2..026138c7 100644 --- a/examples/structs/swarms/concurrent_swarm/concurrent_groq 2.py +++ b/examples/structs/swarms/concurrent_swarm/concurrent_groq 2.py @@ -1,5 +1,6 @@ import os -from swarms import OpenAIChat, ConcurrentWorkflow, Agent +from swarms import ConcurrentWorkflow, Agent +from swarm_models import OpenAIChat TUTORIAL_WRITER_AGENT_SYS_PROMPT = """ ### **System Prompt: Tutorial Writer AI Agent** diff --git a/examples/structs/swarms/concurrent_swarm/concurrent_groq.py b/examples/structs/swarms/concurrent_swarm/concurrent_groq.py index edaaf2e2..026138c7 100644 --- a/examples/structs/swarms/concurrent_swarm/concurrent_groq.py +++ b/examples/structs/swarms/concurrent_swarm/concurrent_groq.py @@ -1,5 +1,6 @@ import os -from swarms import OpenAIChat, ConcurrentWorkflow, Agent +from swarms import ConcurrentWorkflow, Agent +from swarm_models import OpenAIChat TUTORIAL_WRITER_AGENT_SYS_PROMPT = """ ### **System Prompt: Tutorial Writer AI Agent** diff --git a/swarms/structs/monte_carlo_swarm.py b/examples/structs/swarms/experimental/monte_carlo_swarm.py similarity index 100% rename from swarms/structs/monte_carlo_swarm.py rename to examples/structs/swarms/experimental/monte_carlo_swarm.py diff --git a/examples/structs/swarms/multi_agent_collaboration/message_pool_example.py b/examples/structs/swarms/multi_agent_collaboration/message_pool_example.py index 6c5fded9..d23b14b0 100644 --- a/examples/structs/swarms/multi_agent_collaboration/message_pool_example.py +++ b/examples/structs/swarms/multi_agent_collaboration/message_pool_example.py @@ -1,4 +1,4 @@ -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms.structs.agent import Agent from swarms.structs.message_pool import MessagePool diff --git a/examples/structs/swarms/swarm_network/example_swarmnetwork.py b/examples/structs/swarms/swarm_network/example_swarmnetwork.py index de9c53b6..44842e6a 100644 --- a/examples/structs/swarms/swarm_network/example_swarmnetwork.py +++ b/examples/structs/swarms/swarm_network/example_swarmnetwork.py @@ -3,7 +3,9 @@ import os from dotenv import load_dotenv # Import the OpenAIChat model and the Agent struct -from swarms import OpenAIChat, Agent, SwarmNetwork +from swarms import Agent, SwarmNetwork + +from swarm_models import OpenAIChat # Load the environment variables load_dotenv() diff --git a/examples/structs/workflows/concurrent/example_concurrentworkflow.py b/examples/structs/workflows/concurrent/example_concurrentworkflow.py index cc1e3a2f..ef3e98b1 100644 --- a/examples/structs/workflows/concurrent/example_concurrentworkflow.py +++ b/examples/structs/workflows/concurrent/example_concurrentworkflow.py @@ -1,6 +1,7 @@ import os from dotenv import load_dotenv -from swarms import OpenAIChat, Task, ConcurrentWorkflow, Agent +from swarms import Task, ConcurrentWorkflow, Agent +from swarm_models import OpenAIChat # Load environment variables from .env file load_dotenv() diff --git a/examples/structs/workflows/example_recursiveworkflow.py b/examples/structs/workflows/example_recursiveworkflow.py index 9760b606..3a61e359 100644 --- a/examples/structs/workflows/example_recursiveworkflow.py +++ b/examples/structs/workflows/example_recursiveworkflow.py @@ -1,6 +1,7 @@ import os from dotenv import load_dotenv -from swarms import OpenAIChat, Task, RecursiveWorkflow, Agent +from swarms import Task, RecursiveWorkflow, Agent +from swarm_models import OpenAIChat # Load environment variables from .env file load_dotenv() diff --git a/examples/structs/workflows/sequential/example_sequentialworkflow.py b/examples/structs/workflows/sequential/example_sequentialworkflow.py index 72919dcc..325e9453 100644 --- a/examples/structs/workflows/sequential/example_sequentialworkflow.py +++ b/examples/structs/workflows/sequential/example_sequentialworkflow.py @@ -1,5 +1,6 @@ import os -from swarms import OpenAIChat, Agent, SequentialWorkflow +from swarms import Agent, SequentialWorkflow +from swarm_models import OpenAIChat from dotenv import load_dotenv load_dotenv() diff --git a/swarms/structs/multi_agent_collab_new.py b/multi_agent_collab_new.py similarity index 87% rename from swarms/structs/multi_agent_collab_new.py rename to multi_agent_collab_new.py index 69c3e79a..7e10d6bf 100644 --- a/swarms/structs/multi_agent_collab_new.py +++ b/multi_agent_collab_new.py @@ -554,76 +554,76 @@ def round_robin_speaker(agents: List[Agent], iteration: int) -> Agent: return selected -# # Example usage -# if __name__ == "__main__": -# from swarms import OpenAIChat -# from swarms.prompts.finance_agent_sys_prompt import ( -# FINANCIAL_AGENT_SYS_PROMPT, -# ) - -# # Get the OpenAI API key from the environment variable -# api_key = os.getenv("OPENAI_API_KEY") -# if not api_key: -# logger.error("OpenAI API key not found in environment variables.") -# exit(1) - -# # Create instances of the OpenAIChat class -# model = OpenAIChat( -# api_key=api_key, model_name="gpt-4o-mini", temperature=0.1 -# ) - -# # Initialize agents -# agent1 = Agent( -# agent_name="Financial-Analysis-Agent_1", -# system_prompt=FINANCIAL_AGENT_SYS_PROMPT, -# llm=model, -# max_loops=1, -# dynamic_temperature_enabled=True, -# saved_state_path="finance_agent_1.json", -# user_name="swarms_corp", -# retry_attempts=1, -# context_length=200000, -# return_step_meta=False, -# ) - -# agent2 = Agent( -# agent_name="Financial-Analysis-Agent_2", -# system_prompt=FINANCIAL_AGENT_SYS_PROMPT, -# llm=model, -# max_loops=1, -# dynamic_temperature_enabled=True, -# saved_state_path="finance_agent_2.json", -# user_name="swarms_corp", -# retry_attempts=1, -# context_length=200000, -# return_step_meta=False, -# ) - -# agent2 = Agent( -# agent_name="Financial-Analysis-Agent_3", -# system_prompt=FINANCIAL_AGENT_SYS_PROMPT, -# llm=model, -# max_loops=1, -# dynamic_temperature_enabled=True, -# saved_state_path="finance_agent_2.json", -# user_name="swarms_corp", -# retry_attempts=1, -# context_length=200000, -# return_step_meta=False, -# ) - -# # Initialize the MultiAgentCollaboration with the round-robin speaker function -# multi_agent_framework = MultiAgentCollaboration( -# agents=[agent1, agent2], -# speaker_fn=round_robin_speaker, -# max_loops=3, -# use_cache=True, # Enable caching -# autosave_on=True, -# ) - -# # Run the framework with an input prompt -# task = "How can I establish a ROTH IRA to buy stocks and get a tax break? What are the criteria" -# out = multi_agent_framework.run(task) -# print(out) - -# print(multi_agent_framework.return_output_schema_json()) +# Example usage +if __name__ == "__main__": + from swarm_models import OpenAIChat + from swarms.prompts.finance_agent_sys_prompt import ( + FINANCIAL_AGENT_SYS_PROMPT, + ) + + # Get the OpenAI API key from the environment variable + api_key = os.getenv("OPENAI_API_KEY") + if not api_key: + logger.error("OpenAI API key not found in environment variables.") + exit(1) + + # Create instances of the OpenAIChat class + model = OpenAIChat( + api_key=api_key, model_name="gpt-4o-mini", temperature=0.1 + ) + + # Initialize agents + agent1 = Agent( + agent_name="Financial-Analysis-Agent_1", + system_prompt=FINANCIAL_AGENT_SYS_PROMPT, + llm=model, + max_loops=1, + dynamic_temperature_enabled=True, + saved_state_path="finance_agent_1.json", + user_name="swarms_corp", + retry_attempts=1, + context_length=200000, + return_step_meta=False, + ) + + agent2 = Agent( + agent_name="Financial-Analysis-Agent_2", + system_prompt=FINANCIAL_AGENT_SYS_PROMPT, + llm=model, + max_loops=1, + dynamic_temperature_enabled=True, + saved_state_path="finance_agent_2.json", + user_name="swarms_corp", + retry_attempts=1, + context_length=200000, + return_step_meta=False, + ) + + agent2 = Agent( + agent_name="Financial-Analysis-Agent_3", + system_prompt=FINANCIAL_AGENT_SYS_PROMPT, + llm=model, + max_loops=1, + dynamic_temperature_enabled=True, + saved_state_path="finance_agent_2.json", + user_name="swarms_corp", + retry_attempts=1, + context_length=200000, + return_step_meta=False, + ) + + # Initialize the MultiAgentCollaboration with the round-robin speaker function + multi_agent_framework = MultiAgentCollaboration( + agents=[agent1, agent2], + speaker_fn=round_robin_speaker, + max_loops=3, + use_cache=True, # Enable caching + autosave_on=True, + ) + + # Run the framework with an input prompt + task = "How can I establish a ROTH IRA to buy stocks and get a tax break? What are the criteria" + out = multi_agent_framework.run(task) + print(out) + + print(multi_agent_framework.return_output_schema_json()) diff --git a/scripts/auto_tests_docs/auto_docs.py b/scripts/auto_tests_docs/auto_docs.py index 48441c38..d9536451 100644 --- a/scripts/auto_tests_docs/auto_docs.py +++ b/scripts/auto_tests_docs/auto_docs.py @@ -6,7 +6,7 @@ import threading from dotenv import load_dotenv from scripts.auto_tests_docs.docs import DOCUMENTATION_WRITER_SOP -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms.structs.majority_voting import MajorityVoting from swarms.structs.stackoverflow_swarm import StackOverflowSwarm from swarms.structs.task_queue_base import TaskQueueBase diff --git a/scripts/auto_tests_docs/auto_docs_functions.py b/scripts/auto_tests_docs/auto_docs_functions.py index 37bf376d..e4df344f 100644 --- a/scripts/auto_tests_docs/auto_docs_functions.py +++ b/scripts/auto_tests_docs/auto_docs_functions.py @@ -6,7 +6,7 @@ import threading from dotenv import load_dotenv from scripts.auto_tests_docs.docs import DOCUMENTATION_WRITER_SOP -from swarms import OpenAIChat +from swarm_models import OpenAIChat load_dotenv() diff --git a/scripts/auto_tests_docs/auto_docs_omni.py b/scripts/auto_tests_docs/auto_docs_omni.py index 7fd3cde6..6f5ceb0c 100644 --- a/scripts/auto_tests_docs/auto_docs_omni.py +++ b/scripts/auto_tests_docs/auto_docs_omni.py @@ -5,7 +5,7 @@ import threading from dotenv import load_dotenv from scripts.auto_tests_docs.docs import DOCUMENTATION_WRITER_SOP -from swarms import OpenAIChat +from swarm_models import OpenAIChat ########### diff --git a/scripts/auto_tests_docs/auto_tests.py b/scripts/auto_tests_docs/auto_tests.py index dcac1aa1..9c1ebfce 100644 --- a/scripts/auto_tests_docs/auto_tests.py +++ b/scripts/auto_tests_docs/auto_tests.py @@ -7,7 +7,7 @@ from dotenv import load_dotenv from swarms_memory import DictInternalMemory, DictSharedMemory from scripts.auto_tests_docs.docs import TEST_WRITER_SOP_PROMPT -from swarms import OpenAIChat +from swarm_models import OpenAIChat load_dotenv() diff --git a/scripts/auto_tests_docs/auto_tests_functions.py b/scripts/auto_tests_docs/auto_tests_functions.py index 4fa2fafd..c001c24a 100644 --- a/scripts/auto_tests_docs/auto_tests_functions.py +++ b/scripts/auto_tests_docs/auto_tests_functions.py @@ -6,7 +6,7 @@ import threading from dotenv import load_dotenv from scripts.auto_tests_docs.docs import TEST_WRITER_SOP_PROMPT -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms.utils.parse_code import extract_code_from_markdown load_dotenv() diff --git a/swarms/structs/recursive_workflow.py b/swarms/structs/recursive_workflow.py deleted file mode 100644 index 455522b5..00000000 --- a/swarms/structs/recursive_workflow.py +++ /dev/null @@ -1,99 +0,0 @@ -import logging -from typing import List - -from swarms.structs.base_structure import BaseStructure -from swarms.structs.task import Task - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -class RecursiveWorkflow(BaseStructure): - """ - RecursiveWorkflow class for running a task recursively until a stopping condition is met. - - Args: - task (Task): The task to execute. - stop_token (Any): The token that indicates when to stop the workflow. - - Attributes: - task (Task): The task to execute. - stop_token (Any): The token that indicates when to stop the workflow. - - Examples: - >>> from swarm_models import OpenAIChat - >>> from swarms.structs import RecursiveWorkflow, Task - >>> llm = OpenAIChat(openai_api_key="") - >>> task = Task(llm, "What's the weather in miami") - >>> workflow = RecursiveWorkflow() - >>> workflow.add(task) - >>> workflow.run() - """ - - def __init__( - self, - stop_token: str = "", - stopping_conditions: callable = None, - max_loops: int = 1, - *args, - **kwargs, - ): - self.stop_token = stop_token - self.stopping_conditions = stopping_conditions - self.task_pool = [] - - assert ( - self.stop_token is not None - ), "stop_token cannot be None" - - def add(self, task: Task = None, tasks: List[Task] = None): - """Adds a task to the workflow. - - Args: - task (Task): _description_ - tasks (List[Task]): _description_ - """ - try: - if tasks: - for task in tasks: - if isinstance(task, Task): - self.task_pool.append(task) - logger.info( - "[INFO][RecursiveWorkflow] Added task" - f" {task} to workflow" - ) - elif isinstance(task, Task): - self.task_pool.append(task) - logger.info( - f"[INFO][RecursiveWorkflow] Added task {task} to" - " workflow" - ) - except Exception as error: - logger.warning(f"[ERROR][RecursiveWorkflow] {error}") - raise error - - def run(self): - """ - Executes the tasks in the workflow until the stop token is encountered. - - Returns: - None - """ - try: - loop = 0 - while loop < self.max_loops: - for task in self.task_pool: - while True: - result = task.run() - if ( - result is not None - and self.stop_token in result - ): - break - print(f"{result}") - loop += 1 - - return result - except Exception as error: - logger.warning(f"[ERROR][RecursiveWorkflow] {error}") - raise error diff --git a/tests/structs/test_company.py b/tests/structs/test_company.py index 6de14da1..15c7e715 100644 --- a/tests/structs/test_company.py +++ b/tests/structs/test_company.py @@ -1,6 +1,6 @@ import pytest -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms.structs.agent import Agent from swarms.structs.company import Company diff --git a/tests/structs/test_message_pool.py b/tests/structs/test_message_pool.py index cfbb4df5..cd0607cf 100644 --- a/tests/structs/test_message_pool.py +++ b/tests/structs/test_message_pool.py @@ -1,4 +1,4 @@ -from swarms import OpenAIChat +from swarm_models import OpenAIChat from swarms.structs.agent import Agent from swarms.structs.message_pool import MessagePool