Skip to main content

Swarms - Pytorch

Project description

Swarming banner icon

Swarms is a modular framework that enables reliable and useful multi-agent collaboration at scale to automate real-world tasks.

GitHub issues GitHub forks GitHub stars GitHub licenseGitHub star chartDependency Status Downloads

Share on Social Media

Join the Agora discordShare on Twitter Share on Facebook Share on LinkedIn

Share on Reddit Share on Hacker News Share on Pinterest Share on WhatsApp

Swarm Fest

Vision

At Swarms, we're transforming the landscape of AI from siloed AI agents to a unified 'swarm' of intelligence. Through relentless iteration and the power of collective insight from our 1500+ Agora researchers, we're developing a groundbreaking framework for AI collaboration. Our mission is to catalyze a paradigm shift, advancing Humanity with the power of unified autonomous AI agent swarms.


🤝 Schedule a 1-on-1 Session

Book a 1-on-1 Session with Kye, the Creator, to discuss any issues, provide feedback, or explore how we can improve Swarms for you.


Installation

pip3 install --upgrade swarms


Usage

We have a small gallery of examples to run here, for more check out the docs to build your own agent and or swarms!

Flow Example

  • The Flow is a superior iteratioin of the LLMChain from Langchain, our intent with Flow is to create the most reliable loop structure that gives the agents their "autonomy" through 3 main methods of interaction, one through user specified loops, then dynamic where the agent parses a token, and or an interactive human input verison, or a mix of all 3.
from swarms.models import OpenAIChat
from swarms.structs import Flow

api_key = ""

# Initialize the language model, this model can be swapped out with Anthropic, ETC, Huggingface Models like Mistral, ETC
llm = OpenAIChat(
    # model_name="gpt-4"
    openai_api_key=api_key,
    temperature=0.5,
    # max_tokens=100,
)

## Initialize the workflow
flow = Flow(
    llm=llm,
    max_loops=2,
    dashboard=True,
    # stopping_condition=None,  # You can define a stopping condition as needed.
    # loop_interval=1,
    # retry_attempts=3,
    # retry_interval=1,
    # interactive=False,  # Set to 'True' for interactive mode.
    # dynamic_temperature=False,  # Set to 'True' for dynamic temperature handling.
)

# out = flow.load_state("flow_state.json")
# temp = flow.dynamic_temperature()
# filter = flow.add_response_filter("Trump")
out = flow.run("Generate a 10,000 word blog on health and wellness.")
# out = flow.validate_response(out)
# out = flow.analyze_feedback(out)
# out = flow.print_history_and_memory()
# # out = flow.save_state("flow_state.json")
# print(out)

GodMode

  • A powerful tool for concurrent execution of tasks using multiple Language Model (LLM) instances.
from swarms.swarms import GodMode
from swarms.models import OpenAIChat

api_key = ""

llm = OpenAIChat(
    openai_api_key=api_key
)


llms = [
    llm,
    llm,
    llm
]

god_mode = GodMode(llms)

task = 'Generate a 10,000 word blog on health and wellness.'

out = god_mode.run(task)
god_mode.print_responses(task)

SequentialWorkflow

  • Execute tasks step by step by passing in an LLM and the task description!
  • Pass in flows with various LLMs
  • Save and restore Workflow states!
from swarms.models import OpenAIChat
from swarms.structs import Flow
from swarms.structs.sequential_workflow import SequentialWorkflow

# Example usage
api_key = (
    ""  # Your actual API key here
)

# Initialize the language flow
llm = OpenAIChat(
    openai_api_key=api_key,
    temperature=0.5,
    max_tokens=3000,
)

# Initialize the Flow with the language flow
flow1 = Flow(llm=llm, max_loops=1, dashboard=False)

# Create another Flow for a different task
flow2 = Flow(llm=llm, max_loops=1, dashboard=False)

# Create the workflow
workflow = SequentialWorkflow(max_loops=1)

# Add tasks to the workflow
workflow.add("Generate a 10,000 word blog on health and wellness.", flow1)

# Suppose the next task takes the output of the first task as input
workflow.add("Summarize the generated blog", flow2)

# Run the workflow
workflow.run()

# Output the results
for task in workflow.tasks:
    print(f"Task: {task.description}, Result: {task.result}")

OmniModalAgent

  • OmniModal Agent is an LLM that access to 10+ multi-modal encoders and diffusers! It can generate images, videos, speech, music and so much more, get started with:
from swarms.models import OpenAIChat
from swarms.agents import OmniModalAgent

api_key = "SK-"

llm = OpenAIChat(model_name="gpt-4", openai_api_key=api_key)

agent = OmniModalAgent(llm)

agent.run("Create a video of a swarm of fish")

Documentation

Contribute

We're always looking for contributors to help us improve and expand this project. If you're interested, please check out our Contributing Guidelines and our contributing board

License

MIT

Project details


Release history Release notifications | RSS feed

This version

2.0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swarms-2.0.1.tar.gz (206.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swarms-2.0.1-py3-none-any.whl (256.1 kB view details)

Uploaded Python 3

File details

Details for the file swarms-2.0.1.tar.gz.

File metadata

  • Download URL: swarms-2.0.1.tar.gz
  • Upload date:
  • Size: 206.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.11.0 Darwin/22.4.0

File hashes

Hashes for swarms-2.0.1.tar.gz
Algorithm Hash digest
SHA256 51ca3aee3e9cd33130b44c1ebac3e81c86581fc78091205f44692998e685c051
MD5 8c68eaa0429dcec60ec26ce85e588ee9
BLAKE2b-256 aca5c4f67f38e760433744345b59962866aa6c6760c216413b189f1e689edb8a

See more details on using hashes here.

File details

Details for the file swarms-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: swarms-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 256.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.11.0 Darwin/22.4.0

File hashes

Hashes for swarms-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a64d8e07c7416ff3ac01bed05ab71a3900a92fa257c43052741e4d387aaaed10
MD5 5e5ef122dbb2928f274481987aae6f88
BLAKE2b-256 27b0fac2b27e7c96fe7a4637d03844b41ab52133b8ab2533cff03e897bdedb83

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page