openai.go

  1package models
  2
  3const (
  4	ProviderOpenAI ModelProvider = "openai"
  5
  6	GPT41        ModelID = "gpt-4.1"
  7	GPT41Mini    ModelID = "gpt-4.1-mini"
  8	GPT41Nano    ModelID = "gpt-4.1-nano"
  9	GPT45Preview ModelID = "gpt-4.5-preview"
 10	GPT4o        ModelID = "gpt-4o"
 11	GPT4oMini    ModelID = "gpt-4o-mini"
 12	O1           ModelID = "o1"
 13	O1Pro        ModelID = "o1-pro"
 14	O1Mini       ModelID = "o1-mini"
 15	O3           ModelID = "o3"
 16	O3Mini       ModelID = "o3-mini"
 17	O4Mini       ModelID = "o4-mini"
 18)
 19
 20var OpenAIModels = map[ModelID]Model{
 21	GPT41: {
 22		ID:                 GPT41,
 23		Name:               "GPT 4.1",
 24		Provider:           ProviderOpenAI,
 25		APIModel:           "gpt-4.1",
 26		CostPer1MIn:        2.00,
 27		CostPer1MInCached:  0.50,
 28		CostPer1MOutCached: 0.0,
 29		CostPer1MOut:       8.00,
 30		ContextWindow:      1_047_576,
 31		DefaultMaxTokens:   20000,
 32	},
 33	GPT41Mini: {
 34		ID:                 GPT41Mini,
 35		Name:               "GPT 4.1 mini",
 36		Provider:           ProviderOpenAI,
 37		APIModel:           "gpt-4.1",
 38		CostPer1MIn:        0.40,
 39		CostPer1MInCached:  0.10,
 40		CostPer1MOutCached: 0.0,
 41		CostPer1MOut:       1.60,
 42		ContextWindow:      200_000,
 43		DefaultMaxTokens:   20000,
 44	},
 45	GPT41Nano: {
 46		ID:                 GPT41Nano,
 47		Name:               "GPT 4.1 nano",
 48		Provider:           ProviderOpenAI,
 49		APIModel:           "gpt-4.1-nano",
 50		CostPer1MIn:        0.10,
 51		CostPer1MInCached:  0.025,
 52		CostPer1MOutCached: 0.0,
 53		CostPer1MOut:       0.40,
 54		ContextWindow:      1_047_576,
 55		DefaultMaxTokens:   20000,
 56	},
 57	GPT45Preview: {
 58		ID:                 GPT45Preview,
 59		Name:               "GPT 4.5 preview",
 60		Provider:           ProviderOpenAI,
 61		APIModel:           "gpt-4.5-preview",
 62		CostPer1MIn:        75.00,
 63		CostPer1MInCached:  37.50,
 64		CostPer1MOutCached: 0.0,
 65		CostPer1MOut:       150.00,
 66		ContextWindow:      128_000,
 67		DefaultMaxTokens:   15000,
 68	},
 69	GPT4o: {
 70		ID:                 GPT4o,
 71		Name:               "GPT 4o",
 72		Provider:           ProviderOpenAI,
 73		APIModel:           "gpt-4o",
 74		CostPer1MIn:        2.50,
 75		CostPer1MInCached:  1.25,
 76		CostPer1MOutCached: 0.0,
 77		CostPer1MOut:       10.00,
 78		ContextWindow:      128_000,
 79		DefaultMaxTokens:   4096,
 80	},
 81	GPT4oMini: {
 82		ID:                 GPT4oMini,
 83		Name:               "GPT 4o mini",
 84		Provider:           ProviderOpenAI,
 85		APIModel:           "gpt-4o-mini",
 86		CostPer1MIn:        0.15,
 87		CostPer1MInCached:  0.075,
 88		CostPer1MOutCached: 0.0,
 89		CostPer1MOut:       0.60,
 90		ContextWindow:      128_000,
 91	},
 92	O1: {
 93		ID:                 O1,
 94		Name:               "O1",
 95		Provider:           ProviderOpenAI,
 96		APIModel:           "o1",
 97		CostPer1MIn:        15.00,
 98		CostPer1MInCached:  7.50,
 99		CostPer1MOutCached: 0.0,
100		CostPer1MOut:       60.00,
101		ContextWindow:      200_000,
102		DefaultMaxTokens:   50000,
103		CanReason:          true,
104	},
105	O1Pro: {
106		ID:                 O1Pro,
107		Name:               "o1 pro",
108		Provider:           ProviderOpenAI,
109		APIModel:           "o1-pro",
110		CostPer1MIn:        150.00,
111		CostPer1MInCached:  0.0,
112		CostPer1MOutCached: 0.0,
113		CostPer1MOut:       600.00,
114		ContextWindow:      200_000,
115		DefaultMaxTokens:   50000,
116		CanReason:          true,
117	},
118	O1Mini: {
119		ID:                 O1Mini,
120		Name:               "o1 mini",
121		Provider:           ProviderOpenAI,
122		APIModel:           "o1-mini",
123		CostPer1MIn:        1.10,
124		CostPer1MInCached:  0.55,
125		CostPer1MOutCached: 0.0,
126		CostPer1MOut:       4.40,
127		ContextWindow:      128_000,
128		DefaultMaxTokens:   50000,
129		CanReason:          true,
130	},
131	O3: {
132		ID:                 O3,
133		Name:               "o3",
134		Provider:           ProviderOpenAI,
135		APIModel:           "o3",
136		CostPer1MIn:        10.00,
137		CostPer1MInCached:  2.50,
138		CostPer1MOutCached: 0.0,
139		CostPer1MOut:       40.00,
140		ContextWindow:      200_000,
141		CanReason:          true,
142	},
143	O3Mini: {
144		ID:                 O3Mini,
145		Name:               "o3 mini",
146		Provider:           ProviderOpenAI,
147		APIModel:           "o3-mini",
148		CostPer1MIn:        1.10,
149		CostPer1MInCached:  0.55,
150		CostPer1MOutCached: 0.0,
151		CostPer1MOut:       4.40,
152		ContextWindow:      200_000,
153		DefaultMaxTokens:   50000,
154		CanReason:          true,
155	},
156	O4Mini: {
157		ID:                 O4Mini,
158		Name:               "o4 mini",
159		Provider:           ProviderOpenAI,
160		APIModel:           "o4-mini",
161		CostPer1MIn:        1.10,
162		CostPer1MInCached:  0.275,
163		CostPer1MOutCached: 0.0,
164		CostPer1MOut:       4.40,
165		ContextWindow:      128_000,
166		DefaultMaxTokens:   50000,
167		CanReason:          true,
168	},
169}