File size: 4,012 Bytes
553fbf7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | """
MINDI 1.5 Vision-Coder β Installation Verification Script
Checks that every required package is importable and reports
versions + GPU status. Run after Phase 3 setup.
"""
from __future__ import annotations
import sys
from importlib.metadata import version as pkg_version
def check(package_name: str, import_name: str | None = None) -> bool:
"""Try to import a package and report status."""
mod = import_name or package_name
try:
__import__(mod)
v = pkg_version(package_name)
print(f" \u2705 {package_name} {v}")
return True
except Exception as e:
print(f" \u274c {package_name} β FAILED β {e}")
return False
def check_cuda() -> bool:
"""Verify PyTorch CUDA availability."""
try:
import torch
v = torch.__version__
if torch.cuda.is_available():
gpu = torch.cuda.get_device_name(0)
vram = round(torch.cuda.get_device_properties(0).total_memory / 1e9, 2)
print(f" \u2705 torch {v} β CUDA available β {gpu} ({vram} GB)")
return True
else:
print(f" \u26a0\ufe0f torch {v} β NO CUDA (CPU only)")
return False
except Exception as e:
print(f" \u274c torch β FAILED β {e}")
return False
def main() -> None:
print("=" * 60)
print(" MINDI 1.5 Vision-Coder β Package Verification")
print("=" * 60)
print(f"\n Python: {sys.version}")
print(f" Executable: {sys.executable}\n")
results: list[bool] = []
print("[PyTorch + CUDA]")
results.append(check_cuda())
check("torchvision")
check("torchaudio")
print("\n[Group A β Core Transformers]")
for pkg in ["transformers", "datasets", "tokenizers", "accelerate", "peft", "huggingface-hub"]:
imp = pkg.replace("-", "_")
results.append(check(pkg, imp))
print("\n[Group B β Vision]")
results.append(check("pillow", "PIL"))
results.append(check("opencv-python", "cv2"))
results.append(check("open-clip-torch", "open_clip"))
print("\n[Group C β Search]")
for pkg, imp in [("tavily-python", "tavily"), ("duckduckgo-search", "duckduckgo_search"),
("beautifulsoup4", "bs4"), ("playwright", "playwright"),
("requests", "requests"), ("httpx", "httpx"), ("lxml", "lxml")]:
results.append(check(pkg, imp))
print("\n[Group D β Sandbox]")
results.append(check("e2b"))
results.append(check("docker"))
print("\n[Group E β Web Framework]")
for pkg, imp in [("fastapi", "fastapi"), ("uvicorn", "uvicorn"), ("websockets", "websockets"),
("python-multipart", "multipart"), ("python-jose", "jose"), ("passlib", "passlib")]:
results.append(check(pkg, imp))
print("\n[Group F β Training Utilities]")
for pkg, imp in [("wandb", "wandb"), ("bitsandbytes", "bitsandbytes"), ("scipy", "scipy"),
("scikit-learn", "sklearn"), ("einops", "einops")]:
results.append(check(pkg, imp))
print("\n[Group G β Vector Store / RAG]")
results.append(check("faiss-cpu", "faiss"))
results.append(check("sentence-transformers", "sentence_transformers"))
print("\n[Group H β Utilities]")
for pkg, imp in [("rich", "rich"), ("tqdm", "tqdm"), ("python-dotenv", "dotenv"),
("pyyaml", "yaml"), ("numpy", "numpy"), ("pandas", "pandas"),
("matplotlib", "matplotlib")]:
results.append(check(pkg, imp))
print("\n[Group I β Code Quality]")
for pkg in ["black", "isort", "mypy"]:
results.append(check(pkg))
# Summary
passed = sum(results)
total = len(results)
print("\n" + "=" * 60)
if passed == total:
print(f" \u2705 ALL {total} PACKAGES VERIFIED β READY TO BUILD!")
else:
print(f" \u26a0\ufe0f {passed}/{total} passed β {total - passed} need fixing")
print("=" * 60)
if __name__ == "__main__":
main()
|