Skip to content

Commit dbd3026

Browse files
committed
feat: complete AI provider configurations in ai-gateway template
This commit completes the AI Gateway template configuration by adding initialization for all new providers introduced in PR #219: **New providers added:** - AWS Bedrock (with region and auth configuration) - Google Vertex AI (with project/region/service account) - OpenRouter (multi-provider router) - Cloudflare Workers AI (with account ID) - DeepL (translation service with target language) - Dify (AI workflow platform with bot type and variables) - iFlyTek Spark - Tencent Hunyuan (with auth ID/key) - Fireworks AI - GitHub Models - Grok (xAI) - Groq - Together AI **Key improvements:** 1. Added conditional initialization for all new providers based on configuration markers set in get-ai-gateway.sh 2. Implemented support for custom model patterns via environment variables (e.g., BEDROCK_MODELS, VERTEX_MODELS, etc.) for providers with non-deterministic model sets 3. Properly configured extra configs (regions, auth keys, account IDs) for providers requiring additional parameters 4. Maintained alphabetical ordering for better readability 5. Added comprehensive comments for each provider section **Environment variable pattern:** For providers with uncertain model sets, users can now customize the model matching pattern, e.g.: - BEDROCK_MODELS="claude-.*" for AWS Bedrock Claude models - VERTEX_MODELS="gemini-.*" for Vertex AI Gemini models - Default: ".*" (matches all models) Fixes the issue where PR #219 added provider configurations in get-ai-gateway.sh but the actual template generation in ai-gateway.sh was missing the corresponding initialization.
1 parent 9f1b76c commit dbd3026

1 file changed

Lines changed: 160 additions & 24 deletions

File tree

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

