<% if (framework === 'sklearn') { %># Scikit-learn dependencies
scikit-learn==1.7.1
joblib==1.4.2
<% } else if (framework === 'xgboost') { %># XGBoost dependencies
xgboost==2.1.3
<% } else if (framework === 'tensorflow') { %># Tensorflow dependencies
setuptools>=65.0.0
tensorflow==2.20.0
<% } else if (framework === 'transformers' && modelServer === 'sglang') { %># SGLang dependencies
sglang[all]==0.5.10
torch>=2.1.0
transformers>=4.36.0
accelerate>=0.25.0
httpx==0.27.0  # For async HTTP client if needed
fastapi==0.116.1
uvicorn==0.35.0
<% } %>
numpy==1.26.4

# Web framework for inference endpoint
<% if (modelServer === 'flask') { %>
flask==3.0.3
gunicorn==23.0.0
<% } else if (modelServer === 'fastapi') { %>
fastapi==0.116.1
uvicorn==0.35.0
<% } %>

# SageMaker dependencies
sagemaker-inference==1.10.1
sagemaker-training==5.1.0

# Optional utilities
psutil==6.0.0  # For system monitoring
prometheus-client==0.20.0  # For metrics (if needed)

<% if (includeSampleModel && architecture !== 'triton') { %>
# Sample model dependencies
ucimlrepo
pandas
<% } %>

<% if (includeSampleModel && architecture === 'triton') { %>
# Triton sample model training dependencies
ucimlrepo
pandas
numpy
<% if (backend === 'fil' && (modelFormat === 'xgboost_json' || modelFormat === 'xgboost_ubj')) { %>
xgboost
<% } else if (backend === 'fil' && modelFormat === 'lightgbm_txt') { %>
lightgbm
<% } else if (backend === 'onnxruntime') { %>
scikit-learn
skl2onnx
onnxruntime
<% } else if (backend === 'tensorflow') { %>
tensorflow
<% } else if (backend === 'python') { %>
scikit-learn
<% } %>
<% } %>
