Swarm-Deploy - TGSC
Project description
Swarms Deploy 🚀
Production-grade API deployment framework for Swarms AI workflows. Easily deploy, scale, and manage your swarm-based applications with enterprise features.
Features ✨
- 🔥 Fast API-based deployment framework
- 🤖 Support for synchronous and asynchronous swarm execution
- 🔄 Built-in load balancing and scaling
- 📊 Real-time monitoring and logging
- 🛡️ Enterprise-grade error handling
- 🎯 Priority-based task execution
- 📦 Simple deployment and configuration
- 🔌 Extensible plugin architecture
Installation 📦
pip install -U swarms-deploy
Quick Start 🚀
import os
from dotenv import load_dotenv
from swarms import Agent, SequentialWorkflow
from swarm_models import OpenAIChat
from swarm_deploy import SwarmDeploy
load_dotenv()
# Get the OpenAI API key from the environment variable
api_key = os.getenv("GROQ_API_KEY")
# Model
model = OpenAIChat(
openai_api_base="https://api.groq.com/openai/v1",
openai_api_key=api_key,
model_name="llama-3.1-70b-versatile",
temperature=0.1,
)
# Initialize specialized agents
data_extractor_agent = Agent(
agent_name="Data-Extractor",
system_prompt=None,
llm=model,
max_loops=1,
autosave=True,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path="data_extractor_agent.json",
user_name="pe_firm",
retry_attempts=1,
context_length=200000,
output_type="string",
)
summarizer_agent = Agent(
agent_name="Document-Summarizer",
system_prompt=None,
llm=model,
max_loops=1,
autosave=True,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path="summarizer_agent.json",
user_name="pe_firm",
retry_attempts=1,
context_length=200000,
output_type="string",
)
financial_analyst_agent = Agent(
agent_name="Financial-Analyst",
system_prompt=None,
llm=model,
max_loops=1,
autosave=True,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path="financial_analyst_agent.json",
user_name="pe_firm",
retry_attempts=1,
context_length=200000,
output_type="string",
)
market_analyst_agent = Agent(
agent_name="Market-Analyst",
system_prompt=None,
llm=model,
max_loops=1,
autosave=True,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path="market_analyst_agent.json",
user_name="pe_firm",
retry_attempts=1,
context_length=200000,
output_type="string",
)
operational_analyst_agent = Agent(
agent_name="Operational-Analyst",
system_prompt=None,
llm=model,
max_loops=1,
autosave=True,
verbose=True,
dynamic_temperature_enabled=True,
saved_state_path="operational_analyst_agent.json",
user_name="pe_firm",
retry_attempts=1,
context_length=200000,
output_type="string",
)
# Initialize the SwarmRouter
router = SequentialWorkflow(
name="pe-document-analysis-swarm",
description="Analyze documents for private equity due diligence and investment decision-making",
max_loops=1,
agents=[
data_extractor_agent,
summarizer_agent,
financial_analyst_agent,
market_analyst_agent,
operational_analyst_agent,
],
output_type="all",
)
# Advanced usage with configuration
swarm = SwarmDeploy(
router,
max_workers=4,
# cache_backend="redis"
)
swarm.start(
host="0.0.0.0",
port=8000,
workers=4,
)
Advanced Usage 🔧
Configuration Options
swarm = SwarmDeploy(
workflow,
max_workers=4,
cache_backend="redis",
ssl_config={
"keyfile": "path/to/key.pem",
"certfile": "path/to/cert.pem"
}
)
API Reference 📚
SwarmInput Model
class SwarmInput(BaseModel):
task: str # Task description
img: Optional[str] # Optional image input
priority: int # Task priority (0-10)
API Endpoints
- POST
/v1/swarms/completions/{callable_name}- Execute a task with the specified swarm
- Returns: SwarmOutput or SwarmBatchOutput
Example Request
curl -X POST "http://localhost:8000/v1/swarms/completions/document-analysis" \
-H "Content-Type: application/json" \
-d '{"task": "Analyze financial report", "priority": 5}'
Monitoring and Logging 📊
SwarmDeploy provides built-in monitoring capabilities:
- Real-time task execution stats
- Error tracking and reporting
- Performance metrics
- Task history and audit logs
Error Handling 🛡️
The system includes comprehensive error handling:
try:
result = await swarm.run(task)
except Exception as e:
error_output = SwarmOutput(
id=str(uuid.uuid4()),
status="error",
execution_time=time.time() - start_time,
result=None,
error=str(e)
)
Best Practices 🎯
- Always set appropriate task priorities
- Implement proper error handling
- Use clustering for high-availability
- Monitor system performance
- Regular maintenance and updates
Contributing 🤝
Contributions are welcome! Please read our Contributing Guidelines for details on our code of conduct and the process for submitting pull requests.
Support 💬
- Email: kye@swarms.world
- Discord: Join our community
- Documentation: https://docs.swarms.world
License 📄
MIT License - see the LICENSE file for details.
Powered by swarms.ai 🚀
For enterprise support and custom solutions, contact kye@swarms.world
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarm_deploy-0.0.4.tar.gz.
File metadata
- Download URL: swarm_deploy-0.0.4.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.8 Darwin/23.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
048ddb1d121b631462245f85e030146ec6fee5969319a24d51645357654f2b97
|
|
| MD5 |
1b5d8b2e6f8e8143eddd6f176c4b1e5e
|
|
| BLAKE2b-256 |
c403c0fcf270e492c1db27f5e7565baa09bac30cc310eac5075e05693f672f74
|
File details
Details for the file swarm_deploy-0.0.4-py3-none-any.whl.
File metadata
- Download URL: swarm_deploy-0.0.4-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.8 Darwin/23.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f1e36d3afcbd37e3c3e9ebea07fc435b670c88824dabdc76b6bf708bffcdab1
|
|
| MD5 |
9d0b291e82a39ec7e6c0fa0b3e839842
|
|
| BLAKE2b-256 |
1eeed0ca4821ddcdf065bf2323f8dff3082d98c76baaf6c6d5c1d505db205ed7
|