From 33a8814febd85d48e156cf6f3d5cb62f18a9de6b Mon Sep 17 00:00:00 2001 From: Neal Shah <30693865+ProgrammerIn-wonderland@users.noreply.github.com> Date: Tue, 18 Nov 2025 20:00:34 -0500 Subject: [PATCH] new gemini models (#1986) --- .../src/modules/puterai/GeminiService.js | 60 +++++++++++++++++++ .../modules/puterai/lib/GeminiSquareHole.js | 4 +- src/puter-js/src/modules/AI.js | 7 ++- 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/src/backend/src/modules/puterai/GeminiService.js b/src/backend/src/modules/puterai/GeminiService.js index c76fe5f7f..9d950887d 100644 --- a/src/backend/src/modules/puterai/GeminiService.js +++ b/src/backend/src/modules/puterai/GeminiService.js @@ -137,6 +137,66 @@ class GeminiService extends BaseService { }, max_tokens: 8192, }, + { + id: 'gemini-2.0-flash-lite', + name: 'Gemini 2.0 Flash-Lite', + context: 1_048_576, + cost: { + currency: 'usd-cents', + tokens: 1_000_000, + input: 8, + output: 32, + }, + max_tokens: 8192, + }, + { + id: 'gemini-2.5-flash', + name: 'Gemini 2.5 Flash', + context: 1_048_576, + cost: { + currency: 'usd-cents', + tokens: 1_000_000, + input: 12, + output: 48, + }, + max_tokens: 65536, + }, + { + id: 'gemini-2.5-flash-lite', + name: 'Gemini 2.5 Flash-Lite', + context: 1_048_576, + cost: { + currency: 'usd-cents', + tokens: 1_000_000, + input: 10, + output: 40, + }, + max_tokens: 65536, + }, + { + id: 'gemini-2.5-pro', + name: 'Gemini 2.5 Pro', + context: 1_048_576, + cost: { + currency: 'usd-cents', + tokens: 1_000_000, + input: 15, + output: 60, + }, + max_tokens: 65536, + }, + { + id: 'gemini-3-pro-preview', + name: 'Gemini 3 Pro', + context: 1_048_576, + cost: { + currency: 'usd-cents', + tokens: 1_000_000, + input: 25, + output: 100, + }, + max_tokens: 65536, + }, ]; } } diff --git a/src/backend/src/modules/puterai/lib/GeminiSquareHole.js b/src/backend/src/modules/puterai/lib/GeminiSquareHole.js index 842a313c5..76cd20395 100644 --- a/src/backend/src/modules/puterai/lib/GeminiSquareHole.js +++ b/src/backend/src/modules/puterai/lib/GeminiSquareHole.js @@ -141,7 +141,9 @@ module.exports = class GeminiSquareHole { // assume text as default const text = part.text; - textblock.addText(text); + if ( text ) { + textblock.addText(text); + } } last_usage = chunk.usageMetadata; diff --git a/src/puter-js/src/modules/AI.js b/src/puter-js/src/modules/AI.js index 4263a446e..05bae289b 100644 --- a/src/puter-js/src/modules/AI.js +++ b/src/puter-js/src/modules/AI.js @@ -788,7 +788,12 @@ class AI{ } else if( requestParams.model === 'gemini-1.5-flash' || - requestParams.model === 'gemini-2.0-flash' + requestParams.model === 'gemini-2.0-flash' || + requestParams.model === 'gemini-2.5-flash' || + requestParams.model === 'gemini-2.5-flash-lite' || + requestParams.model === 'gemini-2.0-flash-lite' || + requestParams.model === 'gemini-3-pro-preview' || + requestParams.model === 'gemini-2.5-pro' ){ driver = 'gemini'; }