Lines changed: 160 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,18 @@ declare -a GENERATED_INGRESSES
1414
function initializeLlmProviderConfigs() {
1515
local EXTRA_CONFIGS=()
1616

17+
# Top commonly used providers (matching get-ai-gateway.sh order)
1718
initializeLlmProviderConfig aliyun qwen DASHSCOPE dashscope.aliyuncs.com "443" "https" "" "PRE" 'qwen'
18-
initializeLlmProviderConfig moonshot moonshot MOONSHOT api.moonshot.cn "443" "https" "" "REGULAR" 'moonshot-.*|kimi-.*'
19-
if [ -z "$AZURE_API_KEY" ]; then
20-
initializeLlmProviderConfig openai openai OPENAI api.openai.com "443" "https" "" "REGULAR" 'gpt-.*|o1-.*|o3-.*'
21-
fi
22-
initializeLlmProviderConfig ai360 ai360 AI360 api.360.cn "443" "https" "" "PRE" "360GPT"
23-
# initializeLlmProviderConfig github github GITHUB models.inference.ai.azure.com "443" "https" "" "PRE" ""
24-
# initializeLlmProviderConfig groq groq GROQ api.groq.com "443" "https" "" "PRE" ""
25-
initializeLlmProviderConfig baichuan baichuan BAICHUAN api.baichuan-ai.com "443" "https" "" "PRE" "Baichuan"
26-
initializeLlmProviderConfig yi yi YI api.lingyiwanwu.com "443" "https" "" "PRE" 'yi-'
2719
initializeLlmProviderConfig deepseek deepseek DEEPSEEK api.deepseek.com "443" "https" "" "PRE" "deepseek"
20+
initializeLlmProviderConfig moonshot moonshot MOONSHOT api.moonshot.cn "443" "https" "" "REGULAR" 'moonshot-.*|kimi-.*'
2821
initializeLlmProviderConfig zhipuai zhipuai ZHIPUAI open.bigmodel.cn "443" "https" "" "PRE" "GLM-"
29-
initializeLlmProviderConfig baidu baidu BAIDU qianfan.baidubce.com "443" "https" "" "PRE" "ERNIE-"
30-
# initializeLlmProviderConfig hunyuan hunyuan HUNYUAN hunyuan.tencentcloudapi.com "443" "https" "" "PRE" "hunyuan-" "${EXTRA_CONFIGS[@]}"
31-
initializeLlmProviderConfig stepfun stepfun STEPFUN api.stepfun.com "443" "https" "" "PRE" "step-"
32-
# initializeLlmProviderConfig cloudflare cloudflare CLOUDFLARE api.cloudflare.com "443" "https" "" "PRE" "" "${EXTRA_CONFIGS[@]}"
33-
# initializeLlmProviderConfig spark spark SPARK spark-api-open.xf-yun.com "443" "https" "" "PRE" "" "${EXTRA_CONFIGS[@]}"
34-
initializeLlmProviderConfig gemini gemini GEMINI generativelanguage.googleapis.com "443" "https" "" "PRE" "gemini-"
35-
# initializeLlmProviderConfig deepl deepl DEEPL "443" "https" "" "PRE" "" "${EXTRA_CONFIGS[@]}"
36-
initializeLlmProviderConfig mistral mistral MISTRAL api.mistral.ai "443" "https" "" "REGULAR" 'open-mistral-.*|mistral-.*'
37-
initializeLlmProviderConfig cohere cohere COHERE api.cohere.com "443" "https" "" "REGULAR" 'command|command-.*'
38-
initializeLlmProviderConfig doubao doubao DOUBAO ark.cn-beijing.volces.com "443" "https" "" "PRE" "doubao-"
39-
# initializeLlmProviderConfig coze coze COZE api.coze.cn "443" "https" "" "PRE" ""
22+
23+
EXTRA_CONFIGS=(
24+
"minimaxGroupId=\"$MINIMAX_GROUP_ID\""
25+
)
26+
initializeLlmProviderConfig minimax minimax MINIMAX api.minimax.chat "443" "https" "" "PRE" "abab" "${EXTRA_CONFIGS[@]}"
4027

28+
# Azure OpenAI
4129
if [ -z "$OPENAI_API_KEY" ]; then
4230
if [ -z "$AZURE_SERVICE_URL" ]; then
4331
AZURE_SERVICE_URL="https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2024-06-01"
@@ -50,6 +38,58 @@ function initializeLlmProviderConfigs() {
5038
initializeLlmProviderConfig azure azure AZURE "$AZURE_SERVICE_DOMAIN" "443" "https" "" "REGULAR" 'gpt-.*|o1-.*|o3-.*' "${EXTRA_CONFIGS[@]}"
5139
fi
5240

41+
# AWS Bedrock - requires region configuration
42+
if [ -n "$BEDROCK_CONFIGURED" ]; then
43+
EXTRA_CONFIGS=()
44+
if [ -n "$BEDROCK_REGION" ]; then
45+
EXTRA_CONFIGS+=("region=\"$BEDROCK_REGION\"")
46+
fi
47+
if [ -n "$BEDROCK_ACCESS_KEY" ] && [ -n "$BEDROCK_SECRET_KEY" ]; then
48+
EXTRA_CONFIGS+=("accessKeyId=\"$BEDROCK_ACCESS_KEY\"")
49+
EXTRA_CONFIGS+=("secretAccessKey=\"$BEDROCK_SECRET_KEY\"")
50+
fi
51+
# Support custom model patterns via environment variable
52+
local BEDROCK_MODELS="${BEDROCK_MODELS:-.*}"
53+
initializeLlmProviderConfig bedrock bedrock BEDROCK bedrock-runtime.${BEDROCK_REGION:-us-east-1}.amazonaws.com "443" "https" "" "REGULAR" "$BEDROCK_MODELS" "${EXTRA_CONFIGS[@]}"
54+
fi
55+
56+
# Google Vertex AI - requires project and region configuration
57+
if [ -n "$VERTEX_CONFIGURED" ]; then
58+
EXTRA_CONFIGS=()
59+
if [ -n "$VERTEX_PROJECT_ID" ]; then
60+
EXTRA_CONFIGS+=("gcpProject=\"$VERTEX_PROJECT_ID\"")
61+
fi
62+
if [ -n "$VERTEX_REGION" ]; then
63+
EXTRA_CONFIGS+=("gcpRegion=\"$VERTEX_REGION\"")
64+
fi
65+
if [ -n "$VERTEX_AUTH_KEY" ]; then
66+
EXTRA_CONFIGS+=("serviceAccount=\"$VERTEX_AUTH_KEY\"")
67+
fi
68+
if [ -n "$VERTEX_AUTH_SERVICE_NAME" ]; then
69+
EXTRA_CONFIGS+=("serviceAccountName=\"$VERTEX_AUTH_SERVICE_NAME\"")
70+
fi
71+
# Support custom model patterns via environment variable
72+
local VERTEX_MODELS="${VERTEX_MODELS:-gemini-.*}"
73+
initializeLlmProviderConfig vertex vertex VERTEX ${VERTEX_REGION:-us-central1}-aiplatform.googleapis.com "443" "https" "" "REGULAR" "$VERTEX_MODELS" "${EXTRA_CONFIGS[@]}"
74+
fi
75+
76+
# OpenAI (if Azure is not configured)
77+
if [ -z "$AZURE_API_KEY" ]; then
78+
initializeLlmProviderConfig openai openai OPENAI api.openai.com "443" "https" "" "REGULAR" 'gpt-.*|o1-.*|o3-.*'
79+
fi
80+
81+
# OpenRouter - multi-provider router, supports custom models
82+
if [ -n "$OPENROUTER_API_KEY" ]; then
83+
local OPENROUTER_MODELS="${OPENROUTER_MODELS:-.*}"
84+
initializeLlmProviderConfig openrouter openrouter OPENROUTER openrouter.ai "443" "https" "" "REGULAR" "$OPENROUTER_MODELS"
85+
fi
86+
87+
# Other providers (alphabetically ordered)
88+
initializeLlmProviderConfig yi yi YI api.lingyiwanwu.com "443" "https" "" "PRE" 'yi-'
89+
initializeLlmProviderConfig ai360 ai360 AI360 api.360.cn "443" "https" "" "PRE" "360GPT"
90+
initializeLlmProviderConfig baichuan baichuan BAICHUAN api.baichuan-ai.com "443" "https" "" "PRE" "Baichuan"
91+
initializeLlmProviderConfig baidu baidu BAIDU qianfan.baidubce.com "443" "https" "" "PRE" "ERNIE-"
92+
5393
if [ -z "$CLAUDE_VERSION" ]; then
5494
CLAUDE_VERSION="2023-06-01"
5595
fi
@@ -58,6 +98,80 @@ function initializeLlmProviderConfigs() {
5898
)
5999
initializeLlmProviderConfig claude claude CLAUDE api.anthropic.com "443" "https" "" "PRE" "claude-" "${EXTRA_CONFIGS[@]}"
60100

101+
# Cloudflare Workers AI
102+
if [ -n "$CLOUDFLARE_CONFIGURED" ]; then
103+
EXTRA_CONFIGS=()
104+
if [ -n "$CLOUDFLARE_ACCOUNT_ID" ]; then
105+
EXTRA_CONFIGS+=("accountId=\"$CLOUDFLARE_ACCOUNT_ID\"")
106+
fi
107+
local CLOUDFLARE_MODELS="${CLOUDFLARE_MODELS:-.*}"
108+
initializeLlmProviderConfig cloudflare cloudflare CLOUDFLARE api.cloudflare.com "443" "https" "" "REGULAR" "$CLOUDFLARE_MODELS" "${EXTRA_CONFIGS[@]}"
109+
fi
110+
111+
initializeLlmProviderConfig cohere cohere COHERE api.cohere.com "443" "https" "" "REGULAR" 'command|command-.*'
112+
113+
# DeepL - translation service
114+
if [ -n "$DEEPL_CONFIGURED" ]; then
115+
EXTRA_CONFIGS=()
116+
if [ -n "$DEEPL_TARGET_LANG" ]; then
117+
EXTRA_CONFIGS+=("targetLang=\"$DEEPL_TARGET_LANG\"")
118+
fi
119+
local DEEPL_MODELS="${DEEPL_MODELS:-.*}"
120+
initializeLlmProviderConfig deepl deepl DEEPL api.deepl.com "443" "https" "" "REGULAR" "$DEEPL_MODELS" "${EXTRA_CONFIGS[@]}"
121+
fi
122+
123+
# Dify - AI workflow platform
124+
if [ -n "$DIFY_API_KEY" ]; then
125+
EXTRA_CONFIGS=()
126+
if [ -n "$DIFY_API_URL" ]; then
127+
extractHostFromUrl "$DIFY_API_URL"
128+
local DIFY_DOMAIN="$HOST"
129+
else
130+
local DIFY_DOMAIN="api.dify.ai"
131+
fi
132+
if [ -n "$DIFY_BOT_TYPE" ]; then
133+
EXTRA_CONFIGS+=("botType=\"$DIFY_BOT_TYPE\"")
134+
fi
135+
if [ -n "$DIFY_INPUT_VARIABLE" ]; then
136+
EXTRA_CONFIGS+=("inputVariable=\"$DIFY_INPUT_VARIABLE\"")
137+
fi
138+
if [ -n "$DIFY_OUTPUT_VARIABLE" ]; then
139+
EXTRA_CONFIGS+=("outputVariable=\"$DIFY_OUTPUT_VARIABLE\"")
140+
fi
141+
local DIFY_MODELS="${DIFY_MODELS:-.*}"
142+
initializeLlmProviderConfig dify dify DIFY "$DIFY_DOMAIN" "443" "https" "" "REGULAR" "$DIFY_MODELS" "${EXTRA_CONFIGS[@]}"
143+
fi
144+
145+
initializeLlmProviderConfig doubao doubao DOUBAO ark.cn-beijing.volces.com "443" "https" "" "PRE" "doubao-"
146+
147+
# Fireworks AI - fast inference
148+
if [ -n "$FIREWORKS_API_KEY" ]; then
149+
local FIREWORKS_MODELS="${FIREWORKS_MODELS:-.*}"
150+
initializeLlmProviderConfig fireworks fireworks FIREWORKS api.fireworks.ai "443" "https" "" "REGULAR" "$FIREWORKS_MODELS"
151+
fi
152+
153+
# GitHub Models
154+
if [ -n "$GITHUB_API_KEY" ]; then
155+
local GITHUB_MODELS="${GITHUB_MODELS:-.*}"
156+
initializeLlmProviderConfig github github GITHUB models.inference.ai.azure.com "443" "https" "" "REGULAR" "$GITHUB_MODELS"
157+
fi
158+
159+
initializeLlmProviderConfig gemini gemini GEMINI generativelanguage.googleapis.com "443" "https" "" "PRE" "gemini-"
160+
161+
# Grok - xAI's model
162+
if [ -n "$GROK_API_KEY" ]; then
163+
local GROK_MODELS="${GROK_MODELS:-grok-.*}"
164+
initializeLlmProviderConfig grok grok GROK api.x.ai "443" "https" "" "REGULAR" "$GROK_MODELS"
165+
fi
166+
167+
# Groq - fast inference
168+
if [ -n "$GROQ_API_KEY" ]; then
169+
local GROQ_MODELS="${GROQ_MODELS:-.*}"
170+
initializeLlmProviderConfig groq groq GROQ api.groq.com "443" "https" "" "REGULAR" "$GROQ_MODELS"
171+
fi
172+
173+
initializeLlmProviderConfig mistral mistral MISTRAL api.mistral.ai "443" "https" "" "REGULAR" 'open-mistral-.*|mistral-.*'
174+
61175
if [ -z "$OLLAMA_SERVER_HOST" ]; then
62176
OLLAMA_SERVER_HOST="YOUR_OLLAMA_SERVER_HOST"
63177
fi
@@ -68,10 +182,32 @@ function initializeLlmProviderConfigs() {
68182
)
69183
initializeLlmProviderConfig ollama ollama OLLAMA "$OLLAMA_SERVER_HOST" "$OLLAMA_SERVER_PORT" "http" "" "REGULAR" 'codellama.*|llama.*' "${EXTRA_CONFIGS[@]}"
70184

71-
EXTRA_CONFIGS=(
72-
"minimaxGroupId=\"$MINIMAX_GROUP_ID\""
73-
)
74-
initializeLlmProviderConfig minimax minimax MINIMAX api.minimax.chat "443" "https" "" "PRE" "abab" "${EXTRA_CONFIGS[@]}"
185+
# iFlyTek Spark
186+
if [ -n "$SPARK_CONFIGURED" ]; then
187+
local SPARK_MODELS="${SPARK_MODELS:-.*}"
188+
initializeLlmProviderConfig spark spark SPARK spark-api-open.xf-yun.com "443" "https" "" "REGULAR" "$SPARK_MODELS"
189+
fi
190+
191+
initializeLlmProviderConfig stepfun stepfun STEPFUN api.stepfun.com "443" "https" "" "PRE" "step-"
192+
193+
# Tencent Hunyuan
194+
if [ -n "$HUNYUAN_CONFIGURED" ]; then
195+
EXTRA_CONFIGS=()
196+
if [ -n "$HUNYUAN_AUTH_ID" ]; then
197+
EXTRA_CONFIGS+=("authId=\"$HUNYUAN_AUTH_ID\"")
198+
fi
199+
if [ -n "$HUNYUAN_AUTH_KEY" ]; then
200+
EXTRA_CONFIGS+=("authKey=\"$HUNYUAN_AUTH_KEY\"")
201+
fi
202+
local HUNYUAN_MODELS="${HUNYUAN_MODELS:-hunyuan-.*}"
203+
initializeLlmProviderConfig hunyuan hunyuan HUNYUAN hunyuan.tencentcloudapi.com "443" "https" "" "REGULAR" "$HUNYUAN_MODELS" "${EXTRA_CONFIGS[@]}"
204+
fi
205+
206+
# Together AI - open model hosting
207+
if [ -n "$TOGETHERAI_API_KEY" ]; then
208+
local TOGETHERAI_MODELS="${TOGETHERAI_MODELS:-.*}"
209+
initializeLlmProviderConfig togetherai togetherai TOGETHERAI api.together.xyz "443" "https" "" "REGULAR" "$TOGETHERAI_MODELS"
210+
fi
75211
}
76212

77213
function initializeLlmProviderConfig() {

0 commit comments

Comments
 (0)