chat123 / app.py
deepak191z's picture
Update app.py
cc8dc14 verified
import gradio as gr
# Custom CSS for styling
custom_css = """
.header-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 20px;
text-align: center;
color: white;
position: fixed;
top: 0;
left: 0;
right: 0;
width: 100%;
z-index: 1000;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
margin: 0;
border-radius: 0;
}
.header-title {
font-size: 2.5em;
font-weight: bold;
margin-bottom: 5px;
letter-spacing: 2px;
}
.header-subtitle {
font-size: 1.1em;
opacity: 0.9;
font-weight: 300;
}
.chat-container {
height: 400px;
border: 2px solid #e0e0e0;
border-radius: 10px;
padding: 15px;
background-color: #fafafa;
}
.input-container {
margin-top: 15px;
}
.send-button {
background: linear-gradient(45deg, #667eea, #764ba2) !important;
color: white !important;
border: none !important;
border-radius: 20px !important;
padding: 10px 20px !important;
font-weight: bold !important;
}
.tab-nav {
background-color: #f5f5f5;
border-radius: 10px 10px 0 0;
}
.gradio-container {
max-width: 1000px;
margin: 0 auto;
padding-top: 100px;
}
/* Ensure content doesn't hide under fixed header */
.main-content {
margin-top: 20px;
}
/* Override Gradio's default container padding */
.contain {
padding-top: 0 !important;
}
"""
# Custom HTML header
header_html = """
<div class="header-container">
<div class="header-title">Agent Rox</div>
<div class="header-subtitle">Multi-Task AI Agent with Multiple MCP</div>
</div>
"""
def chat_function(message, history):
"""Simple chat function - replace with your actual logic"""
response = f"Agent Rox received: {message}"
history.append([message, response])
return history, ""
def task_function(task_input):
"""Task processing function"""
return f"Task processed: {task_input}"
def ai_agents_function(agent_config):
"""AI agents configuration function"""
return f"AI Agents configured: {agent_config}"
def cookies_function():
"""Cookies management function"""
return "Cookies management interface"
def config_function(config_data):
"""Configuration function"""
return f"Configuration updated: {config_data}"
def how_to_use_function():
"""How to use information function"""
return """
# How to Use Agent Rox
1. **Chat**: Interact with the AI agent through natural conversation
2. **Task**: Submit specific tasks for processing
3. **AI Agents**: Configure multiple AI agents for different purposes
4. **Cookies**: Manage session cookies and preferences
5. **Config**: Adjust system configuration settings
6. **How to Use**: View this help information
"""
# Create the Gradio interface
with gr.Blocks(css=custom_css, title="Agent Rox", theme=gr.themes.Soft()) as demo:
# Custom header
gr.HTML(header_html)
# Main content wrapper
with gr.Column(elem_classes=["main-content"]):
# Main tabs
with gr.Tabs():
# Chat Tab
with gr.Tab("chat"):
with gr.Column():
chatbot = gr.Chatbot(
value=[],
elem_classes=["chat-container"],
height=400,
show_label=False
)
with gr.Row(elem_classes=["input-container"]):
with gr.Column(scale=4):
msg_input = gr.Textbox(
placeholder="types your message",
show_label=False,
container=False
)
with gr.Column(scale=1):
send_btn = gr.Button("Send", elem_classes=["send-button"])
# Chat functionality
def respond(message, chat_history):
bot_message = f"Agent Rox: I received your message '{message}'. How can I help you today?"
chat_history.append([message, bot_message])
return chat_history, ""
send_btn.click(respond, [msg_input, chatbot], [chatbot, msg_input])
msg_input.submit(respond, [msg_input, chatbot], [chatbot, msg_input])
# Task Tab
with gr.Tab("task"):
with gr.Column():
gr.Markdown("## Task Management")
task_input = gr.Textbox(
label="Enter Task",
placeholder="Describe the task you want Agent Rox to perform...",
lines=4
)
task_btn = gr.Button("Process Task")
task_output = gr.Textbox(label="Task Result", interactive=False)
task_btn.click(task_function, inputs=task_input, outputs=task_output)
# AI Agents Tab
with gr.Tab("ai agents"):
with gr.Column():
gr.Markdown("## AI Agents Configuration")
agent_name = gr.Textbox(label="Agent Name", placeholder="Enter agent name...")
agent_type = gr.Dropdown(
choices=["GPT-4", "Claude", "Gemini", "Custom"],
label="Agent Type"
)
agent_config = gr.Textbox(
label="Configuration",
placeholder="Enter agent configuration...",
lines=3
)
config_btn = gr.Button("Configure Agent")
agent_output = gr.Textbox(label="Configuration Result", interactive=False)
config_btn.click(
lambda name, type_val, config: f"Agent '{name}' of type '{type_val}' configured with: {config}",
inputs=[agent_name, agent_type, agent_config],
outputs=agent_output
)
# Cookies Tab
with gr.Tab("cookies"):
with gr.Column():
gr.Markdown("## Cookies Management")
gr.Markdown("Manage your session cookies and preferences here.")
cookies_info = gr.Textbox(
label="Current Cookies",
value="Session cookies are active",
interactive=False
)
clear_cookies_btn = gr.Button("Clear Cookies")
cookies_status = gr.Textbox(label="Status", interactive=False)
clear_cookies_btn.click(
lambda: "Cookies cleared successfully",
outputs=cookies_status
)
# Config Tab
with gr.Tab("config"):
with gr.Column():
gr.Markdown("## System Configuration")
api_key = gr.Textbox(
label="API Key",
placeholder="Enter your API key...",
type="password"
)
model_selection = gr.Dropdown(
choices=["GPT-4", "GPT-3.5", "Claude-3", "Gemini-Pro"],
label="Default Model",
value="GPT-4"
)
temperature = gr.Slider(
minimum=0.0,
maximum=2.0,
value=0.7,
step=0.1,
label="Temperature"
)
save_config_btn = gr.Button("Save Configuration")
config_status = gr.Textbox(label="Configuration Status", interactive=False)
save_config_btn.click(
lambda key, model, temp: f"Configuration saved - Model: {model}, Temperature: {temp}",
inputs=[api_key, model_selection, temperature],
outputs=config_status
)
# How to Use Tab
with gr.Tab("how to use"):
gr.Markdown(how_to_use_function())
# Launch the interface
if __name__ == "__main__":
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=False,
debug=True
)