Skip to content

Commit 1db80ec

Browse files
Added the and parameters for dynamic model and region selection.
- Integrated a flag to enable detailed logging for easier troubleshooting.
1 parent 0ae89b9 commit 1db80ec

File tree

1 file changed

+65
-17
lines changed

1 file changed

+65
-17
lines changed

scripts/quota_check_params.sh

Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,50 @@
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)
450
DEFAULT_MODEL_CAPACITY="gpt-4o:30,text-embedding-ada-002:80,gpt-4:30"
@@ -41,6 +87,7 @@ else
4187
done
4288
fi
4389

90+
4491
# Set the selected subscription
4592
az account set --subscription "$AZURE_SUBSCRIPTION_ID"
4693
echo "🎯 Active Subscription: $(az account show --query '[name, id]' --output tsv)"
@@ -50,8 +97,8 @@ DEFAULT_REGIONS="eastus,uksouth,eastus2,northcentralus,swedencentral,westus,west
5097
IFS=',' read -r -a DEFAULT_REGION_ARRAY <<< "$DEFAULT_REGIONS"
5198

5299
# Read parameters (if any)
53-
IFS=',' read -r -a USER_PROVIDED_PAIRS <<< "$1"
54-
USER_REGION="$2"
100+
IFS=',' read -r -a USER_PROVIDED_PAIRS <<< "$MODELS"
101+
USER_REGION="$REGIONS"
55102

56103
IS_USER_PROVIDED_PAIRS=false
57104

@@ -99,12 +146,12 @@ INDEX=1
99146

100147
VALID_REGIONS=()
101148
for REGION in "${REGIONS[@]}"; do
102-
echo "----------------------------------------"
103-
echo "🔍 Checking region: $REGION"
149+
log_verbose "----------------------------------------"
150+
log_verbose "🔍 Checking region: $REGION"
104151

105152
QUOTA_INFO=$(az cognitiveservices usage list --location "$REGION" --output json | tr '[:upper:]' '[:lower:]')
106153
if [ -z "$QUOTA_INFO" ]; then
107-
echo "⚠️ WARNING: Failed to retrieve quota for region $REGION. Skipping."
154+
log_verbose "⚠️ WARNING: Failed to retrieve quota for region $REGION. Skipping."
108155
continue
109156
fi
110157

@@ -127,7 +174,7 @@ for REGION in "${REGIONS[@]}"; do
127174
for MODEL_TYPE in "${MODEL_TYPES[@]}"; do
128175
FOUND=false
129176
INSUFFICIENT_QUOTA=false
130-
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)"
131178

132179
MODEL_INFO=$(echo "$QUOTA_INFO" | awk -v model="\"value\": \"$MODEL_TYPE\"" '
133180
BEGIN { RS="},"; FS="," }
@@ -136,7 +183,7 @@ for REGION in "${REGIONS[@]}"; do
136183

137184
if [ -z "$MODEL_INFO" ]; then
138185
FOUND=false
139-
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."
140187
continue
141188
fi
142189

@@ -152,24 +199,25 @@ for REGION in "${REGIONS[@]}"; do
152199
LIMIT=$(echo "$LIMIT" | cut -d'.' -f1)
153200

154201
AVAILABLE=$((LIMIT - CURRENT_VALUE))
155-
echo "✅ Model: $MODEL_TYPE | Used: $CURRENT_VALUE | Limit: $LIMIT | Available: $AVAILABLE"
202+
log_verbose "✅ Model: $MODEL_TYPE | Used: $CURRENT_VALUE | Limit: $LIMIT | Available: $AVAILABLE"
156203

157204
if [ "$AVAILABLE" -ge "$REQUIRED_CAPACITY" ]; then
158205
FOUND=true
159206
if [ "$MODEL_NAME" = "text-embedding-ada-002" ]; then
160207
TEXT_EMBEDDING_AVAILABLE=true
161208
fi
162209
AT_LEAST_ONE_MODEL_AVAILABLE=true
163-
TEMP_TABLE_ROWS+=("$(printf "| %-4s | %-20s | %-45s | %-10s | %-10s | %-10s |" "$INDEX" "$REGION" "$MODEL_TYPE" "$LIMIT" "$CURRENT_VALUE" "$AVAILABLE")")
210+
TEMP_TABLE_ROWS+=("$(printf "| %-4s | %-20s | %-43s | %-10s | %-10s | %-10s |" "$INDEX" "$REGION" "$MODEL_TYPE" "$LIMIT" "$CURRENT_VALUE" "$AVAILABLE")")
164211
else
165212
INSUFFICIENT_QUOTA=true
166213
fi
167214
fi
168215

169216
if [ "$FOUND" = false ]; then
170-
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+
171219
elif [ "$INSUFFICIENT_QUOTA" = true ]; then
172-
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[*]})."
173221
fi
174222
done
175223
done
@@ -185,18 +233,18 @@ if { [ "$IS_USER_PROVIDED_PAIRS" = true ] && [ "$INSUFFICIENT_QUOTA" = false ] &
185233
done
186234

187235
if [ ${#TABLE_ROWS[@]} -eq 0 ]; then
188-
echo "------------------------------------------------------------------------------------------------------------------"
236+
echo "--------------------------------------------------------------------------------------------------------------------"
189237

190238
echo "❌ No regions have sufficient quota for all required models. Please request a quota increase: https://aka.ms/oai/stuquotarequest"
191239
else
192-
echo "----------------------------------------------------------------------------------------------------------------------"
193-
printf "| %-4s | %-20s | %-45s | %-10s | %-10s | %-10s |\n" "No." "Region" "Model Name" "Limit" "Used" "Available"
194-
echo "----------------------------------------------------------------------------------------------------------------------"
240+
echo "---------------------------------------------------------------------------------------------------------------------"
241+
printf "| %-4s | %-20s | %-43s | %-10s | %-10s | %-10s |\n" "No." "Region" "Model Name" "Limit" "Used" "Available"
242+
echo "---------------------------------------------------------------------------------------------------------------------"
195243
for ROW in "${TABLE_ROWS[@]}"; do
196244
echo "$ROW"
197245
done
198-
echo "----------------------------------------------------------------------------------------------------------------------"
246+
echo "---------------------------------------------------------------------------------------------------------------------"
199247
echo "➡️ To request a quota increase, visit: https://aka.ms/oai/stuquotarequest"
200248
fi
201249

202-
echo "✅ Script completed."
250+
echo "✅ Script completed."

0 commit comments

Comments
 (0)