Skip to content

Commit 4917a6c

Browse files
committed
feat: sync all AI providers from ai-proxy plugin
- Add all providers supported by higress ai-proxy plugin - Reorder providers with commonly used ones at top: 1. Qwen (Dashscope) 2. DeepSeek 3. Moonshot (Kimi) 4. Zhipu AI 5. Minimax 6. Azure OpenAI 7. AWS Bedrock 8. Google Vertex AI 9. OpenAI 10. OpenRouter - Add new providers: - AWS Bedrock (with AK/SK and Bearer Token auth) - Google Vertex AI (with Service Account and Express Mode) - OpenRouter - Cloudflare Workers AI - DeepL (translation) - Dify (workflow platform) - iFlyTek Spark - Tencent Hunyuan - Together AI - Fireworks AI - Github Models - Grok - Groq - Add custom configuration functions for complex providers
1 parent 1066915 commit 4917a6c

1 file changed

Lines changed: 115 additions & 19 deletions

File tree

all-in-one/get-ai-gateway.sh

Lines changed: 115 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -146,32 +146,41 @@ runConfigWizard() {
146146

147147
echo
148148

149+
# Provider order: Top 10 most commonly used providers first, then others alphabetically
149150
local providers=(
150-
"OpenAI|OPENAI"
151-
"Aliyun Dashscope|DASHSCOPE"
152-
"Moonshot|MOONSHOT"
151+
# Top 10 commonly used providers (user-specified order)
152+
"Aliyun Dashscope (Qwen)|DASHSCOPE"
153+
"DeepSeek|DEEPSEEK"
154+
"Moonshot (Kimi)|MOONSHOT"
155+
"Zhipu AI|ZHIPUAI"
156+
"Minimax|MINIMAX|configureMinimaxProvider"
153157
"Azure OpenAI|AZURE|configureAzureProvider"
158+
"AWS Bedrock|BEDROCK|configureBedrockProvider"
159+
"Google Vertex AI|VERTEX|configureVertexProvider"
160+
"OpenAI|OPENAI"
161+
"OpenRouter|OPENROUTER"
162+
# Other providers (alphabetically ordered)
163+
"01.AI (Yi)|YI"
154164
"360 Zhinao|AI360"
155-
# "Github Models|GITHUB"
156-
# "Groq|GROQ"
157165
"Baichuan AI|BAICHUAN"
158-
"01.AI|YI"
159-
"DeepSeek|DEEPSEEK"
160-
"Zhipu AI|ZHIPUAI"
161-
"Ollama|OLLAMA|configureOllamaProvider"
162-
"Claude|CLAUDE|configureClaudeProvider"
163166
"Baidu AI Cloud|BAIDU"
164-
# "Tencent Hunyuan|HUNYUAN"
165-
"Stepfun|STEPFUN"
166-
"Minimax|MINIMAX|configureMinimaxProvider"
167-
# "Cloudflare Workers AI|CLOUDFLARE"
168-
# "iFlyTek Spark|SPARK"
169-
"Google Gemini|GEMINI"
170-
# "DeepL|DEEPL"
171-
"Mistral AI|MISTRAL"
167+
"Claude|CLAUDE|configureClaudeProvider"
168+
"Cloudflare Workers AI|CLOUDFLARE|configureCloudflareProvider"
172169
"Cohere|COHERE"
170+
"DeepL|DEEPL|configureDeepLProvider"
171+
"Dify|DIFY|configureDifyProvider"
173172
"Doubao|DOUBAO"
174-
# "Coze|COZE"
173+
"Fireworks AI|FIREWORKS"
174+
"Github Models|GITHUB"
175+
"Google Gemini|GEMINI"
176+
"Grok|GROK"
177+
"Groq|GROQ"
178+
"Mistral AI|MISTRAL"
179+
"Ollama|OLLAMA|configureOllamaProvider"
180+
"iFlyTek Spark|SPARK|configureSparkProvider"
181+
"Stepfun|STEPFUN"
182+
"Tencent Hunyuan|HUNYUAN|configureHunyuanProvider"
183+
"Together AI|TOGETHERAI"
175184
)
176185

177186
local selectedIndex=''
@@ -264,6 +273,93 @@ configureMinimaxProvider() {
264273
LLM_ENVS+=("MINIMAX_API_KEY" "MINIMAX_GROUP_ID")
265274
}
266275

276+
configureBedrockProvider() {
277+
echo "AWS Bedrock supports two authentication methods:"
278+
echo " 1. AWS Signature V4 (Access Key + Secret Key)"
279+
echo " 2. Bearer Token (API Token)"
280+
read -r -u 3 -p "→ Choose authentication method (1 or 2, default: 1): " BEDROCK_AUTH_METHOD
281+
if [ "$BEDROCK_AUTH_METHOD" == "2" ]; then
282+
read -r -u 3 -p "→ Enter AWS Bearer Token: " BEDROCK_API_KEY
283+
LLM_ENVS+=("BEDROCK_API_KEY")
284+
else
285+
read -r -u 3 -p "→ Enter AWS Access Key: " BEDROCK_ACCESS_KEY
286+
read -r -u 3 -p "→ Enter AWS Secret Key: " BEDROCK_SECRET_KEY
287+
LLM_ENVS+=("BEDROCK_ACCESS_KEY" "BEDROCK_SECRET_KEY")
288+
fi
289+
read -r -u 3 -p "→ Enter AWS Region (e.g., us-east-1): " BEDROCK_REGION
290+
if [ -n "$BEDROCK_REGION" ]; then
291+
BEDROCK_CONFIGURED="placeholder"
292+
fi
293+
LLM_ENVS+=("BEDROCK_REGION")
294+
}
295+
296+
configureVertexProvider() {
297+
echo "Google Vertex AI supports two authentication modes:"
298+
echo " 1. Standard Mode (Service Account JSON Key)"
299+
echo " 2. Express Mode (API Key only)"
300+
read -r -u 3 -p "→ Choose authentication mode (1 or 2, default: 1): " VERTEX_AUTH_MODE
301+
if [ "$VERTEX_AUTH_MODE" == "2" ]; then
302+
read -r -u 3 -p "→ Enter Vertex AI API Key: " VERTEX_API_KEY
303+
LLM_ENVS+=("VERTEX_API_KEY")
304+
else
305+
echo "→ Enter Service Account JSON Key (paste the entire JSON content, then press Enter):"
306+
read -r -u 3 VERTEX_AUTH_KEY
307+
read -r -u 3 -p "→ Enter Vertex AI Auth Service Name: " VERTEX_AUTH_SERVICE_NAME
308+
LLM_ENVS+=("VERTEX_AUTH_KEY" "VERTEX_AUTH_SERVICE_NAME")
309+
fi
310+
read -r -u 3 -p "→ Enter Google Cloud Region (e.g., us-central1): " VERTEX_REGION
311+
read -r -u 3 -p "→ Enter Google Cloud Project ID: " VERTEX_PROJECT_ID
312+
if [ -n "$VERTEX_REGION" ] && [ -n "$VERTEX_PROJECT_ID" ]; then
313+
VERTEX_CONFIGURED="placeholder"
314+
fi
315+
LLM_ENVS+=("VERTEX_REGION" "VERTEX_PROJECT_ID")
316+
}
317+
318+
configureCloudflareProvider() {
319+
read -r -u 3 -p "→ Enter API Token for Cloudflare Workers AI: " CLOUDFLARE_API_KEY
320+
read -r -u 3 -p "→ Enter Cloudflare Account ID: " CLOUDFLARE_ACCOUNT_ID
321+
LLM_ENVS+=("CLOUDFLARE_API_KEY" "CLOUDFLARE_ACCOUNT_ID")
322+
}
323+
324+
configureDeepLProvider() {
325+
read -r -u 3 -p "→ Enter API Key for DeepL: " DEEPL_API_KEY
326+
read -r -u 3 -p "→ Enter target language for DeepL (e.g., EN, ZH, JA): " DEEPL_TARGET_LANG
327+
LLM_ENVS+=("DEEPL_API_KEY" "DEEPL_TARGET_LANG")
328+
}
329+
330+
configureDifyProvider() {
331+
read -r -u 3 -p "→ Enter API Key for Dify: " DIFY_API_KEY
332+
read -r -u 3 -p "→ Enter Dify API URL (leave empty for cloud service): " DIFY_API_URL
333+
echo "Dify application types: Chat, Completion, Agent, Workflow"
334+
read -r -u 3 -p "→ Enter Dify bot type (default: Chat): " DIFY_BOT_TYPE
335+
if [ -z "$DIFY_BOT_TYPE" ]; then
336+
DIFY_BOT_TYPE="Chat"
337+
fi
338+
LLM_ENVS+=("DIFY_API_KEY" "DIFY_API_URL" "DIFY_BOT_TYPE")
339+
if [ "$DIFY_BOT_TYPE" == "Workflow" ]; then
340+
read -r -u 3 -p "→ Enter Dify input variable name: " DIFY_INPUT_VARIABLE
341+
read -r -u 3 -p "→ Enter Dify output variable name: " DIFY_OUTPUT_VARIABLE
342+
LLM_ENVS+=("DIFY_INPUT_VARIABLE" "DIFY_OUTPUT_VARIABLE")
343+
fi
344+
}
345+
346+
configureSparkProvider() {
347+
echo "Note: iFlyTek Spark API Key format is APIKey:APISecret"
348+
read -r -u 3 -p "→ Enter API Key for iFlyTek Spark: " SPARK_API_KEY
349+
read -r -u 3 -p "→ Enter API Secret for iFlyTek Spark: " SPARK_API_SECRET
350+
if [ -n "$SPARK_API_KEY" ] && [ -n "$SPARK_API_SECRET" ]; then
351+
SPARK_API_KEY="${SPARK_API_KEY}:${SPARK_API_SECRET}"
352+
SPARK_CONFIGURED="placeholder"
353+
fi
354+
LLM_ENVS+=("SPARK_API_KEY")
355+
}
356+
357+
configureHunyuanProvider() {
358+
read -r -u 3 -p "→ Enter Auth ID for Tencent Hunyuan: " HUNYUAN_AUTH_ID
359+
read -r -u 3 -p "→ Enter Auth Key for Tencent Hunyuan: " HUNYUAN_AUTH_KEY
360+
LLM_ENVS+=("HUNYUAN_AUTH_ID" "HUNYUAN_AUTH_KEY")
361+
}
362+
267363
configureStorage() {
268364
if [ -d "$DATA_FOLDER" ]; then
269365
return 0

0 commit comments

Comments
 (0)