# create_chatbot.py import gradio as gr from utils.utils import get_secret from database import create_chatbot, filter_profanity import logging # Setup logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) CREATE_APP_PW = get_secret("CREATE_APP_PW") def create_chatbot_interface(name, custom_instruction, password): logger.info("Creating chatbot with name: %s", name) if password != CREATE_APP_PW: logger.warning("Invalid password provided for chatbot creation.") return "Ungültiges Passwort. Erstellung des Chatbots fehlgeschlagen.", None, None filtered_name = filter_profanity(name) filtered_instruction = filter_profanity(custom_instruction) try: chatbot = create_chatbot(filtered_name, filtered_instruction) logger.info("Chatbot created successfully with ID: %s", chatbot.chatbot_id) return f"Chatbot erstellt mit ID: {chatbot.chatbot_id}", chatbot.chatbot_id, chatbot.name except Exception as e: logger.error("Error creating chatbot: %s", str(e)) return f"Fehler bei der Erstellung des Chatbots: {str(e)}", None, None def create_chatbot_tab(): with gr.Group(): name = gr.Textbox(label="Chatbot-Name") instructions = gr.Textbox(label="Benutzerdefinierte Anweisungen für Ihren Chatbot eingeben", lines=6) # Changed to 6 lines create_password = gr.Textbox(label="Erstellungspasswort", type="password") create_button = gr.Button("Chatbot erstellen") create_output = gr.Textbox(label="Ergebnis der Erstellung") chatbot_id_output = gr.Textbox(label="Erstellte Chatbot-ID", elem_id="created_chatbot_id") chatbot_name_output = gr.Textbox(label="Erstellter Chatbot-Name", elem_id="created_chatbot_name") # Add copy buttons copy_id_button = gr.HTML(""" """) create_button.click( create_chatbot_interface, inputs=[name, instructions, create_password], outputs=[create_output, chatbot_id_output, chatbot_name_output] ) return { "create_output": create_output, "chatbot_id_output": chatbot_id_output, "chatbot_name_output": chatbot_name_output }