Spaces:
Sleeping
Sleeping
| """ | |
| Main entry point for the Digital Assistant application. | |
| A comprehensive assistant for bookmarks, email management, and web search. | |
| Built with Smolagents and Gradio. | |
| """ | |
| import os | |
| import sys | |
| from dotenv import load_dotenv | |
| def check_environment(): | |
| """Check if all required environment variables are present""" | |
| load_dotenv() | |
| # Check for HF_TOKEN | |
| if not os.getenv("HF_TOKEN"): | |
| print("❌ Error: HF_TOKEN not found in environment variables.") | |
| print("Please set your Hugging Face token in a .env file or as an environment variable.") | |
| print("You can get your token from: https://huggingface.co/settings/tokens") | |
| return False | |
| # Check for Gmail OAuth credentials (environment variables) | |
| google_client_id = os.getenv("GOOGLE_CLIENT_ID") | |
| google_client_secret = os.getenv("GOOGLE_CLIENT_SECRET") | |
| google_refresh_token = os.getenv("GOOGLE_REFRESH_TOKEN") | |
| if not google_client_id or not google_client_secret: | |
| print("⚠️ Warning: Gmail OAuth credentials not found in environment variables.") | |
| print("Please set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET for Gmail integration.") | |
| print("Run 'python scripts/setup_gmail_credentials.py' to set up Gmail credentials.") | |
| elif not google_refresh_token: | |
| print("⚠️ Warning: GOOGLE_REFRESH_TOKEN not found.") | |
| print("Gmail integration may require re-authentication.") | |
| print("Run 'python scripts/setup_gmail_credentials.py' to obtain the refresh token.") | |
| else: | |
| print("✅ Gmail OAuth credentials found in environment variables.") | |
| return True | |
| def main(): | |
| """Main application entry point""" | |
| print("🚀 Starting Digital Assistant...") | |
| # Check environment | |
| if not check_environment(): | |
| sys.exit(1) | |
| try: | |
| # Import here to avoid import errors before environment check | |
| from src.interfaces.gradio_interface import demo | |
| print("✅ Environment check passed") | |
| print("🔖 Digital Assistant ready!") | |
| print("🤔 Now with real-time thinking display!") | |
| print("📧 Email • 🌐 Web Search • 🔖 Bookmarks") | |
| print("🌐 Launching web interface...") | |
| # Launch the interface | |
| print("🌐 Access your assistant at: http://localhost:7860") | |
| print("📱 A public URL will also be generated for external access") | |
| print("🔧 The browser should open automatically") | |
| demo.launch( | |
| # share=True, # Set to True if you want a public URL | |
| server_name="127.0.0.1", # Use localhost for better compatibility | |
| server_port=7860, | |
| show_error=True, | |
| quiet=False, | |
| inbrowser=True, # Automatically open browser | |
| show_api=False, | |
| ) | |
| except ImportError as e: | |
| print(f"❌ Import error: {e}") | |
| print("Please ensure all dependencies are installed: pip install -e .") | |
| sys.exit(1) | |
| except Exception as e: | |
| print(f"❌ Error starting Digital Assistant: {e}") | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() | |