Spaces:
Sleeping
Sleeping
import json | |
import datetime | |
import sqlite3 | |
import asyncio | |
import requests | |
import conteneiro | |
import websockets | |
import streamlit as st | |
from agentLangchain import langchainAgent | |
servers = [] | |
clients = [] | |
inputs = [] | |
outputs = [] | |
messagess = [] | |
intentios = [] | |
used_ports = [] | |
server_ports = [] | |
client_ports = [] | |
db = sqlite3.connect('chat-hub.db') | |
cursor = db.cursor() | |
cursor.execute('CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, sender TEXT, message TEXT, timestamp TEXT)') | |
db.commit() | |
async def main(): | |
userInput = st.chat_input("Ask Agent") | |
c1, c2 = st.columns(2) | |
fireAPI = st.text_input("Fireworks API") | |
with c1: | |
stat1 = st.empty() | |
state1 = stat1.status(label="Langchain", state="complete", expanded=False) | |
state1.write(conteneiro.servers) | |
websocketPort = st.number_input("Websocket servers", min_value=1000, max_value=9999, value=1000) | |
startServer = st.button("Start server") | |
stopServer = st.button("Stop server") | |
with c2: | |
stat2 = st.empty() | |
state2 = stat2.status(label="Langchain", state="complete", expanded=False) | |
state2.write(conteneiro.clients) | |
clientPort = st.number_input("Websocket clients", min_value=1000, max_value=9999, value=1000) | |
start_Client = st.button("Start client") | |
stopClient = st.button("Stop client") | |
with st.sidebar: | |
cont = st.empty() | |
status = cont.status(label="Langchain", state="complete", expanded=False) | |
if userInput: | |
user_input = st.chat_message("human") | |
user_input.markdown(userInput) | |
messagess.append(user_input) | |
agent = langchainAgent(fireAPI) | |
response = await agent.askQuestion(userInput) | |
outputMsg = st.chat_message("ai") | |
outputMsg.markdown(response) | |
await agent.handleInput(response) | |
if start_Client: | |
voiceCli = f"Langchain client port: {clientPort}" | |
stat2.empty() | |
state2 = stat2.status(label=voiceCli, state="running", expanded=True) | |
state2.write(conteneiro.clients) | |
cont.empty() | |
status = cont.status(label=voiceCli, state="running", expanded=True) | |
status.write(conteneiro.servers) | |
try: | |
client = langchainAgent(fireAPI) | |
await client.startClient(clientPort) | |
print(f"Connecting client on port {clientPort}...") | |
await asyncio.Future() | |
except Exception as e: | |
print(f"Error: {e}") | |
if startServer: | |
vooiceSrv = f"Langchain server pport: {websocketPort}" | |
stat1.empty() | |
state1 = stat1.status(label=vooiceSrv, state="running", expanded=False) | |
state1.write(conteneiro.clients) | |
cont.empty() | |
status = cont.status(label=vooiceSrv, state="running", expanded=False) | |
status.write(conteneiro.clients) | |
try: | |
server = langchainAgent(fireAPI) | |
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()) |