[SWARM MODELS MIGRATION]

pull/584/head
Your Name 7 months ago
parent df2be1d22e
commit d6ce848d72

@ -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?"

@ -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()

@ -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")

@ -1,5 +1,5 @@
from pydantic import BaseModel, Field
from swarms import OpenAIChat
from swarm_models import OpenAIChat
from swarms import Agent
import os

@ -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

@ -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")

@ -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",

@ -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",

@ -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"),

@ -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,
)

@ -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**

@ -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**

@ -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

@ -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()

@ -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()

@ -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()

@ -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()

@ -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())

@ -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

@ -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()

@ -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
###########

@ -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()

@ -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()

@ -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 = "<DONE>",
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

@ -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

@ -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

Loading…
Cancel
Save