Lake-Chatbot / app.py
BICORP's picture
Update app.py
aab9ed4 verified
raw
history blame
3.47 kB
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 */
}
#input-container {
display: flex;
align-items: center;
background-color: #2e2e2e; /* Dark input container */
border: 1px solid #444; /* Dark border */
border-radius: 20px; /* Rounded corners */
padding: 5px;
}
#message-input {
flex: 1;
background-color: #3e3e3e; /* Dark input field */
color: white; /* Light text color */
border: none;
border-radius: 20px; /* Rounded corners for input */
padding: 10px 15px;
font-size: 14px;
}
#message-input:focus {
outline: none;
}
#send-button {
background-color: #007BFF; /* Button background color */
color: white; /* Button text color */
border: none; /* No border */
border-radius: 20px; /* Rounded corners */
padding: 10px 20px; /* Padding for the button */
font-size: 14px; /* Font size for the button text */
margin-left: 10px; /* Space between input and button */
cursor: pointer; /* Pointer cursor */
transition: background-color 0.3s ease; /* Smooth hover transition */
}
#send-button:hover {
background-color: #0056b3; /* Darker hover 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)
# Custom input field with button
with gr.Row(elem_id="input-container"):
message = gr.Textbox(placeholder="Type a message...", elem_id="message-input", lines=1, show_label=False)
send_btn = gr.Button("Send", elem_id="send-button")
# 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)
# Button click event
send_btn.click(call_api, inputs=[message, model, preset], outputs=chatbox)
# Change CSS based on dark mode toggle
dark_mode.change(lambda x: demo.css.update(toggle_dark_mode(x)), inputs=[dark_mode])
return demo
# Launch the interface
if __name__ == "__main__":
interface = create_interface()
interface.launch()