You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.9 KiB
113 lines
2.9 KiB
import requests
|
|
import json
|
|
from time import sleep
|
|
|
|
BASE_URL = "http://api.swarms.ai:8000"
|
|
|
|
|
|
def make_request(method, endpoint, data=None):
|
|
"""Helper function to make requests with error handling"""
|
|
url = f"{BASE_URL}{endpoint}"
|
|
try:
|
|
if method == "GET":
|
|
response = requests.get(url)
|
|
elif method == "POST":
|
|
response = requests.post(url, json=data)
|
|
elif method == "DELETE":
|
|
response = requests.delete(url)
|
|
|
|
response.raise_for_status()
|
|
return response.json()
|
|
except requests.exceptions.RequestException as e:
|
|
print(
|
|
f"Error making {method} request to {endpoint}: {str(e)}"
|
|
)
|
|
if hasattr(e.response, "text"):
|
|
print(f"Response text: {e.response.text}")
|
|
return None
|
|
|
|
|
|
def create_agent():
|
|
"""Create a test agent"""
|
|
data = {
|
|
"agent_name": "test_agent",
|
|
"model_name": "gpt-4",
|
|
"system_prompt": "You are a helpful assistant",
|
|
"description": "Test agent",
|
|
"temperature": 0.7,
|
|
"max_loops": 1,
|
|
"tags": ["test"],
|
|
}
|
|
return make_request("POST", "/v1/agent", data)
|
|
|
|
|
|
def list_agents():
|
|
"""List all agents"""
|
|
return make_request("GET", "/v1/agents")
|
|
|
|
|
|
def test_completion(agent_id):
|
|
"""Test a completion with the agent"""
|
|
data = {
|
|
"prompt": "Say hello!",
|
|
"agent_id": agent_id,
|
|
"max_tokens": 100,
|
|
}
|
|
return make_request("POST", "/v1/agent/completions", data)
|
|
|
|
|
|
def get_agent_metrics(agent_id):
|
|
"""Get metrics for an agent"""
|
|
return make_request("GET", f"/v1/agent/{agent_id}/metrics")
|
|
|
|
|
|
def delete_agent(agent_id):
|
|
"""Delete an agent"""
|
|
return make_request("DELETE", f"/v1/agent/{agent_id}")
|
|
|
|
|
|
def run_tests():
|
|
print("Starting API tests...")
|
|
|
|
# Create an agent
|
|
print("\n1. Creating agent...")
|
|
agent_response = create_agent()
|
|
if not agent_response:
|
|
print("Failed to create agent")
|
|
return
|
|
|
|
agent_id = agent_response.get("agent_id")
|
|
print(f"Created agent with ID: {agent_id}")
|
|
|
|
# Give the server a moment to process
|
|
sleep(2)
|
|
|
|
# List agents
|
|
print("\n2. Listing agents...")
|
|
agents = list_agents()
|
|
print(f"Found {len(agents)} agents")
|
|
|
|
# Test completion
|
|
if agent_id:
|
|
print("\n3. Testing completion...")
|
|
completion = test_completion(agent_id)
|
|
if completion:
|
|
print(
|
|
f"Completion response: {completion.get('response')}"
|
|
)
|
|
|
|
print("\n4. Getting agent metrics...")
|
|
metrics = get_agent_metrics(agent_id)
|
|
if metrics:
|
|
print(f"Agent metrics: {json.dumps(metrics, indent=2)}")
|
|
|
|
# Clean up
|
|
# print("\n5. Cleaning up - deleting agent...")
|
|
# delete_result = delete_agent(agent_id)
|
|
# if delete_result:
|
|
# print("Successfully deleted agent")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run_tests()
|