parent
							
								
									39d61cd4de
								
							
						
					
					
						commit
						f17ee89a3c
					
				@ -0,0 +1,97 @@
 | 
				
			||||
import os
 | 
				
			||||
 | 
				
			||||
from dotenv import load_dotenv
 | 
				
			||||
from transformers import AutoModelForCausalLM, AutoTokenizer
 | 
				
			||||
 | 
				
			||||
# Import the models, structs, and telemetry modules
 | 
				
			||||
from swarms import (
 | 
				
			||||
    Gemini,
 | 
				
			||||
    GPT4VisionAPI,
 | 
				
			||||
    Mixtral,
 | 
				
			||||
    OpenAI,
 | 
				
			||||
    ToolAgent,
 | 
				
			||||
    BlocksList,
 | 
				
			||||
)
 | 
				
			||||
 | 
				
			||||
# Load the environment variables
 | 
				
			||||
load_dotenv()
 | 
				
			||||
 | 
				
			||||
# Get the environment variables
 | 
				
			||||
openai_api_key = os.getenv("OPENAI_API_KEY")
 | 
				
			||||
gemini_api_key = os.getenv("GEMINI_API_KEY")
 | 
				
			||||
 | 
				
			||||
# Tool Agent
 | 
				
			||||
model = AutoModelForCausalLM.from_pretrained(
 | 
				
			||||
    "databricks/dolly-v2-12b"
 | 
				
			||||
)
 | 
				
			||||
tokenizer = AutoTokenizer.from_pretrained("databricks/dolly-v2-12b")
 | 
				
			||||
json_schema = {
 | 
				
			||||
    "type": "object",
 | 
				
			||||
    "properties": {
 | 
				
			||||
        "name": {"type": "string"},
 | 
				
			||||
        "age": {"type": "number"},
 | 
				
			||||
        "is_student": {"type": "boolean"},
 | 
				
			||||
        "courses": {"type": "array", "items": {"type": "string"}},
 | 
				
			||||
    },
 | 
				
			||||
}
 | 
				
			||||
toolagent = ToolAgent(
 | 
				
			||||
    model=model, tokenizer=tokenizer, json_schema=json_schema
 | 
				
			||||
)
 | 
				
			||||
 | 
				
			||||
# Blocks List which enables you to build custom swarms by adding classes or functions
 | 
				
			||||
swarm = BlocksList(
 | 
				
			||||
    "SocialMediaSwarm",
 | 
				
			||||
    "A swarm of social media agents",
 | 
				
			||||
    [
 | 
				
			||||
        OpenAI(openai_api_key=openai_api_key),
 | 
				
			||||
        Mixtral(),
 | 
				
			||||
        GPT4VisionAPI(openai_api_key=openai_api_key),
 | 
				
			||||
        Gemini(gemini_api_key=gemini_api_key),
 | 
				
			||||
    ],
 | 
				
			||||
)
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
# Add the new block to the swarm
 | 
				
			||||
swarm.add(toolagent)
 | 
				
			||||
 | 
				
			||||
# Remove a block from the swarm
 | 
				
			||||
swarm.remove(toolagent)
 | 
				
			||||
 | 
				
			||||
# Update a block in the swarm
 | 
				
			||||
swarm.update(toolagent)
 | 
				
			||||
 | 
				
			||||
# Get a block at a specific index
 | 
				
			||||
block_at_index = swarm.get(0)
 | 
				
			||||
 | 
				
			||||
# Get all blocks in the swarm
 | 
				
			||||
all_blocks = swarm.get_all()
 | 
				
			||||
 | 
				
			||||
# Get blocks by name
 | 
				
			||||
openai_blocks = swarm.get_by_name("OpenAI")
 | 
				
			||||
 | 
				
			||||
# Get blocks by type
 | 
				
			||||
gpt4_blocks = swarm.get_by_type("GPT4VisionAPI")
 | 
				
			||||
 | 
				
			||||
# Get blocks by ID
 | 
				
			||||
block_by_id = swarm.get_by_id(toolagent.id)
 | 
				
			||||
 | 
				
			||||
# Get blocks by parent
 | 
				
			||||
blocks_by_parent = swarm.get_by_parent(swarm)
 | 
				
			||||
 | 
				
			||||
# Get blocks by parent ID
 | 
				
			||||
blocks_by_parent_id = swarm.get_by_parent_id(swarm.id)
 | 
				
			||||
 | 
				
			||||
# Get blocks by parent name
 | 
				
			||||
blocks_by_parent_name = swarm.get_by_parent_name(swarm.name)
 | 
				
			||||
 | 
				
			||||
# Get blocks by parent type
 | 
				
			||||
blocks_by_parent_type = swarm.get_by_parent_type(type(swarm).__name__)
 | 
				
			||||
 | 
				
			||||
# Get blocks by parent description
 | 
				
			||||
blocks_by_parent_description = swarm.get_by_parent_description(
 | 
				
			||||
    swarm.description
 | 
				
			||||
)
 | 
				
			||||
 | 
				
			||||
# Run the block in the swarm
 | 
				
			||||
inference = swarm.run_block(toolagent, "Hello World")
 | 
				
			||||
print(inference)
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue