11#! /bin/bash
2+ # VERBOSE=false
3+
4+ MODELS=" "
5+ REGIONS=" "
6+ VERBOSE=false
7+
8+ while [[ $# -gt 0 ]]; do
9+ case " $1 " in
10+ --models)
11+ MODELS=" $2 "
12+ shift 2
13+ ;;
14+ --regions)
15+ REGIONS=" $2 "
16+ shift 2
17+ ;;
18+ --verbose)
19+ VERBOSE=true
20+ shift
21+ ;;
22+ * )
23+ echo " Unknown option: $1 "
24+ exit 1
25+ ;;
26+ esac
27+ done
28+
29+ # Fallback to defaults if not provided
30+ [[ -z " $MODELS " ]]
31+ [[ -z " $REGIONS " ]]
32+
33+ echo " Models: $MODELS "
34+ echo " Regions: $REGIONS "
35+ echo " Verbose: $VERBOSE "
36+
37+ for arg in " $@ " ; do
38+ if [ " $arg " = " --verbose" ]; then
39+ VERBOSE=true
40+ fi
41+ done
42+
43+ log_verbose () {
44+ if [ " $VERBOSE " = true ]; then
45+ echo " $1 "
46+ fi
47+ }
248
349# Default Models and Capacities (Comma-separated in "model:capacity" format)
450DEFAULT_MODEL_CAPACITY=" gpt-4o:30,gpt-4o-mini:30,gpt-4:30,text-embedding-ada-002:80"
@@ -51,8 +97,8 @@ DEFAULT_REGIONS="eastus,uksouth,eastus2,northcentralus,swedencentral,westus,west
5197IFS=' ,' read -r -a DEFAULT_REGION_ARRAY <<< " $DEFAULT_REGIONS"
5298
5399# Read parameters (if any)
54- IFS=' ,' read -r -a USER_PROVIDED_PAIRS <<< " $1 "
55- USER_REGION=" $2 "
100+ IFS=' ,' read -r -a USER_PROVIDED_PAIRS <<< " $MODELS "
101+ USER_REGION=" $REGIONS "
56102
57103IS_USER_PROVIDED_PAIRS=false
58104
@@ -100,12 +146,12 @@ INDEX=1
100146
101147VALID_REGIONS=()
102148for REGION in " ${REGIONS[@]} " ; do
103- echo " ----------------------------------------"
104- echo " 🔍 Checking region: $REGION "
149+ log_verbose " ----------------------------------------"
150+ log_verbose " 🔍 Checking region: $REGION "
105151
106152 QUOTA_INFO=$( az cognitiveservices usage list --location " $REGION " --output json | tr ' [:upper:]' ' [:lower:]' )
107153 if [ -z " $QUOTA_INFO " ]; then
108- echo " ⚠️ WARNING: Failed to retrieve quota for region $REGION . Skipping."
154+ log_verbose " ⚠️ WARNING: Failed to retrieve quota for region $REGION . Skipping."
109155 continue
110156 fi
111157
@@ -128,7 +174,7 @@ for REGION in "${REGIONS[@]}"; do
128174 for MODEL_TYPE in " ${MODEL_TYPES[@]} " ; do
129175 FOUND=false
130176 INSUFFICIENT_QUOTA=false
131- echo " 🔍 Checking model: $MODEL_NAME with required capacity: $REQUIRED_CAPACITY ($MODEL_TYPE )"
177+ log_verbose " 🔍 Checking model: $MODEL_NAME with required capacity: $REQUIRED_CAPACITY ($MODEL_TYPE )"
132178
133179 MODEL_INFO=$( echo " $QUOTA_INFO " | awk -v model=" \" value\" : \" $MODEL_TYPE \" " '
134180 BEGIN { RS="},"; FS="," }
@@ -137,7 +183,7 @@ for REGION in "${REGIONS[@]}"; do
137183
138184 if [ -z " $MODEL_INFO " ]; then
139185 FOUND=false
140- echo " ⚠️ WARNING: No quota information found for model: $MODEL_NAME in region: $REGION for model type: $MODEL_TYPE ."
186+ log_verbose " ⚠️ WARNING: No quota information found for model: $MODEL_NAME in region: $REGION for model type: $MODEL_TYPE ."
141187 continue
142188 fi
143189
@@ -153,7 +199,7 @@ for REGION in "${REGIONS[@]}"; do
153199 LIMIT=$( echo " $LIMIT " | cut -d' .' -f1)
154200
155201 AVAILABLE=$(( LIMIT - CURRENT_VALUE))
156- echo " ✅ Model: $MODEL_TYPE | Used: $CURRENT_VALUE | Limit: $LIMIT | Available: $AVAILABLE "
202+ log_verbose " ✅ Model: $MODEL_TYPE | Used: $CURRENT_VALUE | Limit: $LIMIT | Available: $AVAILABLE "
157203
158204 if [ " $AVAILABLE " -ge " $REQUIRED_CAPACITY " ]; then
159205 FOUND=true
@@ -168,9 +214,10 @@ for REGION in "${REGIONS[@]}"; do
168214 fi
169215
170216 if [ " $FOUND " = false ]; then
171- echo " ❌ No models found for model: $MODEL_NAME in region: $REGION (${MODEL_TYPES[*]} )"
217+ log_verbose " ❌ No models found for model: $MODEL_NAME in region: $REGION (${MODEL_TYPES[*]} )"
218+
172219 elif [ " $INSUFFICIENT_QUOTA " = true ]; then
173- echo " ⚠️ Model $MODEL_NAME in region: $REGION has insufficient quota (${MODEL_TYPES[*]} )."
220+ log_verbose " ⚠️ Model $MODEL_NAME in region: $REGION has insufficient quota (${MODEL_TYPES[*]} )."
174221 fi
175222 done
176223 done
200247 echo " ➡️ To request a quota increase, visit: https://aka.ms/oai/stuquotarequest"
201248fi
202249
203- echo " ✅ Script completed."
250+ echo " ✅ Script completed."
0 commit comments