Spaces:
Sleeping
Sleeping
import random | |
from gradio_client import Client | |
import gradio as gr | |
# List of available servers | |
servers = [ | |
"BICORP/GOGOGOGO", | |
"BICORP/server-2", | |
"BICORP/server-3", | |
"BICORP/server-4", | |
"BICORP/server-5" | |
] | |
# Function to call the API with correct parameters | |
def call_api(message, model, preset): | |
selected_server = random.choice(servers) | |
client = Client(selected_server) | |
try: | |
result = client.predict( | |
message, | |
model, | |
preset, | |
api_name="/chat" | |
) | |
return result | |
except Exception as e: | |
return f"Error: {str(e)}" | |
# Dark mode CSS | |
dark_css = """ | |
.gradio-container { | |
background-color: #1e1e1e; /* Dark background */ | |
color: white; /* Light text color */ | |
} | |
#chatbox { | |
background-color: #2e2e2e; /* Dark chatbox */ | |
color: white; /* Light text color */ | |
} | |
""" | |
# Function to toggle dark mode | |
def toggle_dark_mode(is_dark): | |
return dark_css if is_dark else "" | |
# Create Gradio interface | |
def create_interface(): | |
with gr.Blocks(css=dark_css) as demo: | |
gr.Markdown("## 💬 Chatbot") | |
# Chat display area | |
chatbox = gr.Textbox(label="", interactive=False, elem_id="chatbox", lines=12) | |
# Input area | |
with gr.Row(): | |
user_input = gr.Textbox(label="Type your message here...", placeholder="Enter your message...", interactive=True) | |
send_button = gr.Button("Send") | |
# Settings section | |
with gr.Accordion("⚙️ Settings", open=False): | |
model = gr.Dropdown(choices=["Lake 1 Base"], label="Model", value="Lake 1 Base") | |
preset = gr.Dropdown(choices=["Fast", "Normal", "Quality", "Unreal Performance"], label="Preset", value="Fast") | |
dark_mode = gr.Checkbox(label="Enable Dark Mode", value=False) | |
# Change CSS based on dark mode toggle | |
dark_mode.change(lambda x: demo.css.update(toggle_dark_mode(x)), inputs=[dark_mode]) | |
# Define the action for the send button | |
def send_message(message): | |
if message: | |
response = call_api(message, model.value, preset.value) | |
return f"You: {message}\nBot: {response}" | |
return "" | |
# Connect the send button to the send_message function | |
send_button.click(send_message, inputs=user_input, outputs=chatbox) | |
return demo | |
# Launch the interface | |
if __name__ == "__main__": | |
interface = create_interface() | |
interface.launch() |