Neural-GPT / pages /NeuralAgents.py
Arcypojeb's picture
Update pages/NeuralAgents.py
e26a90f verified
raw
history blame
25.7 kB
import os
import sqlite3
import websockets
import json
import asyncio
import time
import conteneiro
import streamlit as st
from io import StringIO
from agents import Llama2, Copilot, ChatGPT, Claude3, ForefrontAI, Flowise, Chaindesk, CharacterAI
st.set_page_config(layout="wide")
servers = []
clients = []
inputs = []
outputs = []
used_ports = []
credentials = []
server_ports = []
client_ports = []
# Set up the SQLite database
db = sqlite3.connect('chat-hub.db')
db.execute('CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, sender TEXT, message TEXT, timestamp TEXT)')
async def main():
if "googleAPI" not in st.session_state:
st.session_state.googleAPI = ""
if "cseID" not in st.session_state:
st.session_state.cseID = ""
if "api_key" not in st.session_state:
st.session_state.api_key = ""
if "fireworks_api" not in st.session_state:
st.session_state.fireworks_api = ""
if "anthropicAPI" not in st.session_state:
st.session_state.anthropicAPI = ""
if "server_ports" not in st.session_state:
st.session_state['server_ports'] = ""
if "client_ports" not in st.session_state:
st.session_state['client_ports'] = ""
if "servers" not in st.session_state:
st.session_state['servers'] = ""
if "clients" not in st.session_state:
st.session_state['clients'] = ""
if "gradio_Port" not in st.session_state:
st.session_state.gradio_Port = ""
if "server" not in st.session_state:
st.session_state.server = False
if "client" not in st.session_state:
st.session_state.client = False
if "user_ID" not in st.session_state:
st.session_state.user_ID = ""
if "gradio_Port" not in st.session_state:
st.session_state.gradio_Port = ""
if "forefront_api" not in st.session_state:
st.session_state.forefront_api = ""
if "tokenChar" not in st.session_state:
st.session_state.tokenChar = ""
if "charName" not in st.session_state:
st.session_state.charName = ""
if "character_ID" not in st.session_state:
st.session_state.character_ID = ""
if "flow" not in st.session_state:
st.session_state.flow = ""
if "agentID" not in st.session_state:
st.session_state.agentID = ""
if "tokens" not in st.session_state:
st.session_state.tokens = None
if 'credentials' not in st.session_state:
st.session_state.credentials = []
if "server_state" not in st.session_state:
st.session_state.server_state = "complete"
if "client_state" not in st.session_state:
st.session_state.client_state = "complete"
APItokens = {
"APIfireworks": str(st.session_state.fireworks_api),
"APIforefront": str(st.session_state.forefront_api),
"APIanthropic": str(st.session_state.anthropicAPI),
"TokenCharacter": str(st.session_state.tokenChar),
"char_ID": str(st.session_state.character_ID),
"chaindeskID": str(st.session_state.agentID),
"FlowiseID": str(st.session_state.flow)
}
json_credentials = json.dumps(APItokens)
print(json_credentials)
userInput = st.chat_input("Ask Agent")
with st.expander("Personal API tokens"):
uploadAPI = st.file_uploader(label="Upload credentials")
fire = st.empty()
fore = st.empty()
anthro = st.empty()
char = st.empty()
charID = st.empty()
chain = st.empty()
flo = st.empty()
saveAPI = st.download_button(label="Download API tokens",
data=json_credentials,
file_name=f"APItokens.json",
mime="application/json",
help="Click to save your API keys")
if st.session_state.tokens == None:
fireworks_api = fire.text_input("Fireworks API")
forefront_api = fore.text_input("Forefront AI API")
anthropic_api = anthro.text_input("Anthropic API")
characterToken = char.text_input("Character.ai personal token")
character_ID = charID.text_input("Character ID")
chaindeskAgent = chain.text_input("Chaindesk agent ID")
flowID = flo.text_input("Flowise flow ID")
c1, c2 = st.columns(2)
selectAgent = st.selectbox("Select agent", ("Llama2", "Copilot", "ChatGPT", "Forefront AI", "Claude-3", "Character.ai", "Chaindesk", "Flowise"))
with c1:
websocketPort = st.number_input("Websocket server port", min_value=1000, max_value=9999, value=1000)
startServer = st.button("Start server")
stopServer = st.button("Stop server")
st.text("Servers")
serverPorts1 = st.empty()
serverPorts = serverPorts1.status(label="websocket servers", state="complete", expanded=False)
serverPorts.write(conteneiro.servers)
with c2:
clientPort = st.number_input("Websocket client port", min_value=1000, max_value=9999, value=1000)
runClient = st.button("Start client")
stopClient = st.button("Stop client")
st.text("Websocket clients")
clientPorts1 = st.empty()
clientPorts = clientPorts1.status(label="websocket clients", state="complete", expanded=False)
clientPorts.write(conteneiro.clients)
with st.sidebar:
# Wyświetlanie danych, które mogą być modyfikowane na różnych stronach
st.text("Websocket servers")
srv_status = st.empty()
server_status1 = srv_status.status(label="websocket servers", state="complete", expanded=True)
server_status1.write(conteneiro.servers)
if st.session_state.server == True:
st.session_state.server_state = "running"
srv_status.empty()
server_status1 = srv_status.status(label="websocket servers", state=st.session_state.server_state, expanded=True)
server_status1.write(conteneiro.servers)
st.text("Websocket clients")
cli_status = st.empty()
client_status1 = cli_status.status(label="websocket clients", state="complete", expanded=True)
client_status1.write(conteneiro.clients)
if st.session_state.client == True:
st.session_state.client_state = "running"
cli_status.empty()
client_status1 = cli_status.status(label="websocket clients", state=st.session_state.client_state, expanded=True)
client_status1.write(conteneiro.clients)
if uploadAPI is not None:
data = json.load(uploadAPI)
print(data)
st.session_state.fireworks_api = data["APIfireworks"]
if st.session_state.fireworks_api == "":
fireworks_api = fire.text_input("Fireworks API key")
else:
fireworks_api = fire.container(border=True)
fireworks_api.write(str(st.session_state.fireworks_api))
st.session_state.forefront_api = data["APIforefront"]
if st.session_state.forefront_api == "":
forefront_api = fore.text_input("Forefront API key")
else:
forefront_api = fore.container(border=True)
forefront_api.write(str(st.session_state.forefront_api))
st.session_state.anthropicAPI = data["APIanthropic"]
if st.session_state.anthropicAPI == "":
anthropic_api = anthro.text_input("Anthropic API key")
else:
anthropic_api = anthro.container(border=True)
anthropic_api.write(str(st.session_state.anthropicAPI))
st.session_state.tokenChar = data["TokenCharacter"]
if st.session_state.tokenChar == "":
characterToken = char.text_input("Character.ai user token")
else:
characterToken = char.container(border=True)
characterToken.write(str(st.session_state.tokenChar))
st.session_state.character_ID = data["char_ID"]
if st.session_state.character_ID == "":
character_ID = charID.text_input("Your Character ID")
else:
character_ID = charID.container(border=True)
character_ID.write(str(st.session_state.character_ID))
st.session_state.agentID = data["chaindeskID"]
if st.session_state.agentID == "":
chaindeskAgent = chain.text_input("Chaindesk agent ID:")
else:
chaindeskAgent = chain.container(border=True)
chaindeskAgent.write(str(st.session_state.agentID))
st.session_state.flow = data["FlowiseID"]
if st.session_state.flow == "":
flowID = flo.text_input("Flowise flow ID:")
else:
flowID = flo.container(border=True)
flowID.write(str(st.session_state.flow))
if saveAPI:
credentials.clear()
st.session_state.fireworks_api = fireworks_api
credentials.append(st.session_state.fireworks_api)
st.session_state.forefront_api = forefront_api
credentials.append(st.session_state.forefront_api)
st.session_state.anthropicAPI = anthropic_api
credentials.append(st.session_state.anthropicAPI)
st.session_state.tokenChar = characterToken
credentials.append(st.session_state.tokenChar)
st.session_state.character_ID = character_ID
credentials.append(st.session_state.character_ID)
st.session_state.agentID = chaindeskAgent
credentials.append(st.session_state.agentID)
st.session_state.flow = flowID
credentials.append(st.session_state.flow)
if selectAgent == "Llama2":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = Llama2(str(st.session_state.fireworks_api))
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name = f"Llama2 client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = Llama2(str(st.session_state.fireworks_api))
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name = f"Llama2 server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = Llama2(str(st.session_state.fireworks_api))
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "Copilot":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = Copilot()
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name1 = f"Copilot client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name1, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name1, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = Copilot()
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name1 = f"Copilot server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label="websocket servers", state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label="websocket servers", state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = Copilot()
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "ChatGPT":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = ChatGPT()
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name2 = f"GPT-3,5 client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name2, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name2, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = ChatGPT()
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name2 = f"GPT-3,5 server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name2, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name2, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = ChatGPT()
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "Forefront AI":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = ForefrontAI(str(st.session_state.forefront_api))
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name = f"Forefront AI client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = ForefrontAI(str(st.session_state.forefront_api))
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name = f"Forefroont AI server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = ForefrontAI(str(st.session_state.forefront_api))
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "Claude-3":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = Claude3(str(st.session_state.anthropicAPI))
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name = f"Claude-3 client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = Claude3(str(st.session_state.anthropicAPI))
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name = f"Claude-3 server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = Claude3(str(st.session_state.anthropicAPI))
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "Character.ai":
usrToken = str(st.session_state.tokenChar)
charID = str(st.session_state.character_ID)
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = CharacterAI(usrToken, charID)
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name = f"Claude-3 client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = CharacterAI(usrToken, charID)
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name = f"Claude-3 server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = CharacterAI(usrToken, charID)
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "Chaindesk":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = Chaindesk(str(st.session_state.agentID))
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name = f"Claude-3 client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = Chaindesk(str(st.session_state.agentID))
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name = f"Claude-3 server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = Chaindesk(str(st.session_state.agentID))
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if selectAgent == "Flowise":
if userInput:
print(f"User B: {userInput}")
user_input = st.chat_message("human")
user_input.markdown(userInput)
agent = Flowise(str(st.session_state.flow))
results = await agent.handleInput(userInput)
print(results)
if runClient:
st.session_state.client = True
cli_name = f"Claude-3 client port: {clientPort}"
cli_status.empty()
client_status1 = cli_status.status(label=cli_name, state="running", expanded=True)
client_status1.write(conteneiro.clients)
clientPorts1.empty()
clientPorts = clientPorts1.status(label=cli_name, state="running", expanded=True)
clientPorts.write(conteneiro.clients)
try:
client = Flowise(str(st.session_state.flow))
await client.startClient(clientPort)
print(f"Connecting client on port {clientPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
if startServer:
st.session_state.server = True
srv_name = f"Claude-3 server port: {websocketPort}"
srv_status.empty()
server_status1 = srv_status.status(label=srv_name, state="running", expanded=True)
server_status1.write(conteneiro.servers)
serverPorts1.empty()
serverPorts = serverPorts1.status(label=srv_name, state="running", expanded=True)
serverPorts.write(conteneiro.servers)
try:
server = Flowise(str(st.session_state.flow))
await server.start_server(websocketPort)
print(f"Starting WebSocket server on port {websocketPort}...")
await asyncio.Future()
except Exception as e:
print(f"Error: {e}")
asyncio.run(main())