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