|
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." |
|
|
|
|
|
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"] |
|
] |
|
) |
|
|
|
|
|
iface.launch() |