gemini.go

 1package models
 2
 3const (
 4	ProviderGemini InferenceProvider = "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		SupportsAttachments: true,
26	},
27	Gemini25: {
28		ID:                  Gemini25,
29		Name:                "Gemini 2.5 Pro",
30		Provider:            ProviderGemini,
31		APIModel:            "gemini-2.5-pro-preview-05-06",
32		CostPer1MIn:         1.25,
33		CostPer1MInCached:   0,
34		CostPer1MOutCached:  0,
35		CostPer1MOut:        10,
36		ContextWindow:       1000000,
37		DefaultMaxTokens:    50000,
38		SupportsAttachments: true,
39	},
40
41	Gemini20Flash: {
42		ID:                  Gemini20Flash,
43		Name:                "Gemini 2.0 Flash",
44		Provider:            ProviderGemini,
45		APIModel:            "gemini-2.0-flash",
46		CostPer1MIn:         0.10,
47		CostPer1MInCached:   0,
48		CostPer1MOutCached:  0,
49		CostPer1MOut:        0.40,
50		ContextWindow:       1000000,
51		DefaultMaxTokens:    6000,
52		SupportsAttachments: true,
53	},
54	Gemini20FlashLite: {
55		ID:                  Gemini20FlashLite,
56		Name:                "Gemini 2.0 Flash Lite",
57		Provider:            ProviderGemini,
58		APIModel:            "gemini-2.0-flash-lite",
59		CostPer1MIn:         0.05,
60		CostPer1MInCached:   0,
61		CostPer1MOutCached:  0,
62		CostPer1MOut:        0.30,
63		ContextWindow:       1000000,
64		DefaultMaxTokens:    6000,
65		SupportsAttachments: true,
66	},
67}