gemini.go

 1package models
 2
 3const (
 4	ProviderGemini ModelProvider = "gemini"
 5
 6	// Models
 7	Gemini25Flash     ModelID = "gemini-2.5-flash"
 8	Gemini25          ModelID = "gemini-2.5"
 9	Gemini20Flash     ModelID = "gemini-2.0-flash"
10	Gemini20FlashLite ModelID = "gemini-2.0-flash-lite"
11)
12
13var GeminiModels = map[ModelID]Model{
14	Gemini25Flash: {
15		ID:                 Gemini25Flash,
16		Name:               "Gemini 2.5 Flash",
17		Provider:           ProviderGemini,
18		APIModel:           "gemini-2.5-flash-preview-04-17",
19		CostPer1MIn:        0.15,
20		CostPer1MInCached:  0,
21		CostPer1MOutCached: 0,
22		CostPer1MOut:       0.60,
23		ContextWindow:      1000000,
24		DefaultMaxTokens:   50000,
25	},
26	Gemini25: {
27		ID:                 Gemini25,
28		Name:               "Gemini 2.5 Pro",
29		Provider:           ProviderGemini,
30		APIModel:           "gemini-2.5-pro-preview-03-25",
31		CostPer1MIn:        1.25,
32		CostPer1MInCached:  0,
33		CostPer1MOutCached: 0,
34		CostPer1MOut:       10,
35		ContextWindow:      1000000,
36		DefaultMaxTokens:   50000,
37	},
38
39	Gemini20Flash: {
40		ID:                 Gemini20Flash,
41		Name:               "Gemini 2.0 Flash",
42		Provider:           ProviderGemini,
43		APIModel:           "gemini-2.0-flash",
44		CostPer1MIn:        0.10,
45		CostPer1MInCached:  0,
46		CostPer1MOutCached: 0,
47		CostPer1MOut:       0.40,
48		ContextWindow:      1000000,
49		DefaultMaxTokens:   6000,
50	},
51	Gemini20FlashLite: {
52		ID:                 Gemini20FlashLite,
53		Name:               "Gemini 2.0 Flash Lite",
54		Provider:           ProviderGemini,
55		APIModel:           "gemini-2.0-flash-lite",
56		CostPer1MIn:        0.05,
57		CostPer1MInCached:  0,
58		CostPer1MOutCached: 0,
59		CostPer1MOut:       0.30,
60		ContextWindow:      1000000,
61		DefaultMaxTokens:   6000,
62	},
63}