Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
# 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(""" | |
<button onclick="copyToClipboard('created_chatbot_id')">Chatbot-ID kopieren</button> | |
""") | |
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 | |
} | |