From ae119150c5b266fbfe7f2cb4474494b08c05034a Mon Sep 17 00:00:00 2001 From: harshalmore31 Date: Thu, 9 Jan 2025 18:46:02 +0000 Subject: [PATCH] Add auto-installation of required packages in ui.py --- swarms/structs/ui/ui.py | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/swarms/structs/ui/ui.py b/swarms/structs/ui/ui.py index 7764da30..1ba0f59f 100644 --- a/swarms/structs/ui/ui.py +++ b/swarms/structs/ui/ui.py @@ -1,3 +1,32 @@ +import subprocess +import sys +import importlib + +# Package installation function +def install_and_import_packages(): + """Auto-install and import required packages.""" + required_packages = { + 'gradio': 'gradio', + 'litellm': 'litellm', + 'python-dotenv': 'dotenv', + 'swarms': 'swarms' + } + + for package, import_name in required_packages.items(): + try: + importlib.import_module(import_name) + print(f"✓ {package} already installed") + except ImportError: + print(f"Installing {package}...") + try: + subprocess.check_call([sys.executable, '-m', 'pip', 'install', package]) + print(f"✓ {package} installed successfully") + except subprocess.CalledProcessError: + print(f"✗ Failed to install {package}") + +# Run the installation function first +install_and_import_packages() + import os from dotenv import load_dotenv from typing import AsyncGenerator, List, Dict, Any, Tuple, Optional @@ -16,6 +45,7 @@ from dotenv import set_key, find_dotenv import logging # Import the logging module import litellm # Import litellm exception + # Initialize logger load_dotenv() @@ -1852,6 +1882,6 @@ def create_app(): return ui.build() -if __name__ == "__main__": - app = create_app() - app.launch() \ No newline at end of file +# if __name__ == "__main__": +# app = create_app() +# app.launch() \ No newline at end of file