File size: 2,588 Bytes
c87fdad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import gradio as gr
import os
import json
import numpy as np
import requests
from openai import OpenAI

def call_gpt3_5(prompt, api_key):
    client = OpenAI(api_key=api_key)
    try:
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "You are a helpful assistant capable of constructing and executing a Swarm Neural Network (SNN). Return only the formatted results of the SNN execution."},
                {"role": "user", "content": prompt}
            ]
        )
        return response.choices[0].message.content
    except Exception as e:
        return f"Error calling GPT-3.5: {str(e)}"

def execute_snn(api_url, openai_api_key, num_agents, calls_per_agent, special_config):
    prompt = f"""
    Construct and execute a Swarm Neural Network (SNN) with the following parameters:
    - API URL: {api_url}
    - Number of Agents: {num_agents}
    - Calls per Agent: {calls_per_agent}
    - Special Configuration: {special_config if special_config else 'None'}

    Simulate the execution of this SNN and provide only the formatted results. The results should include:
    1. A summary of the data retrieved from the API calls
    2. Any patterns or insights derived from the collective behavior of the agents
    3. Performance metrics of the SNN (e.g., execution time, success rate of API calls)

    Present the results in a clear, structured format without any additional explanations or descriptions of the SNN process.
    """
    
    gpt_response = call_gpt3_5(prompt, openai_api_key)
    
    if gpt_response:
        return f"Results from the swarm neural network:\n\n{gpt_response}"
    else:
        return "Failed to execute SNN due to GPT-3.5 API call failure."

# Define the Gradio interface
iface = gr.Interface(
    fn=execute_snn,
    inputs=[
        gr.Textbox(label="API URL for your task"),
        gr.Textbox(label="OpenAI API Key", type="password"),
        gr.Number(label="Number of Agents", minimum=1, maximum=100, step=1),
        gr.Number(label="Calls per Agent", minimum=1, maximum=100, step=1),
        gr.Textbox(label="Special Configuration (optional)")
    ],
    outputs="text",
    title="Swarm Neural Network Simulator",
    description="Enter the parameters for your Swarm Neural Network (SNN) simulation.",
    examples=[
        ["https://meowfacts.herokuapp.com/", "your-api-key-here", 3, 1, ""],
        ["https://api.publicapis.org/entries", "your-api-key-here", 5, 2, "category=Animals"]
    ]
)

# Launch the interface
iface.launch()