ELAN_bot / ui /gradio_interface.py
HipFil98's picture
Update ui/gradio_interface.py
19d1372 verified
"""
Gradio interface components for ELAN-Bot application.
"""
import gradio as gr
from config.settings import (
APP_TITLE, APP_DESCRIPTION, APP_EXAMPLES, TEXTBOX_PLACEHOLDER
)
class GradioInterface:
"""Class for handling Gradio interface setup and configuration."""
def __init__(self, chat_handler):
"""
Initialize the Gradio interface.
Args:
chat_handler: Function to handle chat messages
"""
self.chat_handler = chat_handler
self.demo = None
def create_interface(self) -> gr.ChatInterface:
"""
Create and configure the Gradio chat interface.
Returns:
gr.ChatInterface: Configured Gradio interface
"""
self.demo = gr.ChatInterface(
fn=self.chat_handler,
title=APP_TITLE,
description=APP_DESCRIPTION,
examples=APP_EXAMPLES,
theme=gr.themes.Soft(),
type="messages",
textbox=gr.Textbox(placeholder=TEXTBOX_PLACEHOLDER),
cache_examples=False, # Disable example caching to avoid format issues
)
return self.demo
def launch(self, share: bool = False, **kwargs):
"""
Launch the Gradio application.
Args:
share: Whether to create a public link (False for HF Spaces)
**kwargs: Additional arguments for Gradio launch
"""
if self.demo is None:
self.create_interface()
# Enable queueing for better performance
self.demo.queue()
self.demo.launch(share=share, **kwargs)