Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
import gradio as gr | |
from utils.utils import get_secret | |
from database import get_all_chatbots, update_chatbot, delete_chatbot | |
ADMIN_PW = get_secret("ADMIN_PW") | |
def admin_view(password): | |
if password != ADMIN_PW: | |
return "Invalid admin password." | |
chatbots = get_all_chatbots() | |
return gr.Dataframe( | |
headers=["ID", "Name", "Custom Instruction", "Is Active"], | |
data=[[c.chatbot_id, c.name, c.custom_instruction, c.is_active] for c in chatbots] | |
) | |
def admin_action(action, chatbot_id, name, custom_instruction, is_active, password): | |
if password != ADMIN_PW: | |
return "Invalid admin password." | |
if action == "Edit": | |
update_chatbot(chatbot_id, name, custom_instruction, is_active) | |
return "Chatbot updated successfully." | |
elif action == "Delete": | |
delete_chatbot(chatbot_id) | |
return "Chatbot deleted successfully." | |
else: | |
return "Invalid action." | |
def create_admin_tab(): | |
admin_password = gr.Textbox(label="Admin Password", type="password") | |
admin_button = gr.Button("View Chatbots") | |
admin_output = gr.Dataframe(headers=["ID", "Name", "Custom Instruction", "Is Active"]) | |
admin_button.click(admin_view, inputs=[admin_password], outputs=admin_output) | |
with gr.Row(): | |
admin_action_dropdown = gr.Dropdown(["Edit", "Delete"], label="Action") | |
admin_chatbot_id = gr.Textbox(label="Chatbot ID") | |
admin_name = gr.Textbox(label="Name") | |
admin_instruction = gr.Textbox(label="Custom Instruction") | |
admin_is_active = gr.Checkbox(label="Is Active") | |
admin_action_button = gr.Button("Perform Action") | |
admin_action_output = gr.Textbox(label="Action Result") | |
admin_action_button.click( | |
admin_action, | |
inputs=[admin_action_dropdown, admin_chatbot_id, admin_name, admin_instruction, admin_is_active, admin_password], | |
outputs=admin_action_output | |
) |