Skip to content

Commit 949fc8d

Browse files
Add files via upload
1 parent 7177517 commit 949fc8d

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#!/bin/bash
2+
3+
# Pre-defined list of models to check
4+
MODEL_NAMES=("gpt-4o" "gpt-4o-mini" "text-embedding-ada-002" "gpt-3.5-turbo" "gpt-4")
5+
6+
echo "🔄 Fetching available Azure subscriptions..."
7+
SUBSCRIPTIONS=$(az account list --query "[?state=='Enabled'].{Name:name, ID:id}" --output tsv)
8+
SUB_COUNT=$(echo "$SUBSCRIPTIONS" | wc -l)
9+
10+
if [ "$SUB_COUNT" -eq 1 ]; then
11+
AZURE_SUBSCRIPTION_ID=$(echo "$SUBSCRIPTIONS" | awk '{print $2}')
12+
echo "✅ Using the only available subscription: $AZURE_SUBSCRIPTION_ID"
13+
else
14+
echo "Multiple subscriptions found:"
15+
echo "$SUBSCRIPTIONS" | awk '{print NR")", $1, "-", $2}'
16+
while true; do
17+
echo "Enter the number of the subscription to use:"
18+
read SUB_INDEX
19+
if [[ "$SUB_INDEX" =~ ^[0-9]+$ ]] && [ "$SUB_INDEX" -ge 1 ] && [ "$SUB_INDEX" -le "$SUB_COUNT" ]; then
20+
AZURE_SUBSCRIPTION_ID=$(echo "$SUBSCRIPTIONS" | awk -v idx="$SUB_INDEX" 'NR==idx {print $2}')
21+
echo "✅ Selected Subscription: $AZURE_SUBSCRIPTION_ID"
22+
break
23+
else
24+
echo "❌ Invalid selection. Please enter a valid number from the list."
25+
fi
26+
done
27+
fi
28+
29+
az account set --subscription "$AZURE_SUBSCRIPTION_ID"
30+
31+
echo "🎯 Active Subscription: $(az account show --query '[name, id]' --output tsv)"
32+
echo "🔄 Fetching Azure regions..."
33+
34+
REGIONS=$(az account list-locations --query "[].name" --output tsv)
35+
36+
echo "✅ Retrieved Azure regions. Checking availability..."
37+
38+
# Array to store table data
39+
declare -a TABLE_ROWS
40+
INDEX=1
41+
42+
# Loop through all regions
43+
for REGION in $REGIONS; do
44+
REGION=$(echo "$REGION" | xargs)
45+
echo "----------------------------------------"
46+
echo "🔍 Checking region: $REGION"
47+
QUOTA_INFO=$(az cognitiveservices usage list --location "$REGION" --output json)
48+
if [ -z "$QUOTA_INFO" ]; then
49+
echo "⚠️ WARNING: Failed to retrieve quota for region $REGION. Skipping."
50+
continue
51+
fi
52+
53+
for MODEL_NAME in "${MODEL_NAMES[@]}"; do
54+
for MODEL_PREFIX in "OpenAI.Standard" "OpenAI.GlobalStandard"; do
55+
FULL_MODEL_NAME="${MODEL_PREFIX}.$MODEL_NAME"
56+
MODEL_INFO=$(echo "$QUOTA_INFO" | awk -v model="\"value\": \"$FULL_MODEL_NAME\"" '
57+
BEGIN { RS="},"; FS="," }
58+
$0 ~ model { print $0 }
59+
')
60+
if [ -z "$MODEL_INFO" ]; then
61+
continue
62+
fi
63+
64+
CURRENT_VALUE=$(echo "$MODEL_INFO" | awk -F': ' '/"currentValue"/ {print $2}' | tr -d ',' | tr -d ' ')
65+
LIMIT=$(echo "$MODEL_INFO" | awk -F': ' '/"limit"/ {print $2}' | tr -d ',' | tr -d ' ')
66+
CURRENT_VALUE=${CURRENT_VALUE:-0}
67+
LIMIT=${LIMIT:-0}
68+
CURRENT_VALUE=$(echo "$CURRENT_VALUE" | cut -d'.' -f1)
69+
LIMIT=$(echo "$LIMIT" | cut -d'.' -f1)
70+
71+
AVAILABLE=$((LIMIT - CURRENT_VALUE))
72+
73+
TABLE_ROWS+=("$(printf "| %-4s | %-20s | %-49s | %-9s | %-9s | %-9s |" "$INDEX" "$REGION" "$FULL_MODEL_NAME" "$LIMIT" "$CURRENT_VALUE" "$AVAILABLE")")
74+
75+
INDEX=$((INDEX + 1))
76+
done
77+
done
78+
echo "----------------------------------------"
79+
done
80+
81+
# Print table header
82+
echo "----------------------------------------------------------------------------------------------------------"
83+
printf "| %-4s | %-20s | %-49s | %-9s | %-9s | %-9s |\n" "No." "Region" "Model Name" "Limit" "Used" "Available"
84+
echo "----------------------------------------------------------------------------------------------------------"
85+
86+
for ROW in "${TABLE_ROWS[@]}"; do
87+
echo "$ROW"
88+
done
89+
90+
echo "----------------------------------------------------------------------------------------------------------"
91+
echo "✅ Script completed."

0 commit comments

Comments
 (0)