From 9b81d15b0c3dd4adff39e24bace846ede68259c0 Mon Sep 17 00:00:00 2001 From: HarikrishnanD Date: Thu, 9 Oct 2025 13:45:47 +0530 Subject: [PATCH 1/2] feat(ai): send Gemini API key as query param when listing models packages/server/src/utils/ai/select-ai-provider.ts: add "gemini" case using createOpenAICompatible with queryParams: { key: config.apiKey } and empty headers. apps/dokploy/server/api/routers/ai.ts: update "gemini" models fetch to call ${input.apiUrl}/models?key=${encodeURIComponent(input.apiKey)} with empty headers. --- apps/dokploy/server/api/routers/ai.ts | 6 ++++++ packages/server/src/utils/ai/select-ai-provider.ts | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/apps/dokploy/server/api/routers/ai.ts b/apps/dokploy/server/api/routers/ai.ts index 6fa2e0cdc..6afc440d6 100644 --- a/apps/dokploy/server/api/routers/ai.ts +++ b/apps/dokploy/server/api/routers/ai.ts @@ -62,6 +62,12 @@ export const aiRouter = createTRPCRouter({ case "ollama": response = await fetch(`${input.apiUrl}/api/tags`, { headers }); break; + case "gemini": + response = await fetch( + `${input.apiUrl}/models?key=${encodeURIComponent(input.apiKey)}`, + { headers: {} } + ); + break; default: if (!input.apiKey) throw new TRPCError({ diff --git a/packages/server/src/utils/ai/select-ai-provider.ts b/packages/server/src/utils/ai/select-ai-provider.ts index c0715030b..03e59166e 100644 --- a/packages/server/src/utils/ai/select-ai-provider.ts +++ b/packages/server/src/utils/ai/select-ai-provider.ts @@ -16,6 +16,7 @@ export function getProviderName(apiUrl: string) { if (apiUrl.includes("api.mistral.ai")) return "mistral"; if (apiUrl.includes(":11434") || apiUrl.includes("ollama")) return "ollama"; if (apiUrl.includes("api.deepinfra.com")) return "deepinfra"; + if (apiUrl.includes("generativelanguage.googleapis.com")) return "gemini"; return "custom"; } @@ -66,6 +67,13 @@ export function selectAIProvider(config: { apiUrl: string; apiKey: string }) { baseURL: config.apiUrl, apiKey: config.apiKey, }); + case "gemini": + return createOpenAICompatible({ + name:"gemini", + baseURL:config.apiUrl, + queryParams:{ key: config.apiKey}, + headers:{} + }) case "custom": return createOpenAICompatible({ name: "custom", From 8de50014718f192ed49c4580ab0b3af0e5eb44be Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 08:18:17 +0000 Subject: [PATCH 2/2] [autofix.ci] apply automated fixes --- apps/dokploy/server/api/routers/ai.ts | 12 ++++++------ packages/server/src/utils/ai/select-ai-provider.ts | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/dokploy/server/api/routers/ai.ts b/apps/dokploy/server/api/routers/ai.ts index 6afc440d6..e03da905d 100644 --- a/apps/dokploy/server/api/routers/ai.ts +++ b/apps/dokploy/server/api/routers/ai.ts @@ -62,12 +62,12 @@ export const aiRouter = createTRPCRouter({ case "ollama": response = await fetch(`${input.apiUrl}/api/tags`, { headers }); break; - case "gemini": - response = await fetch( - `${input.apiUrl}/models?key=${encodeURIComponent(input.apiKey)}`, - { headers: {} } - ); - break; + case "gemini": + response = await fetch( + `${input.apiUrl}/models?key=${encodeURIComponent(input.apiKey)}`, + { headers: {} }, + ); + break; default: if (!input.apiKey) throw new TRPCError({ diff --git a/packages/server/src/utils/ai/select-ai-provider.ts b/packages/server/src/utils/ai/select-ai-provider.ts index 03e59166e..1967ff834 100644 --- a/packages/server/src/utils/ai/select-ai-provider.ts +++ b/packages/server/src/utils/ai/select-ai-provider.ts @@ -69,11 +69,11 @@ export function selectAIProvider(config: { apiUrl: string; apiKey: string }) { }); case "gemini": return createOpenAICompatible({ - name:"gemini", - baseURL:config.apiUrl, - queryParams:{ key: config.apiKey}, - headers:{} - }) + name: "gemini", + baseURL: config.apiUrl, + queryParams: { key: config.apiKey }, + headers: {}, + }); case "custom": return createOpenAICompatible({ name: "custom",