Skip to content

Commit 0f03594

Browse files
committed
feat: add support for Gemini 3
Adds support for the initial preview of Gemini 3 by passing `--model=gemini-3-pro-preview`.
1 parent e00e644 commit 0f03594

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

runner/codegen/gemini-cli-runner.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import {existsSync, mkdirSync} from 'fs';
44
import {writeFile} from 'fs/promises';
55
import {BaseCliAgentRunner} from './base-cli-agent-runner.js';
66

7-
const SUPPORTED_MODELS = ['gemini-2.5-pro', 'gemini-2.5-flash', 'gemini-2.5-flash-lite'];
7+
const SUPPORTED_MODELS = [
8+
'gemini-3-pro-preview',
9+
'gemini-2.5-pro',
10+
'gemini-2.5-flash',
11+
'gemini-2.5-flash-lite',
12+
];
813

914
/** Runner that generates code using the Gemini CLI. */
1015
export class GeminiCliRunner extends BaseCliAgentRunner implements LlmRunner {

runner/codegen/genkit/providers/gemini.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,24 @@ export class GeminiModelProvider extends GenkitModelProvider {
1212
private geminiAPI = lazy(() => new GoogleGenAI({apiKey: this.getApiKey() || undefined}));
1313

1414
protected models = {
15+
'gemini-3-pro-preview': () => googleAI.model('gemini-3-pro-preview'),
1516
'gemini-2.5-pro': () => googleAI.model('gemini-2.5-pro'),
1617
'gemini-2.5-flash': () => googleAI.model('gemini-2.5-flash'),
1718
'gemini-2.5-flash-lite': () => googleAI.model('gemini-2.5-flash-lite'),
1819
};
1920

2021
protected rateLimitConfig: Record<string, RateLimitConfig> = {
22+
'googleai/gemini-3-pro-preview': {
23+
requestPerMinute: new RateLimiter({
24+
tokensPerInterval: 150,
25+
interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side.
26+
}),
27+
tokensPerMinute: new RateLimiter({
28+
tokensPerInterval: 2_000_000 * 0.75, // *0.75 to be more resilient to token count deviations
29+
interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side.
30+
}),
31+
countTokens: prompt => this.countGeminiTokens(prompt, 'gemini-3-pro-preview'),
32+
},
2133
// See: https://ai.google.dev/gemini-api/docs/rate-limits#tier-1
2234
// 150 per minute requests is Gemini Pro's limit right now.
2335
'googleai/gemini-2.5-pro': {

0 commit comments

Comments
 (0)