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.
swarms/examples/rearrange_swarm_with_langch.../example.py

84 lines
2.1 KiB

import os
import asyncio
from dotenv import load_dotenv
load_dotenv()
from swarms.structs import Agent
from swarms.models import Anthropic
from swarms.structs.rearrange import AgentRearrange
llm = Anthropic(anthropic_api_key=os.getenv("ANTHROPIC_API_KEY"), streaming=True)
async def sequential():
agent1 = Agent(
agent_name="Blog generator",
system_prompt="Generate a blog post like stephen king",
llm=llm,
dashboard=False,
streaming_on=True
)
agent2 = Agent(
agent_name="Summarizer",
system_prompt="Summarize the blog post",
llm=llm,
dashboard=False,
streaming_on=True
)
flow = f"{agent1.name} -> {agent2.name}"
agent_rearrange = AgentRearrange(
[agent1, agent2], flow, verbose=False, logging=False
)
result = await agent_rearrange.astream(
"Generate a short blog post about Muhammad Ali."
)
# LEAVING THIS CALL BELOW FOR COMPARISON with "completion-style" .run() approach ;)
# await agent_rearrange.run(
# "Generate a short blog post about Muhammad Ali."
# )
async def parallel():
writer1 = Agent(
agent_name="Writer 1",
system_prompt="Generate a blog post in the style of J.K. Rowling about Muhammad Ali",
llm=llm,
dashboard=False,
)
writer2 = Agent(
agent_name="Writer 2",
system_prompt="Generate a blog post in the style of Stephen King about Muhammad Ali",
llm=llm,
dashboard=False
)
reviewer = Agent(
agent_name="Reviewer",
system_prompt="Select the writer that wrote the best story. There can only be one best story.",
llm=llm,
dashboard=False
)
flow = f"{writer1.name}, {writer2.name} -> {reviewer.name}"
agent_rearrange = AgentRearrange(
[writer1, writer2, reviewer], flow, verbose=False, logging=False
)
result = await agent_rearrange.astream("Generate a 1 sentence story about Michael Jordan.")
# LEAVING THIS CALL BELOW FOR COMPARISON with "completion-style" .run() approach ;)
# result = agent_rearrange.run(
# "Generate a short blog post about Michael Jordan."
# )
# asyncio.run(sequential())
asyncio.run(parallel())