# Core ML/AI Libraries
torch>=2.0.0
torchvision>=0.15.0
transformers>=4.30.0
numpy>=1.24.0
pandas>=2.0.0
scikit-learn>=1.3.0
scipy>=1.11.0

# NLP & Embeddings
sentence-transformers>=2.2.0

# Image Processing
Pillow>=10.0.0

# Visualization
matplotlib>=3.7.0
seaborn>=0.12.0

# Jupyter and Notebooks
jupyter>=1.0.0
notebook>=7.0.0
ipywidgets>=8.0.0

# Utilities
tqdm>=4.65.0
requests>=2.31.0
langgraph>=0.2.0

# Testing
pytest>=7.4.0

# ============================================
# LAB-SPECIFIC PACKAGES (Auto-installed)
# ============================================

# The following packages are automatically installed by labs when needed.
# You can pre-install them if you prefer, but it's not required.
# Labs use pinned versions to ensure stability:

# adversarial-robustness-toolbox==1.17.0   # Module 07 Lab 1, Lab 4
# textattack==0.3.10                       # Module 03 Lab 3, Module 07 Lab 2, Lab 4
# shap==0.45.0                             # Module 07 Lab 3

# Note: These packages have specific version requirements and dependencies
# that may conflict with each other. Labs install them on-demand with pinned
# versions to ensure compatibility and avoid breaking changes.

# ============================================
# OPTIONAL: For experimentation beyond labs
# ============================================

# These packages are NOT required for the course labs.
# Uncomment only if you want to experiment with external APIs:

# ollama>=0.1.0                            # Local LLM inference (optional)
# openai>=1.0.0                            # OpenAI API (optional)
# anthropic>=0.3.0                         # Anthropic API (optional)
# langchain>=0.1.0                         # LangChain framework (optional)
