""" Initialize tab functionality for the Gradio app """ import gradio as gr from utils.rag_system import DocumentIngestion, RAGSystem def initialize_systems(global_vars): """Initialize the RAG systems""" try: print("🚀 Initializing document ingestion system...") global_vars['doc_ingestion'] = DocumentIngestion() print("🚀 Initializing RAG system...") global_vars['rag_system'] = RAGSystem() return "✅ Systems initialized successfully! You can now upload documents." except Exception as e: error_msg = f"❌ Error initializing systems: {str(e)}\n\n" if "sentence-transformers" in str(e): error_msg += """ **Possible solutions:** 1. Install sentence-transformers: `pip install sentence-transformers` 2. Or provide OpenAI API key in environment variables 3. Check that PyTorch is properly installed **For deployment:** - Ensure requirements.txt includes: sentence-transformers, torch, transformers """ return error_msg def create_initialize_tab(global_vars): """Create the Initialize System tab""" with gr.Tab("🚀 Initialize System", id="init"): gr.Markdown(""" ### Step 1: Initialize the System Click the button below to initialize the AI models and embedding systems. This may take a few moments on first run as models are downloaded. """) init_btn = gr.Button( "🚀 Initialize Systems", variant="primary", size="lg" ) init_status = gr.Textbox( label="Initialization Status", interactive=False, lines=8, placeholder="Click 'Initialize Systems' to start..." ) init_btn.click( lambda: initialize_systems(global_vars), outputs=init_status )