@@ -11,27 +11,93 @@ MODEL_ROUTER_VERSION=${MODEL_ROUTER_VERSION:-1.0.0}
1111
1212declare -a GENERATED_INGRESSES
1313
14+ # Normalize model pattern to match type and regex value
15+ # Supports:
16+ # - Wildcard prefix: "qwen-*" -> PRE "qwen-"
17+ # - Exact name: "qwen3-max" -> PRE "qwen3-max"
18+ # - Multiple wildcards: "kimi-*,moonshot-*" -> REGULAR "kimi-.*|moonshot-.*"
19+ # - Multiple exact: "kimi-2.5,moonshot-k1" -> REGULAR "kimi-2.5|moonshot-k1"
20+ # - Mixed: "qwen-*,gpt-4" -> REGULAR "qwen-.*|gpt-4"
21+ # Returns: "MATCH_TYPE|MATCH_VALUE"
22+ normalizeModelPattern () {
23+ local pattern=" $1 "
24+ local match_type=" "
25+ local match_value=" "
26+
27+ # Remove spaces
28+ pattern=" ${pattern// / } "
29+
30+ # Empty pattern defaults to match all
31+ if [ -z " $pattern " ]; then
32+ echo " REGULAR|.*"
33+ return
34+ fi
35+
36+ # Check if contains comma (multiple patterns)
37+ if [[ " $pattern " == * " ," * ]]; then
38+ IFS=' ,' read -ra parts <<< " $pattern"
39+ local regex_parts=()
40+
41+ for part in " ${parts[@]} " ; do
42+ if [[ " $part " == * " *" ]]; then
43+ # Has wildcard, convert * to .*
44+ part=" ${part// \* / .* } "
45+ fi
46+ regex_parts+=(" $part " )
47+ done
48+
49+ # Join with |
50+ match_value=$( IFS=' |' ; echo " ${regex_parts[*]} " )
51+ match_type=" REGULAR"
52+ else
53+ # Single pattern
54+ if [[ " $pattern " == * " *" ]]; then
55+ # Has wildcard
56+ if [[ " $pattern " == * " -*" ]] && [[ " $pattern " != * " .*" ]]; then
57+ # Simple suffix wildcard like "qwen-*", use PRE for efficiency
58+ match_type=" PRE"
59+ match_value=" ${pattern// \* / } "
60+ else
61+ # Complex wildcard, use REGULAR
62+ match_type=" REGULAR"
63+ match_value=" ${pattern// \* / .* } "
64+ fi
65+ else
66+ # No wildcard, exact match - use PRE for simple prefix/exact match
67+ match_type=" PRE"
68+ match_value=" $pattern "
69+ fi
70+ fi
71+
72+ echo " $match_type |$match_value "
73+ }
74+
1475function initializeLlmProviderConfigs() {
1576 local EXTRA_CONFIGS=()
1677
1778 # Top commonly used providers (matching get-ai-gateway.sh order)
18- local DASHSCOPE_MODELS=" ${DASHSCOPE_MODELS:- qwen} "
19- initializeLlmProviderConfig aliyun qwen DASHSCOPE dashscope.aliyuncs.com " 443" " https" " " " PRE" " $DASHSCOPE_MODELS "
79+ local DASHSCOPE_MODELS=" ${DASHSCOPE_MODELS:- qwen-* } "
80+ IFS=' |' read -r DASHSCOPE_TYPE DASHSCOPE_PATTERN <<< " $(normalizeModelPattern " $DASHSCOPE_MODELS " )"
81+ initializeLlmProviderConfig aliyun qwen DASHSCOPE dashscope.aliyuncs.com " 443" " https" " " " $DASHSCOPE_TYPE " " $DASHSCOPE_PATTERN "
2082
21- local DEEPSEEK_MODELS=" ${DEEPSEEK_MODELS:- deepseek} "
22- initializeLlmProviderConfig deepseek deepseek DEEPSEEK api.deepseek.com " 443" " https" " " " PRE" " $DEEPSEEK_MODELS "
83+ local DEEPSEEK_MODELS=" ${DEEPSEEK_MODELS:- deepseek-* } "
84+ IFS=' |' read -r DEEPSEEK_TYPE DEEPSEEK_PATTERN <<< " $(normalizeModelPattern " $DEEPSEEK_MODELS " )"
85+ initializeLlmProviderConfig deepseek deepseek DEEPSEEK api.deepseek.com " 443" " https" " " " $DEEPSEEK_TYPE " " $DEEPSEEK_PATTERN "
2386
24- local MOONSHOT_MODELS=" ${MOONSHOT_MODELS:- moonshot-.* |kimi-.* } "
25- initializeLlmProviderConfig moonshot moonshot MOONSHOT api.moonshot.cn " 443" " https" " " " REGULAR" " $MOONSHOT_MODELS "
87+ local MOONSHOT_MODELS=" ${MOONSHOT_MODELS:- moonshot-* ,kimi-* } "
88+ IFS=' |' read -r MOONSHOT_TYPE MOONSHOT_PATTERN <<< " $(normalizeModelPattern " $MOONSHOT_MODELS " )"
89+ initializeLlmProviderConfig moonshot moonshot MOONSHOT api.moonshot.cn " 443" " https" " " " $MOONSHOT_TYPE " " $MOONSHOT_PATTERN "
2690
27- local ZHIPUAI_MODELS=" ${ZHIPUAI_MODELS:- GLM-} "
28- initializeLlmProviderConfig zhipuai zhipuai ZHIPUAI open.bigmodel.cn " 443" " https" " " " PRE" " $ZHIPUAI_MODELS "
91+ local ZHIPUAI_MODELS=" ${ZHIPUAI_MODELS:- GLM-* } "
92+ IFS=' |' read -r ZHIPUAI_TYPE ZHIPUAI_PATTERN <<< " $(normalizeModelPattern " $ZHIPUAI_MODELS " )"
93+ initializeLlmProviderConfig zhipuai zhipuai ZHIPUAI open.bigmodel.cn " 443" " https" " " " $ZHIPUAI_TYPE " " $ZHIPUAI_PATTERN "
2994
3095 EXTRA_CONFIGS=(
3196 " minimaxGroupId=\" $MINIMAX_GROUP_ID \" "
3297 )
33- local MINIMAX_MODELS=" ${MINIMAX_MODELS:- abab} "
34- initializeLlmProviderConfig minimax minimax MINIMAX api.minimax.chat " 443" " https" " " " PRE" " $MINIMAX_MODELS " " ${EXTRA_CONFIGS[@]} "
98+ local MINIMAX_MODELS=" ${MINIMAX_MODELS:- abab-* } "
99+ IFS=' |' read -r MINIMAX_TYPE MINIMAX_PATTERN <<< " $(normalizeModelPattern " $MINIMAX_MODELS " )"
100+ initializeLlmProviderConfig minimax minimax MINIMAX api.minimax.chat " 443" " https" " " " $MINIMAX_TYPE " " $MINIMAX_PATTERN " " ${EXTRA_CONFIGS[@]} "
35101
36102 # Azure OpenAI
37103 if [ -z " $OPENAI_API_KEY " ]; then
@@ -43,8 +109,9 @@ function initializeLlmProviderConfigs() {
43109 EXTRA_CONFIGS=(
44110 " azureServiceUrl=$AZURE_SERVICE_URL "
45111 )
46- local AZURE_MODELS=" ${AZURE_MODELS:- gpt-.* |o1-.* |o3-.* } "
47- initializeLlmProviderConfig azure azure AZURE " $AZURE_SERVICE_DOMAIN " " 443" " https" " " " REGULAR" " $AZURE_MODELS " " ${EXTRA_CONFIGS[@]} "
112+ local AZURE_MODELS=" ${AZURE_MODELS:- gpt-* ,o1-* ,o3-* } "
113+ IFS=' |' read -r AZURE_TYPE AZURE_PATTERN <<< " $(normalizeModelPattern " $AZURE_MODELS " )"
114+ initializeLlmProviderConfig azure azure AZURE " $AZURE_SERVICE_DOMAIN " " 443" " https" " " " $AZURE_TYPE " " $AZURE_PATTERN " " ${EXTRA_CONFIGS[@]} "
48115 fi
49116
50117 # AWS Bedrock - requires region configuration
@@ -57,9 +124,9 @@ function initializeLlmProviderConfigs() {
57124 EXTRA_CONFIGS+=(" accessKeyId=\" $BEDROCK_ACCESS_KEY \" " )
58125 EXTRA_CONFIGS+=(" secretAccessKey=\" $BEDROCK_SECRET_KEY \" " )
59126 fi
60- # Support custom model patterns via environment variable
61- local BEDROCK_MODELS= " ${ BEDROCK_MODELS:- . * } "
62- initializeLlmProviderConfig bedrock bedrock BEDROCK bedrock-runtime.${BEDROCK_REGION:- us-east-1} .amazonaws.com " 443" " https" " " " REGULAR " " $BEDROCK_MODELS " " ${EXTRA_CONFIGS[@]} "
127+ local BEDROCK_MODELS= " ${BEDROCK_MODELS :-* } "
128+ IFS= ' | ' read -r BEDROCK_TYPE BEDROCK_PATTERN <<< " $(normalizeModelPattern " $ BEDROCK_MODELS" ) "
129+ initializeLlmProviderConfig bedrock bedrock BEDROCK bedrock-runtime.${BEDROCK_REGION:- us-east-1} .amazonaws.com " 443" " https" " " " $BEDROCK_TYPE " " $BEDROCK_PATTERN " " ${EXTRA_CONFIGS[@]} "
63130 fi
64131
65132 # Google Vertex AI - requires project and region configuration
@@ -77,66 +144,76 @@ function initializeLlmProviderConfigs() {
77144 if [ -n " $VERTEX_AUTH_SERVICE_NAME " ]; then
78145 EXTRA_CONFIGS+=(" serviceAccountName=\" $VERTEX_AUTH_SERVICE_NAME \" " )
79146 fi
80- # Support custom model patterns via environment variable
81- local VERTEX_MODELS= " ${ VERTEX_MODELS:- gemini-. * } "
82- initializeLlmProviderConfig vertex vertex VERTEX ${VERTEX_REGION:- us-central1} -aiplatform.googleapis.com " 443" " https" " " " REGULAR " " $VERTEX_MODELS " " ${EXTRA_CONFIGS[@]} "
147+ local VERTEX_MODELS= " ${VERTEX_MODELS :- gemini- * } "
148+ IFS= ' | ' read -r VERTEX_TYPE VERTEX_PATTERN <<< " $(normalizeModelPattern " $ VERTEX_MODELS" ) "
149+ initializeLlmProviderConfig vertex vertex VERTEX ${VERTEX_REGION:- us-central1} -aiplatform.googleapis.com " 443" " https" " " " $VERTEX_TYPE " " $VERTEX_PATTERN " " ${EXTRA_CONFIGS[@]} "
83150 fi
84151
85152 # OpenAI (if Azure is not configured)
86153 if [ -z " $AZURE_API_KEY " ]; then
87- local OPENAI_MODELS=" ${OPENAI_MODELS:- gpt-.* |o1-.* |o3-.* } "
88- initializeLlmProviderConfig openai openai OPENAI api.openai.com " 443" " https" " " " REGULAR" " $OPENAI_MODELS "
154+ local OPENAI_MODELS=" ${OPENAI_MODELS:- gpt-* ,o1-* ,o3-* } "
155+ IFS=' |' read -r OPENAI_TYPE OPENAI_PATTERN <<< " $(normalizeModelPattern " $OPENAI_MODELS " )"
156+ initializeLlmProviderConfig openai openai OPENAI api.openai.com " 443" " https" " " " $OPENAI_TYPE " " $OPENAI_PATTERN "
89157 fi
90158
91159 # OpenRouter - multi-provider router, supports custom models
92160 if [ -n " $OPENROUTER_API_KEY " ]; then
93- local OPENROUTER_MODELS=" ${OPENROUTER_MODELS:- .* } "
94- initializeLlmProviderConfig openrouter openrouter OPENROUTER openrouter.ai " 443" " https" " " " REGULAR" " $OPENROUTER_MODELS "
161+ local OPENROUTER_MODELS=" ${OPENROUTER_MODELS:-* } "
162+ IFS=' |' read -r OPENROUTER_TYPE OPENROUTER_PATTERN <<< " $(normalizeModelPattern " $OPENROUTER_MODELS " )"
163+ initializeLlmProviderConfig openrouter openrouter OPENROUTER openrouter.ai " 443" " https" " " " $OPENROUTER_TYPE " " $OPENROUTER_PATTERN "
95164 fi
96165
97166 # Other providers (alphabetically ordered)
98- local YI_MODELS=" ${YI_MODELS:- yi-} "
99- initializeLlmProviderConfig yi yi YI api.lingyiwanwu.com " 443" " https" " " " PRE" " $YI_MODELS "
167+ local YI_MODELS=" ${YI_MODELS:- yi-* } "
168+ IFS=' |' read -r YI_TYPE YI_PATTERN <<< " $(normalizeModelPattern " $YI_MODELS " )"
169+ initializeLlmProviderConfig yi yi YI api.lingyiwanwu.com " 443" " https" " " " $YI_TYPE " " $YI_PATTERN "
100170
101- local AI360_MODELS=" ${AI360_MODELS:- 360GPT} "
102- initializeLlmProviderConfig ai360 ai360 AI360 api.360.cn " 443" " https" " " " PRE" " $AI360_MODELS "
171+ local AI360_MODELS=" ${AI360_MODELS:- 360GPT-* } "
172+ IFS=' |' read -r AI360_TYPE AI360_PATTERN <<< " $(normalizeModelPattern " $AI360_MODELS " )"
173+ initializeLlmProviderConfig ai360 ai360 AI360 api.360.cn " 443" " https" " " " $AI360_TYPE " " $AI360_PATTERN "
103174
104- local BAICHUAN_MODELS=" ${BAICHUAN_MODELS:- Baichuan} "
105- initializeLlmProviderConfig baichuan baichuan BAICHUAN api.baichuan-ai.com " 443" " https" " " " PRE" " $BAICHUAN_MODELS "
175+ local BAICHUAN_MODELS=" ${BAICHUAN_MODELS:- Baichuan* } "
176+ IFS=' |' read -r BAICHUAN_TYPE BAICHUAN_PATTERN <<< " $(normalizeModelPattern " $BAICHUAN_MODELS " )"
177+ initializeLlmProviderConfig baichuan baichuan BAICHUAN api.baichuan-ai.com " 443" " https" " " " $BAICHUAN_TYPE " " $BAICHUAN_PATTERN "
106178
107- local BAIDU_MODELS=" ${BAIDU_MODELS:- ERNIE-} "
108- initializeLlmProviderConfig baidu baidu BAIDU qianfan.baidubce.com " 443" " https" " " " PRE" " $BAIDU_MODELS "
179+ local BAIDU_MODELS=" ${BAIDU_MODELS:- ERNIE-* } "
180+ IFS=' |' read -r BAIDU_TYPE BAIDU_PATTERN <<< " $(normalizeModelPattern " $BAIDU_MODELS " )"
181+ initializeLlmProviderConfig baidu baidu BAIDU qianfan.baidubce.com " 443" " https" " " " $BAIDU_TYPE " " $BAIDU_PATTERN "
109182
110183 if [ -z " $CLAUDE_VERSION " ]; then
111184 CLAUDE_VERSION=" 2023-06-01"
112185 fi
113186 EXTRA_CONFIGS=(
114187 " claudeVersion=\" $CLAUDE_VERSION \" "
115188 )
116- local CLAUDE_MODELS=" ${CLAUDE_MODELS:- claude-} "
117- initializeLlmProviderConfig claude claude CLAUDE api.anthropic.com " 443" " https" " " " PRE" " $CLAUDE_MODELS " " ${EXTRA_CONFIGS[@]} "
189+ local CLAUDE_MODELS=" ${CLAUDE_MODELS:- claude-* } "
190+ IFS=' |' read -r CLAUDE_TYPE CLAUDE_PATTERN <<< " $(normalizeModelPattern " $CLAUDE_MODELS " )"
191+ initializeLlmProviderConfig claude claude CLAUDE api.anthropic.com " 443" " https" " " " $CLAUDE_TYPE " " $CLAUDE_PATTERN " " ${EXTRA_CONFIGS[@]} "
118192
119193 # Cloudflare Workers AI
120194 if [ -n " $CLOUDFLARE_CONFIGURED " ]; then
121195 EXTRA_CONFIGS=()
122196 if [ -n " $CLOUDFLARE_ACCOUNT_ID " ]; then
123197 EXTRA_CONFIGS+=(" accountId=\" $CLOUDFLARE_ACCOUNT_ID \" " )
124198 fi
125- local CLOUDFLARE_MODELS=" ${CLOUDFLARE_MODELS:- .* } "
126- initializeLlmProviderConfig cloudflare cloudflare CLOUDFLARE api.cloudflare.com " 443" " https" " " " REGULAR" " $CLOUDFLARE_MODELS " " ${EXTRA_CONFIGS[@]} "
199+ local CLOUDFLARE_MODELS=" ${CLOUDFLARE_MODELS:-* } "
200+ IFS=' |' read -r CLOUDFLARE_TYPE CLOUDFLARE_PATTERN <<< " $(normalizeModelPattern " $CLOUDFLARE_MODELS " )"
201+ initializeLlmProviderConfig cloudflare cloudflare CLOUDFLARE api.cloudflare.com " 443" " https" " " " $CLOUDFLARE_TYPE " " $CLOUDFLARE_PATTERN " " ${EXTRA_CONFIGS[@]} "
127202 fi
128203
129- local COHERE_MODELS=" ${COHERE_MODELS:- command|command-.* } "
130- initializeLlmProviderConfig cohere cohere COHERE api.cohere.com " 443" " https" " " " REGULAR" " $COHERE_MODELS "
204+ local COHERE_MODELS=" ${COHERE_MODELS:- command* } "
205+ IFS=' |' read -r COHERE_TYPE COHERE_PATTERN <<< " $(normalizeModelPattern " $COHERE_MODELS " )"
206+ initializeLlmProviderConfig cohere cohere COHERE api.cohere.com " 443" " https" " " " $COHERE_TYPE " " $COHERE_PATTERN "
131207
132208 # DeepL - translation service
133209 if [ -n " $DEEPL_CONFIGURED " ]; then
134210 EXTRA_CONFIGS=()
135211 if [ -n " $DEEPL_TARGET_LANG " ]; then
136212 EXTRA_CONFIGS+=(" targetLang=\" $DEEPL_TARGET_LANG \" " )
137213 fi
138- local DEEPL_MODELS=" ${DEEPL_MODELS:- .* } "
139- initializeLlmProviderConfig deepl deepl DEEPL api.deepl.com " 443" " https" " " " REGULAR" " $DEEPL_MODELS " " ${EXTRA_CONFIGS[@]} "
214+ local DEEPL_MODELS=" ${DEEPL_MODELS:-* } "
215+ IFS=' |' read -r DEEPL_TYPE DEEPL_PATTERN <<< " $(normalizeModelPattern " $DEEPL_MODELS " )"
216+ initializeLlmProviderConfig deepl deepl DEEPL api.deepl.com " 443" " https" " " " $DEEPL_TYPE " " $DEEPL_PATTERN " " ${EXTRA_CONFIGS[@]} "
140217 fi
141218
142219 # Dify - AI workflow platform
@@ -157,42 +234,50 @@ function initializeLlmProviderConfigs() {
157234 if [ -n " $DIFY_OUTPUT_VARIABLE " ]; then
158235 EXTRA_CONFIGS+=(" outputVariable=\" $DIFY_OUTPUT_VARIABLE \" " )
159236 fi
160- local DIFY_MODELS=" ${DIFY_MODELS:- .* } "
161- initializeLlmProviderConfig dify dify DIFY " $DIFY_DOMAIN " " 443" " https" " " " REGULAR" " $DIFY_MODELS " " ${EXTRA_CONFIGS[@]} "
237+ local DIFY_MODELS=" ${DIFY_MODELS:-* } "
238+ IFS=' |' read -r DIFY_TYPE DIFY_PATTERN <<< " $(normalizeModelPattern " $DIFY_MODELS " )"
239+ initializeLlmProviderConfig dify dify DIFY " $DIFY_DOMAIN " " 443" " https" " " " $DIFY_TYPE " " $DIFY_PATTERN " " ${EXTRA_CONFIGS[@]} "
162240 fi
163241
164- local DOUBAO_MODELS=" ${DOUBAO_MODELS:- doubao-} "
165- initializeLlmProviderConfig doubao doubao DOUBAO ark.cn-beijing.volces.com " 443" " https" " " " PRE" " $DOUBAO_MODELS "
242+ local DOUBAO_MODELS=" ${DOUBAO_MODELS:- doubao-* } "
243+ IFS=' |' read -r DOUBAO_TYPE DOUBAO_PATTERN <<< " $(normalizeModelPattern " $DOUBAO_MODELS " )"
244+ initializeLlmProviderConfig doubao doubao DOUBAO ark.cn-beijing.volces.com " 443" " https" " " " $DOUBAO_TYPE " " $DOUBAO_PATTERN "
166245
167246 # Fireworks AI - fast inference
168247 if [ -n " $FIREWORKS_API_KEY " ]; then
169- local FIREWORKS_MODELS=" ${FIREWORKS_MODELS:- .* } "
170- initializeLlmProviderConfig fireworks fireworks FIREWORKS api.fireworks.ai " 443" " https" " " " REGULAR" " $FIREWORKS_MODELS "
248+ local FIREWORKS_MODELS=" ${FIREWORKS_MODELS:-* } "
249+ IFS=' |' read -r FIREWORKS_TYPE FIREWORKS_PATTERN <<< " $(normalizeModelPattern " $FIREWORKS_MODELS " )"
250+ initializeLlmProviderConfig fireworks fireworks FIREWORKS api.fireworks.ai " 443" " https" " " " $FIREWORKS_TYPE " " $FIREWORKS_PATTERN "
171251 fi
172252
173253 # GitHub Models
174254 if [ -n " $GITHUB_API_KEY " ]; then
175- local GITHUB_MODELS=" ${GITHUB_MODELS:- .* } "
176- initializeLlmProviderConfig github github GITHUB models.inference.ai.azure.com " 443" " https" " " " REGULAR" " $GITHUB_MODELS "
255+ local GITHUB_MODELS=" ${GITHUB_MODELS:-* } "
256+ IFS=' |' read -r GITHUB_TYPE GITHUB_PATTERN <<< " $(normalizeModelPattern " $GITHUB_MODELS " )"
257+ initializeLlmProviderConfig github github GITHUB models.inference.ai.azure.com " 443" " https" " " " $GITHUB_TYPE " " $GITHUB_PATTERN "
177258 fi
178259
179- local GEMINI_MODELS=" ${GEMINI_MODELS:- gemini-} "
180- initializeLlmProviderConfig gemini gemini GEMINI generativelanguage.googleapis.com " 443" " https" " " " PRE" " $GEMINI_MODELS "
260+ local GEMINI_MODELS=" ${GEMINI_MODELS:- gemini-* } "
261+ IFS=' |' read -r GEMINI_TYPE GEMINI_PATTERN <<< " $(normalizeModelPattern " $GEMINI_MODELS " )"
262+ initializeLlmProviderConfig gemini gemini GEMINI generativelanguage.googleapis.com " 443" " https" " " " $GEMINI_TYPE " " $GEMINI_PATTERN "
181263
182264 # Grok - xAI's model
183265 if [ -n " $GROK_API_KEY " ]; then
184- local GROK_MODELS=" ${GROK_MODELS:- grok-.* } "
185- initializeLlmProviderConfig grok grok GROK api.x.ai " 443" " https" " " " REGULAR" " $GROK_MODELS "
266+ local GROK_MODELS=" ${GROK_MODELS:- grok-* } "
267+ IFS=' |' read -r GROK_TYPE GROK_PATTERN <<< " $(normalizeModelPattern " $GROK_MODELS " )"
268+ initializeLlmProviderConfig grok grok GROK api.x.ai " 443" " https" " " " $GROK_TYPE " " $GROK_PATTERN "
186269 fi
187270
188271 # Groq - fast inference
189272 if [ -n " $GROQ_API_KEY " ]; then
190- local GROQ_MODELS=" ${GROQ_MODELS:- .* } "
191- initializeLlmProviderConfig groq groq GROQ api.groq.com " 443" " https" " " " REGULAR" " $GROQ_MODELS "
273+ local GROQ_MODELS=" ${GROQ_MODELS:-* } "
274+ IFS=' |' read -r GROQ_TYPE GROQ_PATTERN <<< " $(normalizeModelPattern " $GROQ_MODELS " )"
275+ initializeLlmProviderConfig groq groq GROQ api.groq.com " 443" " https" " " " $GROQ_TYPE " " $GROQ_PATTERN "
192276 fi
193277
194- local MISTRAL_MODELS=" ${MISTRAL_MODELS:- open-mistral-.* |mistral-.* } "
195- initializeLlmProviderConfig mistral mistral MISTRAL api.mistral.ai " 443" " https" " " " REGULAR" " $MISTRAL_MODELS "
278+ local MISTRAL_MODELS=" ${MISTRAL_MODELS:- mistral-* ,open-mistral-* } "
279+ IFS=' |' read -r MISTRAL_TYPE MISTRAL_PATTERN <<< " $(normalizeModelPattern " $MISTRAL_MODELS " )"
280+ initializeLlmProviderConfig mistral mistral MISTRAL api.mistral.ai " 443" " https" " " " $MISTRAL_TYPE " " $MISTRAL_PATTERN "
196281
197282 if [ -z " $OLLAMA_SERVER_HOST " ]; then
198283 OLLAMA_SERVER_HOST=" YOUR_OLLAMA_SERVER_HOST"
@@ -202,17 +287,20 @@ function initializeLlmProviderConfigs() {
202287 " ollamaServerHost=\" $OLLAMA_SERVER_HOST \" "
203288 " ollamaServerPort=$OLLAMA_SERVER_PORT "
204289 )
205- local OLLAMA_MODELS=" ${OLLAMA_MODELS:- codellama.* |llama.* } "
206- initializeLlmProviderConfig ollama ollama OLLAMA " $OLLAMA_SERVER_HOST " " $OLLAMA_SERVER_PORT " " http" " " " REGULAR" " $OLLAMA_MODELS " " ${EXTRA_CONFIGS[@]} "
290+ local OLLAMA_MODELS=" ${OLLAMA_MODELS:- llama* ,codellama* } "
291+ IFS=' |' read -r OLLAMA_TYPE OLLAMA_PATTERN <<< " $(normalizeModelPattern " $OLLAMA_MODELS " )"
292+ initializeLlmProviderConfig ollama ollama OLLAMA " $OLLAMA_SERVER_HOST " " $OLLAMA_SERVER_PORT " " http" " " " $OLLAMA_TYPE " " $OLLAMA_PATTERN " " ${EXTRA_CONFIGS[@]} "
207293
208294 # iFlyTek Spark
209295 if [ -n " $SPARK_CONFIGURED " ]; then
210- local SPARK_MODELS=" ${SPARK_MODELS:- .* } "
211- initializeLlmProviderConfig spark spark SPARK spark-api-open.xf-yun.com " 443" " https" " " " REGULAR" " $SPARK_MODELS "
296+ local SPARK_MODELS=" ${SPARK_MODELS:-* } "
297+ IFS=' |' read -r SPARK_TYPE SPARK_PATTERN <<< " $(normalizeModelPattern " $SPARK_MODELS " )"
298+ initializeLlmProviderConfig spark spark SPARK spark-api-open.xf-yun.com " 443" " https" " " " $SPARK_TYPE " " $SPARK_PATTERN "
212299 fi
213300
214- local STEPFUN_MODELS=" ${STEPFUN_MODELS:- step-} "
215- initializeLlmProviderConfig stepfun stepfun STEPFUN api.stepfun.com " 443" " https" " " " PRE" " $STEPFUN_MODELS "
301+ local STEPFUN_MODELS=" ${STEPFUN_MODELS:- step-* } "
302+ IFS=' |' read -r STEPFUN_TYPE STEPFUN_PATTERN <<< " $(normalizeModelPattern " $STEPFUN_MODELS " )"
303+ initializeLlmProviderConfig stepfun stepfun STEPFUN api.stepfun.com " 443" " https" " " " $STEPFUN_TYPE " " $STEPFUN_PATTERN "
216304
217305 # Tencent Hunyuan
218306 if [ -n " $HUNYUAN_CONFIGURED " ]; then
@@ -223,14 +311,16 @@ function initializeLlmProviderConfigs() {
223311 if [ -n " $HUNYUAN_AUTH_KEY " ]; then
224312 EXTRA_CONFIGS+=(" authKey=\" $HUNYUAN_AUTH_KEY \" " )
225313 fi
226- local HUNYUAN_MODELS=" ${HUNYUAN_MODELS:- hunyuan-.* } "
227- initializeLlmProviderConfig hunyuan hunyuan HUNYUAN hunyuan.tencentcloudapi.com " 443" " https" " " " REGULAR" " $HUNYUAN_MODELS " " ${EXTRA_CONFIGS[@]} "
314+ local HUNYUAN_MODELS=" ${HUNYUAN_MODELS:- hunyuan-* } "
315+ IFS=' |' read -r HUNYUAN_TYPE HUNYUAN_PATTERN <<< " $(normalizeModelPattern " $HUNYUAN_MODELS " )"
316+ initializeLlmProviderConfig hunyuan hunyuan HUNYUAN hunyuan.tencentcloudapi.com " 443" " https" " " " $HUNYUAN_TYPE " " $HUNYUAN_PATTERN " " ${EXTRA_CONFIGS[@]} "
228317 fi
229318
230319 # Together AI - open model hosting
231320 if [ -n " $TOGETHERAI_API_KEY " ]; then
232- local TOGETHERAI_MODELS=" ${TOGETHERAI_MODELS:- .* } "
233- initializeLlmProviderConfig togetherai togetherai TOGETHERAI api.together.xyz " 443" " https" " " " REGULAR" " $TOGETHERAI_MODELS "
321+ local TOGETHERAI_MODELS=" ${TOGETHERAI_MODELS:-* } "
322+ IFS=' |' read -r TOGETHERAI_TYPE TOGETHERAI_PATTERN <<< " $(normalizeModelPattern " $TOGETHERAI_MODELS " )"
323+ initializeLlmProviderConfig togetherai togetherai TOGETHERAI api.together.xyz " 443" " https" " " " $TOGETHERAI_TYPE " " $TOGETHERAI_PATTERN "
234324 fi
235325}
236326
0 commit comments