SPARKNET / run_demo.py
MHamdan's picture
Initial commit: SPARKNET framework
d520909
#!/usr/bin/env python3
"""
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()
# Get project root
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_dependencies()
# Check Ollama
check_ollama()
# Launch
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()
# Run Streamlit
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()