File size: 1,999 Bytes
71736e8
 
 
 
 
 
 
 
9e991a9
71736e8
 
 
9e991a9
71736e8
 
 
 
 
9e991a9
71736e8
9e991a9
71736e8
9e991a9
 
71736e8
9e991a9
71736e8
9e991a9
71736e8
 
9e991a9
 
 
71736e8
 
 
9e991a9
 
71736e8
9e991a9
 
 
 
71736e8
 
 
 
9e991a9
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
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 "Ungültiges Admin-Passwort."
    
    chatbots = get_all_chatbots()
    return gr.Dataframe(
        headers=["ID", "Name", "Benutzerdefinierte Anweisung", "Ist aktiv"],
        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 "Ungültiges Admin-Passwort."
    
    if action == "Bearbeiten":
        update_chatbot(chatbot_id, name, custom_instruction, is_active)
        return "Chatbot erfolgreich aktualisiert."
    elif action == "Löschen":
        delete_chatbot(chatbot_id)
        return "Chatbot erfolgreich gelöscht."
    else:
        return "Ungültige Aktion."

def create_admin_tab():
    admin_password = gr.Textbox(label="Admin-Passwort", type="password")
    admin_button = gr.Button("Chatbots anzeigen")
    admin_output = gr.Dataframe(headers=["ID", "Name", "Benutzerdefinierte Anweisung", "Ist aktiv"])
    admin_button.click(admin_view, inputs=[admin_password], outputs=admin_output)
    
    with gr.Row():
        admin_action_dropdown = gr.Dropdown(["Bearbeiten", "Löschen"], label="Aktion")
        admin_chatbot_id = gr.Textbox(label="Chatbot-ID")
        admin_name = gr.Textbox(label="Name")
        admin_instruction = gr.Textbox(label="Benutzerdefinierte Anweisung")
        admin_is_active = gr.Checkbox(label="Ist aktiv")
    admin_action_button = gr.Button("Aktion ausführen")
    admin_action_output = gr.Textbox(label="Ergebnis der Aktion")
    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
    )