Spaces:
Sleeping
Sleeping
File size: 3,683 Bytes
c489fd1 de73e4c c489fd1 de73e4c c489fd1 de73e4c c489fd1 de73e4c c489fd1 de73e4c 9f94225 de73e4c c489fd1 de73e4c c489fd1 de73e4c c489fd1 de73e4c c489fd1 de73e4c c489fd1 de73e4c 9f94225 de73e4c 9f94225 de73e4c c489fd1 de73e4c c489fd1 de73e4c 9f94225 de73e4c 48aec90 de73e4c 9f94225 de73e4c 9f94225 de73e4c c489fd1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
import random
from gradio_client import Client
import gradio as gr
# List of available servers (replace with actual server endpoints)
servers = [
"BICORP/GOGOGOGO",
"BICORP/server-2",
"BICORP/server-3",
"BICORP/server-4",
"BICORP/server-5"
]
# Function to call the API with error handling
def call_api(message, model, preset):
selected_server = random.choice(servers) # Randomly select a server
client = Client(selected_server) # Create a client for the selected server
try:
# Call the /chat endpoint with the provided parameters
result = client.predict(
message=message,
param_2=model,
param_3=preset,
api_name="/chat"
)
return result
except Exception as e:
return f"Error: {str(e)}"
# Custom CSS for styling
css = """
/* Light Mode */
:root {
--bg-color: #ffffff;
--text-color: #333;
--input-bg: #f8f8f8;
--border-color: #ddd;
--button-bg: #007bff;
--button-text: white;
}
/* Dark Mode */
[data-theme='dark'] {
--bg-color: #1e1e1e;
--text-color: #f8f8f8;
--input-bg: #333;
--border-color: #555;
--button-bg: #0d6efd;
--button-text: white;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
.gradio-container {
max-width: 600px;
margin: auto;
padding: 20px;
}
.chatbox {
border: 1px solid var(--border-color);
border-radius: 10px;
padding: 10px;
background-color: var(--input-bg);
min-height: 300px;
overflow-y: auto;
}
.input-row {
display: flex;
align-items: center;
border: 1px solid var(--border-color);
border-radius: 10px;
padding: 5px;
background-color: var(--input-bg);
}
#message-input {
flex-grow: 1;
border: none;
background: transparent;
color: var(--text-color);
}
#send-button {
background-color: var(--button-bg);
color: var(--button-text);
border-radius: 50%;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
}
#send-button:hover {
opacity: 0.8;
}
#settings-container {
border: 1px solid var(--border-color);
border-radius: 10px;
padding: 10px;
margin-top: 10px;
}
"""
# Function to toggle dark mode
def toggle_dark_mode(mode):
return gr.update(theme="dark" if mode else "default")
# Create Gradio interface
def create_interface():
with gr.Blocks(css=css) as demo:
gr.Markdown("## 💬 Chatbot")
# Chatbox
chat_output = gr.HTML("", elem_classes="chatbox")
# Input container for message and send button
with gr.Row(elem_classes="input-row"):
message = gr.Textbox(
placeholder="Type a message...",
show_label=False,
elem_id="message-input"
)
submit_btn = gr.Button("➤", elem_id="send-button")
# Settings Panel
with gr.Accordion("⚙️ Settings", open=False, elem_id="settings-container"):
model = gr.Dropdown(choices=["Lake 1 Base"], label="Select Model", value="Lake 1 Base")
preset = gr.Dropdown(choices=["Fast", "Normal", "Quality", "Unreal Performance"], label="Select Preset", value="Fast")
dark_mode = gr.Checkbox(label="Dark Mode", value=False)
# Button click event
submit_btn.click(call_api, inputs=[message, model, preset], outputs=chat_output)
# Toggle dark mode
dark_mode.change(toggle_dark_mode, inputs=[dark_mode])
return demo
# Launch the interface
if __name__ == "__main__":
interface = create_interface()
interface.launch() |