| | |
| | """ |
| | SPARKNET Demo Launcher |
| | |
| | Cross-platform launcher for the Streamlit demo. |
| | |
| | Usage: |
| | python run_demo.py [--port PORT] |
| | """ |
| |
|
| | import subprocess |
| | import sys |
| | import os |
| | from pathlib import Path |
| |
|
| | def check_dependencies(): |
| | """Check and install required dependencies.""" |
| | print("π¦ Checking dependencies...") |
| |
|
| | try: |
| | import streamlit |
| | print(f" β
Streamlit {streamlit.__version__}") |
| | except ImportError: |
| | print(" π₯ Installing Streamlit...") |
| | subprocess.run([sys.executable, "-m", "pip", "install", "streamlit"], check=True) |
| |
|
| | try: |
| | import pandas |
| | print(f" β
Pandas {pandas.__version__}") |
| | except ImportError: |
| | print(" π₯ Installing Pandas...") |
| | subprocess.run([sys.executable, "-m", "pip", "install", "pandas"], check=True) |
| |
|
| | try: |
| | import httpx |
| | print(f" β
httpx {httpx.__version__}") |
| | except ImportError: |
| | print(" π₯ Installing httpx...") |
| | subprocess.run([sys.executable, "-m", "pip", "install", "httpx"], check=True) |
| |
|
| |
|
| | def check_ollama(): |
| | """Check if Ollama is running.""" |
| | print("\nπ Checking Ollama status...") |
| |
|
| | try: |
| | import httpx |
| | with httpx.Client(timeout=2.0) as client: |
| | response = client.get("http://localhost:11434/api/tags") |
| | if response.status_code == 200: |
| | data = response.json() |
| | models = len(data.get("models", [])) |
| | print(f" β
Ollama is running ({models} models)") |
| | return True |
| | except Exception: |
| | pass |
| |
|
| | print(" β οΈ Ollama not running (demo will use simulated responses)") |
| | print(" Start with: ollama serve") |
| | return False |
| |
|
| |
|
| | def main(): |
| | """Main entry point.""" |
| | import argparse |
| |
|
| | parser = argparse.ArgumentParser(description="SPARKNET Demo Launcher") |
| | parser.add_argument("--port", type=int, default=8501, help="Port to run on") |
| | args = parser.parse_args() |
| |
|
| | print("=" * 50) |
| | print("π₯ SPARKNET Demo Launcher") |
| | print("=" * 50) |
| | print() |
| |
|
| | |
| | project_root = Path(__file__).parent |
| | demo_app = project_root / "demo" / "app.py" |
| |
|
| | if not demo_app.exists(): |
| | print(f"β Demo app not found: {demo_app}") |
| | sys.exit(1) |
| |
|
| | |
| | check_dependencies() |
| |
|
| | |
| | check_ollama() |
| |
|
| | |
| | print() |
| | print(f"π Launching SPARKNET Demo on port {args.port}...") |
| | print(f" URL: http://localhost:{args.port}") |
| | print() |
| | print("Press Ctrl+C to stop") |
| | print("=" * 50) |
| | print() |
| |
|
| | |
| | os.chdir(project_root) |
| | subprocess.run([ |
| | sys.executable, "-m", "streamlit", "run", |
| | str(demo_app), |
| | "--server.port", str(args.port), |
| | "--server.headless", "true", |
| | ]) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | main() |
| |
|