Skip to content

Commit b1dd19c

Browse files
authored
fix: Fix the incorrect template of generating AI routes in ai-gateway template (#253)
1 parent 468587a commit b1dd19c

1 file changed

Lines changed: 68 additions & 102 deletions

File tree

all-in-one/scripts/config-template/ai-gateway.sh

Lines changed: 68 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -105,31 +105,21 @@ function initializeLlmProviderConfigs() {
105105
local EXTRA_CONFIGS=()
106106

107107
# Top commonly used providers (defaults set in get-ai-gateway.sh)
108-
local DASHSCOPE_MODELS="${DASHSCOPE_MODELS}"
109-
IFS='|' read -r DASHSCOPE_TYPE DASHSCOPE_PATTERN <<< "$(normalizeModelPattern "$DASHSCOPE_MODELS")"
110-
initializeLlmProviderConfig aliyun qwen DASHSCOPE dashscope.aliyuncs.com "443" "https" "" "$DASHSCOPE_TYPE" "$DASHSCOPE_PATTERN"
108+
initializeLlmProviderConfig aliyun qwen DASHSCOPE dashscope.aliyuncs.com "443" "https" "" "$DASHSCOPE_MODELS"
111109

112-
local DEEPSEEK_MODELS="${DEEPSEEK_MODELS}"
113-
IFS='|' read -r DEEPSEEK_TYPE DEEPSEEK_PATTERN <<< "$(normalizeModelPattern "$DEEPSEEK_MODELS")"
114-
initializeLlmProviderConfig deepseek deepseek DEEPSEEK api.deepseek.com "443" "https" "" "$DEEPSEEK_TYPE" "$DEEPSEEK_PATTERN"
110+
initializeLlmProviderConfig deepseek deepseek DEEPSEEK api.deepseek.com "443" "https" "" "$DEEPSEEK_MODELS"
115111

116-
local MOONSHOT_MODELS="${MOONSHOT_MODELS}"
117-
IFS='|' read -r MOONSHOT_TYPE MOONSHOT_PATTERN <<< "$(normalizeModelPattern "$MOONSHOT_MODELS")"
118-
initializeLlmProviderConfig moonshot moonshot MOONSHOT api.moonshot.cn "443" "https" "" "$MOONSHOT_TYPE" "$MOONSHOT_PATTERN"
112+
initializeLlmProviderConfig moonshot moonshot MOONSHOT api.moonshot.cn "443" "https" "" "$MOONSHOT_MODELS"
119113

120-
local ZHIPUAI_MODELS="${ZHIPUAI_MODELS}"
121-
IFS='|' read -r ZHIPUAI_TYPE ZHIPUAI_PATTERN <<< "$(normalizeModelPattern "$ZHIPUAI_MODELS")"
122114
parseExtraConfigs "ZHIPUAI_EXTRA_CONFIGS"
123115
local ZHIPUAI_HOST=$(getExtraConfigValue "zhipuDomain" "open.bigmodel.cn")
124-
initializeLlmProviderConfig zhipuai zhipuai ZHIPUAI "$ZHIPUAI_HOST" "443" "https" "" "$ZHIPUAI_TYPE" "$ZHIPUAI_PATTERN" "${EXTRA_CONFIGS[@]}"
116+
initializeLlmProviderConfig zhipuai zhipuai ZHIPUAI "$ZHIPUAI_HOST" "443" "https" "" "$ZHIPUAI_MODELS" "${EXTRA_CONFIGS[@]}"
125117

126118
parseExtraConfigs "MINIMAX_EXTRA_CONFIGS"
127119
if [ ${#EXTRA_CONFIGS[@]} -eq 0 ] && [ -n "$MINIMAX_GROUP_ID" ]; then
128120
EXTRA_CONFIGS=("minimaxGroupId=\"$MINIMAX_GROUP_ID\"")
129121
fi
130-
local MINIMAX_MODELS="${MINIMAX_MODELS}"
131-
IFS='|' read -r MINIMAX_TYPE MINIMAX_PATTERN <<< "$(normalizeModelPattern "$MINIMAX_MODELS")"
132-
initializeLlmProviderConfig minimax minimax MINIMAX api.minimax.chat "443" "https" "" "$MINIMAX_TYPE" "$MINIMAX_PATTERN" "${EXTRA_CONFIGS[@]}"
122+
initializeLlmProviderConfig minimax minimax MINIMAX api.minimax.chat "443" "https" "" "$MINIMAX_MODELS" "${EXTRA_CONFIGS[@]}"
133123

134124
# Azure OpenAI
135125
if [ -z "$OPENAI_API_KEY" ]; then
@@ -144,9 +134,7 @@ function initializeLlmProviderConfigs() {
144134
fi
145135
extractHostFromUrl "$AZURE_SERVICE_URL_VAL"
146136
local AZURE_SERVICE_DOMAIN="$HOST"
147-
local AZURE_MODELS="${AZURE_MODELS}"
148-
IFS='|' read -r AZURE_TYPE AZURE_PATTERN <<< "$(normalizeModelPattern "$AZURE_MODELS")"
149-
initializeLlmProviderConfig azure azure AZURE "$AZURE_SERVICE_DOMAIN" "443" "https" "" "$AZURE_TYPE" "$AZURE_PATTERN" "${EXTRA_CONFIGS[@]}"
137+
initializeLlmProviderConfig azure azure AZURE "$AZURE_SERVICE_DOMAIN" "443" "https" "" "$AZURE_MODELS" "${EXTRA_CONFIGS[@]}"
150138
fi
151139

152140
# AWS Bedrock - requires region configuration
@@ -163,9 +151,7 @@ function initializeLlmProviderConfigs() {
163151
fi
164152
fi
165153
local BEDROCK_REGION_VAL=$(getExtraConfigValue "awsRegion" "${BEDROCK_REGION:-us-east-1}")
166-
local BEDROCK_MODELS="${BEDROCK_MODELS}"
167-
IFS='|' read -r BEDROCK_TYPE BEDROCK_PATTERN <<< "$(normalizeModelPattern "$BEDROCK_MODELS")"
168-
initializeLlmProviderConfig bedrock bedrock BEDROCK bedrock-runtime.${BEDROCK_REGION_VAL}.amazonaws.com "443" "https" "" "$BEDROCK_TYPE" "$BEDROCK_PATTERN" "${EXTRA_CONFIGS[@]}"
154+
initializeLlmProviderConfig bedrock bedrock BEDROCK bedrock-runtime.${BEDROCK_REGION_VAL}.amazonaws.com "443" "https" "" "$BEDROCK_MODELS" "${EXTRA_CONFIGS[@]}"
169155
fi
170156

171157
# Google Vertex AI - requires project and region configuration
@@ -187,41 +173,27 @@ function initializeLlmProviderConfigs() {
187173
fi
188174
fi
189175
local VERTEX_REGION_VAL=$(getExtraConfigValue "vertexRegion" "${VERTEX_REGION:-us-central1}")
190-
local VERTEX_MODELS="${VERTEX_MODELS}"
191-
IFS='|' read -r VERTEX_TYPE VERTEX_PATTERN <<< "$(normalizeModelPattern "$VERTEX_MODELS")"
192-
initializeLlmProviderConfig vertex vertex VERTEX ${VERTEX_REGION_VAL}-aiplatform.googleapis.com "443" "https" "" "$VERTEX_TYPE" "$VERTEX_PATTERN" "${EXTRA_CONFIGS[@]}"
176+
initializeLlmProviderConfig vertex vertex VERTEX ${VERTEX_REGION_VAL}-aiplatform.googleapis.com "443" "https" "" "$VERTEX_MODELS" "${EXTRA_CONFIGS[@]}"
193177
fi
194178

195179
# OpenAI (if Azure is not configured)
196180
if [ -z "$AZURE_API_KEY" ]; then
197-
local OPENAI_MODELS="${OPENAI_MODELS}"
198-
IFS='|' read -r OPENAI_TYPE OPENAI_PATTERN <<< "$(normalizeModelPattern "$OPENAI_MODELS")"
199-
initializeLlmProviderConfig openai openai OPENAI api.openai.com "443" "https" "" "$OPENAI_TYPE" "$OPENAI_PATTERN"
181+
initializeLlmProviderConfig openai openai OPENAI api.openai.com "443" "https" "" "$OPENAI_MODELS"
200182
fi
201183

202184
# OpenRouter - multi-provider router, supports custom models
203185
if [ -n "$OPENROUTER_API_KEY" ]; then
204-
local OPENROUTER_MODELS="${OPENROUTER_MODELS}"
205-
IFS='|' read -r OPENROUTER_TYPE OPENROUTER_PATTERN <<< "$(normalizeModelPattern "$OPENROUTER_MODELS")"
206-
initializeLlmProviderConfig openrouter openrouter OPENROUTER openrouter.ai "443" "https" "" "$OPENROUTER_TYPE" "$OPENROUTER_PATTERN"
186+
initializeLlmProviderConfig openrouter openrouter OPENROUTER openrouter.ai "443" "https" "" "$OPENROUTER_MODELS"
207187
fi
208188

209189
# Other providers (alphabetically ordered)
210-
local YI_MODELS="${YI_MODELS}"
211-
IFS='|' read -r YI_TYPE YI_PATTERN <<< "$(normalizeModelPattern "$YI_MODELS")"
212-
initializeLlmProviderConfig yi yi YI api.lingyiwanwu.com "443" "https" "" "$YI_TYPE" "$YI_PATTERN"
190+
initializeLlmProviderConfig yi yi YI api.lingyiwanwu.com "443" "https" "" "$YI_MODELS"
213191

214-
local AI360_MODELS="${AI360_MODELS}"
215-
IFS='|' read -r AI360_TYPE AI360_PATTERN <<< "$(normalizeModelPattern "$AI360_MODELS")"
216-
initializeLlmProviderConfig ai360 ai360 AI360 api.360.cn "443" "https" "" "$AI360_TYPE" "$AI360_PATTERN"
192+
initializeLlmProviderConfig ai360 ai360 AI360 api.360.cn "443" "https" "" "$AI360_MODELS"
217193

218-
local BAICHUAN_MODELS="${BAICHUAN_MODELS}"
219-
IFS='|' read -r BAICHUAN_TYPE BAICHUAN_PATTERN <<< "$(normalizeModelPattern "$BAICHUAN_MODELS")"
220-
initializeLlmProviderConfig baichuan baichuan BAICHUAN api.baichuan-ai.com "443" "https" "" "$BAICHUAN_TYPE" "$BAICHUAN_PATTERN"
194+
initializeLlmProviderConfig baichuan baichuan BAICHUAN api.baichuan-ai.com "443" "https" "" "$BAICHUAN_MODELS"
221195

222-
local BAIDU_MODELS="${BAIDU_MODELS}"
223-
IFS='|' read -r BAIDU_TYPE BAIDU_PATTERN <<< "$(normalizeModelPattern "$BAIDU_MODELS")"
224-
initializeLlmProviderConfig baidu baidu BAIDU qianfan.baidubce.com "443" "https" "" "$BAIDU_TYPE" "$BAIDU_PATTERN"
196+
initializeLlmProviderConfig baidu baidu BAIDU qianfan.baidubce.com "443" "https" "" "$BAIDU_MODELS"
225197

226198
parseExtraConfigs "CLAUDE_EXTRA_CONFIGS"
227199
if [ ${#EXTRA_CONFIGS[@]} -eq 0 ]; then
@@ -234,34 +206,26 @@ function initializeLlmProviderConfigs() {
234206
EXTRA_CONFIGS+=("claudeCodeMode=true")
235207
fi
236208
fi
237-
local CLAUDE_MODELS="${CLAUDE_MODELS}"
238-
IFS='|' read -r CLAUDE_TYPE CLAUDE_PATTERN <<< "$(normalizeModelPattern "$CLAUDE_MODELS")"
239-
initializeLlmProviderConfig claude claude CLAUDE api.anthropic.com "443" "https" "" "$CLAUDE_TYPE" "$CLAUDE_PATTERN" "${EXTRA_CONFIGS[@]}"
209+
initializeLlmProviderConfig claude claude CLAUDE api.anthropic.com "443" "https" "" "$CLAUDE_MODELS" "${EXTRA_CONFIGS[@]}"
240210

241211
# Cloudflare Workers AI
242212
if [ -n "$CLOUDFLARE_CONFIGURED" ]; then
243213
parseExtraConfigs "CLOUDFLARE_EXTRA_CONFIGS"
244214
if [ ${#EXTRA_CONFIGS[@]} -eq 0 ] && [ -n "$CLOUDFLARE_ACCOUNT_ID" ]; then
245215
EXTRA_CONFIGS=("cloudflareAccountId=\"$CLOUDFLARE_ACCOUNT_ID\"")
246216
fi
247-
local CLOUDFLARE_MODELS="${CLOUDFLARE_MODELS}"
248-
IFS='|' read -r CLOUDFLARE_TYPE CLOUDFLARE_PATTERN <<< "$(normalizeModelPattern "$CLOUDFLARE_MODELS")"
249-
initializeLlmProviderConfig cloudflare cloudflare CLOUDFLARE api.cloudflare.com "443" "https" "" "$CLOUDFLARE_TYPE" "$CLOUDFLARE_PATTERN" "${EXTRA_CONFIGS[@]}"
217+
initializeLlmProviderConfig cloudflare cloudflare CLOUDFLARE api.cloudflare.com "443" "https" "" "$CLOUDFLARE_MODELS" "${EXTRA_CONFIGS[@]}"
250218
fi
251219

252-
local COHERE_MODELS="${COHERE_MODELS}"
253-
IFS='|' read -r COHERE_TYPE COHERE_PATTERN <<< "$(normalizeModelPattern "$COHERE_MODELS")"
254-
initializeLlmProviderConfig cohere cohere COHERE api.cohere.com "443" "https" "" "$COHERE_TYPE" "$COHERE_PATTERN"
220+
initializeLlmProviderConfig cohere cohere COHERE api.cohere.com "443" "https" "" "$COHERE_MODELS"
255221

256222
# DeepL - translation service
257223
if [ -n "$DEEPL_CONFIGURED" ]; then
258224
parseExtraConfigs "DEEPL_EXTRA_CONFIGS"
259225
if [ ${#EXTRA_CONFIGS[@]} -eq 0 ] && [ -n "$DEEPL_TARGET_LANG" ]; then
260226
EXTRA_CONFIGS=("targetLang=\"$DEEPL_TARGET_LANG\"")
261227
fi
262-
local DEEPL_MODELS="${DEEPL_MODELS}"
263-
IFS='|' read -r DEEPL_TYPE DEEPL_PATTERN <<< "$(normalizeModelPattern "$DEEPL_MODELS")"
264-
initializeLlmProviderConfig deepl deepl DEEPL api.deepl.com "443" "https" "" "$DEEPL_TYPE" "$DEEPL_PATTERN" "${EXTRA_CONFIGS[@]}"
228+
initializeLlmProviderConfig deepl deepl DEEPL api.deepl.com "443" "https" "" "$DEEPL_MODELS" "${EXTRA_CONFIGS[@]}"
265229
fi
266230

267231
# Dify - AI workflow platform
@@ -286,50 +250,34 @@ function initializeLlmProviderConfigs() {
286250
EXTRA_CONFIGS+=("outputVariable=\"$DIFY_OUTPUT_VARIABLE\"")
287251
fi
288252
fi
289-
local DIFY_MODELS="${DIFY_MODELS}"
290-
IFS='|' read -r DIFY_TYPE DIFY_PATTERN <<< "$(normalizeModelPattern "$DIFY_MODELS")"
291-
initializeLlmProviderConfig dify dify DIFY "$DIFY_DOMAIN" "443" "https" "" "$DIFY_TYPE" "$DIFY_PATTERN" "${EXTRA_CONFIGS[@]}"
253+
initializeLlmProviderConfig dify dify DIFY "$DIFY_DOMAIN" "443" "https" "" "$DIFY_MODELS" "${EXTRA_CONFIGS[@]}"
292254
fi
293255

294-
local DOUBAO_MODELS="${DOUBAO_MODELS}"
295-
IFS='|' read -r DOUBAO_TYPE DOUBAO_PATTERN <<< "$(normalizeModelPattern "$DOUBAO_MODELS")"
296-
initializeLlmProviderConfig doubao doubao DOUBAO ark.cn-beijing.volces.com "443" "https" "" "$DOUBAO_TYPE" "$DOUBAO_PATTERN"
256+
initializeLlmProviderConfig doubao doubao DOUBAO ark.cn-beijing.volces.com "443" "https" "" "$DOUBAO_MODELS"
297257

298258
# Fireworks AI - fast inference
299259
if [ -n "$FIREWORKS_API_KEY" ]; then
300-
local FIREWORKS_MODELS="${FIREWORKS_MODELS}"
301-
IFS='|' read -r FIREWORKS_TYPE FIREWORKS_PATTERN <<< "$(normalizeModelPattern "$FIREWORKS_MODELS")"
302-
initializeLlmProviderConfig fireworks fireworks FIREWORKS api.fireworks.ai "443" "https" "" "$FIREWORKS_TYPE" "$FIREWORKS_PATTERN"
260+
initializeLlmProviderConfig fireworks fireworks FIREWORKS api.fireworks.ai "443" "https" "" "$FIREWORKS_MODELS"
303261
fi
304262

305263
# GitHub Models
306264
if [ -n "$GITHUB_API_KEY" ]; then
307-
local GITHUB_MODELS="${GITHUB_MODELS}"
308-
IFS='|' read -r GITHUB_TYPE GITHUB_PATTERN <<< "$(normalizeModelPattern "$GITHUB_MODELS")"
309-
initializeLlmProviderConfig github github GITHUB models.inference.ai.azure.com "443" "https" "" "$GITHUB_TYPE" "$GITHUB_PATTERN"
265+
initializeLlmProviderConfig github github GITHUB models.inference.ai.azure.com "443" "https" "" "$GITHUB_MODELS"
310266
fi
311267

312-
local GEMINI_MODELS="${GEMINI_MODELS}"
313-
IFS='|' read -r GEMINI_TYPE GEMINI_PATTERN <<< "$(normalizeModelPattern "$GEMINI_MODELS")"
314-
initializeLlmProviderConfig gemini gemini GEMINI generativelanguage.googleapis.com "443" "https" "" "$GEMINI_TYPE" "$GEMINI_PATTERN"
268+
initializeLlmProviderConfig gemini gemini GEMINI generativelanguage.googleapis.com "443" "https" "" "$GEMINI_MODELS"
315269

316270
# Grok - xAI's model
317271
if [ -n "$GROK_API_KEY" ]; then
318-
local GROK_MODELS="${GROK_MODELS}"
319-
IFS='|' read -r GROK_TYPE GROK_PATTERN <<< "$(normalizeModelPattern "$GROK_MODELS")"
320-
initializeLlmProviderConfig grok grok GROK api.x.ai "443" "https" "" "$GROK_TYPE" "$GROK_PATTERN"
272+
initializeLlmProviderConfig grok grok GROK api.x.ai "443" "https" "" "$GROK_MODELS"
321273
fi
322274

323275
# Groq - fast inference
324276
if [ -n "$GROQ_API_KEY" ]; then
325-
local GROQ_MODELS="${GROQ_MODELS}"
326-
IFS='|' read -r GROQ_TYPE GROQ_PATTERN <<< "$(normalizeModelPattern "$GROQ_MODELS")"
327-
initializeLlmProviderConfig groq groq GROQ api.groq.com "443" "https" "" "$GROQ_TYPE" "$GROQ_PATTERN"
277+
initializeLlmProviderConfig groq groq GROQ api.groq.com "443" "https" "" "$GROQ_MODELS"
328278
fi
329279

330-
local MISTRAL_MODELS="${MISTRAL_MODELS}"
331-
IFS='|' read -r MISTRAL_TYPE MISTRAL_PATTERN <<< "$(normalizeModelPattern "$MISTRAL_MODELS")"
332-
initializeLlmProviderConfig mistral mistral MISTRAL api.mistral.ai "443" "https" "" "$MISTRAL_TYPE" "$MISTRAL_PATTERN"
280+
initializeLlmProviderConfig mistral mistral MISTRAL api.mistral.ai "443" "https" "" "$MISTRAL_MODELS"
333281

334282
parseExtraConfigs "OLLAMA_EXTRA_CONFIGS"
335283
local OLLAMA_HOST_VAL=$(getExtraConfigValue "ollamaServerHost" "${OLLAMA_SERVER_HOST:-YOUR_OLLAMA_SERVER_HOST}")
@@ -340,20 +288,14 @@ function initializeLlmProviderConfigs() {
340288
"ollamaServerPort=$OLLAMA_PORT_VAL"
341289
)
342290
fi
343-
local OLLAMA_MODELS="${OLLAMA_MODELS}"
344-
IFS='|' read -r OLLAMA_TYPE OLLAMA_PATTERN <<< "$(normalizeModelPattern "$OLLAMA_MODELS")"
345-
initializeLlmProviderConfig ollama ollama OLLAMA "$OLLAMA_HOST_VAL" "$OLLAMA_PORT_VAL" "http" "" "$OLLAMA_TYPE" "$OLLAMA_PATTERN" "${EXTRA_CONFIGS[@]}"
291+
initializeLlmProviderConfig ollama ollama OLLAMA "$OLLAMA_HOST_VAL" "$OLLAMA_PORT_VAL" "http" "" "$OLLAMA_MODELS" "${EXTRA_CONFIGS[@]}"
346292

347293
# iFlyTek Spark
348294
if [ -n "$SPARK_CONFIGURED" ]; then
349-
local SPARK_MODELS="${SPARK_MODELS}"
350-
IFS='|' read -r SPARK_TYPE SPARK_PATTERN <<< "$(normalizeModelPattern "$SPARK_MODELS")"
351-
initializeLlmProviderConfig spark spark SPARK spark-api-open.xf-yun.com "443" "https" "" "$SPARK_TYPE" "$SPARK_PATTERN"
295+
initializeLlmProviderConfig spark spark SPARK spark-api-open.xf-yun.com "443" "https" "" "$SPARK_MODELS"
352296
fi
353297

354-
local STEPFUN_MODELS="${STEPFUN_MODELS}"
355-
IFS='|' read -r STEPFUN_TYPE STEPFUN_PATTERN <<< "$(normalizeModelPattern "$STEPFUN_MODELS")"
356-
initializeLlmProviderConfig stepfun stepfun STEPFUN api.stepfun.com "443" "https" "" "$STEPFUN_TYPE" "$STEPFUN_PATTERN"
298+
initializeLlmProviderConfig stepfun stepfun STEPFUN api.stepfun.com "443" "https" "" "$STEPFUN_MODELS"
357299

358300
# Tencent Hunyuan
359301
if [ -n "$HUNYUAN_CONFIGURED" ]; then
@@ -367,16 +309,12 @@ function initializeLlmProviderConfigs() {
367309
EXTRA_CONFIGS+=("hunyuanAuthKey=\"$HUNYUAN_AUTH_KEY\"")
368310
fi
369311
fi
370-
local HUNYUAN_MODELS="${HUNYUAN_MODELS}"
371-
IFS='|' read -r HUNYUAN_TYPE HUNYUAN_PATTERN <<< "$(normalizeModelPattern "$HUNYUAN_MODELS")"
372-
initializeLlmProviderConfig hunyuan hunyuan HUNYUAN hunyuan.tencentcloudapi.com "443" "https" "" "$HUNYUAN_TYPE" "$HUNYUAN_PATTERN" "${EXTRA_CONFIGS[@]}"
312+
initializeLlmProviderConfig hunyuan hunyuan HUNYUAN hunyuan.tencentcloudapi.com "443" "https" "" "$HUNYUAN_MODELS" "${EXTRA_CONFIGS[@]}"
373313
fi
374314

375315
# Together AI - open model hosting
376316
if [ -n "$TOGETHERAI_API_KEY" ]; then
377-
local TOGETHERAI_MODELS="${TOGETHERAI_MODELS}"
378-
IFS='|' read -r TOGETHERAI_TYPE TOGETHERAI_PATTERN <<< "$(normalizeModelPattern "$TOGETHERAI_MODELS")"
379-
initializeLlmProviderConfig togetherai togetherai TOGETHERAI api.together.xyz "443" "https" "" "$TOGETHERAI_TYPE" "$TOGETHERAI_PATTERN"
317+
initializeLlmProviderConfig togetherai togetherai TOGETHERAI api.together.xyz "443" "https" "" "$TOGETHERAI_MODELS"
380318
fi
381319
}
382320

@@ -395,12 +333,14 @@ function initializeLlmProviderConfig() {
395333
shift
396334
local DEFAULT_API_KEY="$1"
397335
shift
398-
local MODEL_MATCH_TYPE="$1"
399-
shift
400-
local MODEL_MATCH_VALUE="$1"
336+
local MODELS="$1"
401337
shift
402338
local EXTRA_CONFIGS=("$@")
403339

340+
local MODEL_MATCH_TYPE
341+
local MODEL_MATCH_VALUE
342+
IFS='|' read -r MODEL_MATCH_TYPE MODEL_MATCH_VALUE <<< "$(normalizeModelPattern "$MODELS")"
343+
404344
appendAiRegistry "$NAME" "$DOMAIN" "$PORT" "$PROTOCOL"
405345
appendAiProxyConfigs "$NAME" "$TYPE" "$API_KEY_PREFIX" "$DEFAULT_API_KEY" "${EXTRA_CONFIGS[@]}"
406346
generateAiIngress "$NAME" "$MODEL_MATCH_TYPE" "$MODEL_MATCH_VALUE"
@@ -644,6 +584,37 @@ function generateAiRoute() {
644584

645585
mkdir -p /data/configmaps
646586

587+
local modelPredicatesJson=""
588+
if [ "$MODEL_MATCH_TYPE" == "REGULAR" ]; then
589+
# REGULAR: split into multiple predicates
590+
IFS='|' read -ra patterns <<< "$MODEL_MATCH_VALUE"
591+
local predicates=()
592+
for pattern in "${patterns[@]}"; do
593+
if [[ "$pattern" =~ \.\*$ ]]; then
594+
# Ends with .*, use PRE match
595+
local prefixValue="${pattern%.*}" # Remove trailing .*
596+
predicates+=("{\"matchType\": \"PRE\", \"matchValue\": \"$prefixValue\"}")
597+
else
598+
# Other cases, EXACT match, but use PRE match for simplicity
599+
predicates+=("{\"matchType\": \"PRE\", \"matchValue\": \"$pattern\"}")
600+
fi
601+
done
602+
modelPredicatesJson="["
603+
local first=1
604+
for pred in "${predicates[@]}"; do
605+
if [ $first -eq 1 ]; then
606+
first=0
607+
else
608+
modelPredicatesJson+=","
609+
fi
610+
modelPredicatesJson+=$'\n'" $pred"
611+
done
612+
modelPredicatesJson+=$'\n'" ]"
613+
else
614+
# Other cases, single predicate
615+
modelPredicatesJson="[{\"matchType\": \"$MODEL_MATCH_TYPE\", \"matchValue\": \"$MODEL_MATCH_VALUE\"}]"
616+
fi
617+
647618
cat <<EOF >"$CONFIG_MAP_FILE"
648619
apiVersion: v1
649620
kind: ConfigMap
@@ -663,12 +634,7 @@ data:
663634
"provider": "$ROUTE_NAME"
664635
}
665636
],
666-
"modelPredicates": [
667-
{
668-
"matchType": "$MODEL_MATCH_TYPE",
669-
"matchValue": "$MODEL_MATCH_VALUE"
670-
}
671-
],
637+
"modelPredicates": $modelPredicatesJson,
672638
"version": "1"
673639
}
674640
EOF

0 commit comments

Comments
 (0)