parent
c3ee88c773
commit
45342f896e
@ -0,0 +1,138 @@
|
|||||||
|
# ML Model Code Generation Swarm Example
|
||||||
|
|
||||||
|
1. Get your API key from the Swarms API dashboard [HERE](https://swarms.world/platform/api-keys)
|
||||||
|
2. Create a `.env` file in the root directory and add your API key:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
SWARMS_API_KEY=<your-api-key>
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Create a Python script to create and trigger the following swarm:
|
||||||
|
|
||||||
|
|
||||||
|
```python
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import json
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# Retrieve API key securely from .env
|
||||||
|
API_KEY = os.getenv("SWARMS_API_KEY")
|
||||||
|
BASE_URL = "https://swarms-api-285321057562.us-east1.run.app"
|
||||||
|
|
||||||
|
# Headers for secure API communication
|
||||||
|
headers = {"x-api-key": API_KEY, "Content-Type": "application/json"}
|
||||||
|
|
||||||
|
def create_ml_code_swarm(task_description: str):
|
||||||
|
"""
|
||||||
|
Constructs and triggers a swarm of agents for generating a complete machine learning project using PyTorch.
|
||||||
|
The swarm includes:
|
||||||
|
- Model Code Generator: Generates the PyTorch model architecture code.
|
||||||
|
- Training Script Generator: Creates a comprehensive training, validation, and testing script using PyTorch.
|
||||||
|
- Unit Test Creator: Produces extensive unit tests and helper code, ensuring correctness of the model and training scripts.
|
||||||
|
Each agent's prompt is highly detailed to output only Python code, with exclusive use of PyTorch.
|
||||||
|
"""
|
||||||
|
payload = {
|
||||||
|
"swarm_name": "Comprehensive PyTorch Code Generation Swarm",
|
||||||
|
"description": (
|
||||||
|
"A production-grade swarm of agents tasked with generating a complete machine learning project exclusively using PyTorch. "
|
||||||
|
"The swarm is divided into distinct roles: one agent generates the core model architecture code; "
|
||||||
|
"another creates the training and evaluation scripts including data handling; and a third produces "
|
||||||
|
"extensive unit tests and helper functions. Each agent's instructions are highly detailed to ensure that the "
|
||||||
|
"output is strictly Python code with PyTorch as the only deep learning framework."
|
||||||
|
),
|
||||||
|
"agents": [
|
||||||
|
{
|
||||||
|
"agent_name": "Model Code Generator",
|
||||||
|
"description": "Generates the complete machine learning model architecture code using PyTorch.",
|
||||||
|
"system_prompt": (
|
||||||
|
"You are an expert machine learning engineer with a deep understanding of PyTorch. "
|
||||||
|
"Your task is to generate production-ready Python code that defines a complete deep learning model architecture exclusively using PyTorch. "
|
||||||
|
"The code must include all necessary imports, class or function definitions, and should be structured in a modular and scalable manner. "
|
||||||
|
"Follow PEP8 standards and output only code—no comments, explanations, or extraneous text. "
|
||||||
|
"Your model definition should include proper layer initialization, activation functions, dropout, and any custom components as required. "
|
||||||
|
"Ensure that the entire output is strictly Python code based on PyTorch."
|
||||||
|
),
|
||||||
|
"model_name": "openai/gpt-4o",
|
||||||
|
"role": "worker",
|
||||||
|
"max_loops": 2,
|
||||||
|
"max_tokens": 4000,
|
||||||
|
"temperature": 0.3,
|
||||||
|
"auto_generate_prompt": False
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"agent_name": "Training Script Generator",
|
||||||
|
"description": "Creates a comprehensive training, validation, and testing script using PyTorch.",
|
||||||
|
"system_prompt": (
|
||||||
|
"You are a highly skilled software engineer specializing in machine learning pipeline development with PyTorch. "
|
||||||
|
"Your task is to generate Python code that builds a complete training pipeline using PyTorch. "
|
||||||
|
"The script must include robust data loading, preprocessing, augmentation, and a complete training loop, along with validation and testing procedures. "
|
||||||
|
"All necessary imports should be included and the code should assume that the model code from the previous agent is available via proper module imports. "
|
||||||
|
"Follow best practices for reproducibility and modularity, and output only code without any commentary or non-code text. "
|
||||||
|
"The entire output must be strictly Python code that uses PyTorch for all deep learning operations."
|
||||||
|
),
|
||||||
|
"model_name": "openai/gpt-4o",
|
||||||
|
"role": "worker",
|
||||||
|
"max_loops": 1,
|
||||||
|
"max_tokens": 3000,
|
||||||
|
"temperature": 0.3,
|
||||||
|
"auto_generate_prompt": False
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"agent_name": "Unit Test Creator",
|
||||||
|
"description": "Develops a suite of unit tests and helper functions for verifying the PyTorch model and training pipeline.",
|
||||||
|
"system_prompt": (
|
||||||
|
"You are an experienced software testing expert with extensive experience in writing unit tests for machine learning projects in PyTorch. "
|
||||||
|
"Your task is to generate Python code that consists solely of unit tests and any helper functions required to validate both the PyTorch model and the training pipeline. "
|
||||||
|
"Utilize testing frameworks such as pytest or unittest. The tests should cover key functionalities such as model instantiation, forward pass correctness, "
|
||||||
|
"training loop execution, data preprocessing verification, and error handling. "
|
||||||
|
"Ensure that your output is only Python code, without any additional text or commentary, and that it is ready to be integrated into a CI/CD pipeline. "
|
||||||
|
"The entire output must exclusively use PyTorch as the deep learning framework."
|
||||||
|
),
|
||||||
|
"model_name": "openai/gpt-4o",
|
||||||
|
"role": "worker",
|
||||||
|
"max_loops": 1,
|
||||||
|
"max_tokens": 3000,
|
||||||
|
"temperature": 0.3,
|
||||||
|
"auto_generate_prompt": False
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"max_loops": 3,
|
||||||
|
"swarm_type": "SequentialWorkflow" # Sequential workflow: later agents can assume outputs from earlier ones
|
||||||
|
}
|
||||||
|
|
||||||
|
# The task description provides the high-level business requirement for the swarm.
|
||||||
|
payload = {
|
||||||
|
"task": task_description,
|
||||||
|
"swarm": payload
|
||||||
|
}
|
||||||
|
|
||||||
|
response = requests.post(
|
||||||
|
f"{BASE_URL}/swarm/completion",
|
||||||
|
headers=headers,
|
||||||
|
json=payload,
|
||||||
|
)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
print("PyTorch Code Generation Swarm successfully executed!")
|
||||||
|
return json.dumps(response.json(), indent=4)
|
||||||
|
else:
|
||||||
|
print(f"Error {response.status_code}: {response.text}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Example business task for the swarm: generating a full-stack machine learning pipeline for image classification using PyTorch.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
task_description = (
|
||||||
|
"Develop a full-stack machine learning pipeline for image classification using PyTorch. "
|
||||||
|
"The project must include a deep learning model using a CNN architecture for image recognition, "
|
||||||
|
"a comprehensive training script for data preprocessing, augmentation, training, validation, and testing, "
|
||||||
|
"and an extensive suite of unit tests to validate every component. "
|
||||||
|
"Each component's output must be strictly Python code with no additional text or commentary, using PyTorch exclusively."
|
||||||
|
)
|
||||||
|
|
||||||
|
output = create_ml_code_swarm(task_description)
|
||||||
|
print(output)
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in new issue