""" LifeAdmin AI - Main Gradio Application Hackathon Project: Track 2 - MCP in Action Updated with LifeAdmin Coach chatbot tab """ import gradio as gr import asyncio import os from pathlib import Path from dotenv import load_dotenv # Load environment variables load_dotenv() from ui.manual_dashboard import create_manual_dashboard from ui.voice_agent_ui import create_voice_agent_ui from ui.lifeadmin_coach_ui import create_lifeadmin_coach_ui from agent.agent_core import LifeAdminAgent from utils.llm_utils import setup_llm_fallback # Initialize directories Path("data/uploads").mkdir(parents=True, exist_ok=True) Path("data/outputs").mkdir(parents=True, exist_ok=True) Path("data/chroma_db").mkdir(parents=True, exist_ok=True) print("šŸ¤– Initializing LifeAdmin AI Agent...") agent = LifeAdminAgent() print("āœ“ Agent initialized successfully!") # ------------------------------------------- # CUSTOM CSS # ------------------------------------------- custom_css = """ """ # --------------------------------------------------------- # Create Gradio App # --------------------------------------------------------- def create_app(): app = gr.Blocks( title="LifeAdmin AI - Your Autonomous Life Management Agent", analytics_enabled=False ) with app: gr.HTML(custom_css) # Header with gr.Row(): gr.HTML("""

šŸ¤– LifeAdmin AI

Your Autonomous Life Management Agent

""") # Tabs with gr.Tabs(): # Manual Dashboard with gr.Tab("šŸ“Š Manual Dashboard"): gr.Markdown("### šŸŽÆ Manual Mode – Full Control Over Tools") create_manual_dashboard(agent) # LifeAdmin Coach (NEW!) with gr.Tab("šŸ’¬ LifeAdmin Coach"): gr.Markdown("### šŸ¤– AI Assistant – Chat About Your Documents & Tasks") create_lifeadmin_coach_ui(agent) # Voice Agent with gr.Tab("šŸŽ¤ Voice Agent"): gr.Markdown("### šŸ¤– Voice Agent – Speak Commands, Agent Executes") create_voice_agent_ui(agent) # Footer gr.HTML(""" """) return app # --------------------------------------------------------- # MAIN ENTRY POINT # --------------------------------------------------------- if __name__ == "__main__": print("=" * 60) print("šŸš€ Starting LifeAdmin AI") print("=" * 60) print("\nāš™ļø Setting up LLM providers...") try: setup_llm_fallback() print("āœ“ LLM providers configured!") except Exception as e: print("āš ļø Warning:", e) print("\nšŸŽ¤ Checking voice requirements...") print("āœ“ ElevenLabs API found" if os.getenv("ELEVENLABS_API_KEY") else "āš ļø Missing ElevenLabs") print("āœ“ Groq API found" if os.getenv("GROQ_API_KEY") else "āš ļø Missing Groq") print("\nšŸŽØ Creating Gradio interface...") app = create_app() print("\nāœ… LifeAdmin AI is ready!") print("šŸ“± Open: http://localhost:7860") app.launch( server_name="0.0.0.0", server_port=int(os.getenv("GRADIO_SERVER_PORT", 7860)), show_error=True )