@@ -18,140 +18,151 @@ const (
19var AzureModels = map[ModelID]Model{
19var AzureModels = map[ModelID]Model{
20 AzureGPT41: {
20 AzureGPT41: {
21− ID: AzureGPT41,
21+ ID: AzureGPT41,
22− Name: "Azure OpenAI – GPT 4.1",
22+ Name: "Azure OpenAI – GPT 4.1",
23− Provider: ProviderAzure,
23+ Provider: ProviderAzure,
24− APIModel: "gpt-4.1",
24+ APIModel: "gpt-4.1",
25+ CostPer1MIn: OpenAIModels[GPT41].CostPer1MIn,
26+ CostPer1MInCached: OpenAIModels[GPT41].CostPer1MInCached,
25− CostPer1MIn: OpenAIModels[GPT41].CostPer1MIn,
27+ CostPer1MOut: OpenAIModels[GPT41].CostPer1MOut,
26− CostPer1MInCached: OpenAIModels[GPT41].CostPer1MInCached,
28+ CostPer1MOutCached: OpenAIModels[GPT41].CostPer1MOutCached,
27− CostPer1MOut: OpenAIModels[GPT41].CostPer1MOut,
29+ ContextWindow: OpenAIModels[GPT41].ContextWindow,
28− CostPer1MOutCached: OpenAIModels[GPT41].CostPer1MOutCached,
30+ DefaultMaxTokens: OpenAIModels[GPT41].DefaultMaxTokens,
29− ContextWindow: OpenAIModels[GPT41].ContextWindow,
31+ SupportsAttachments: true,
30− DefaultMaxTokens: OpenAIModels[GPT41].DefaultMaxTokens,
32 AzureGPT41Mini: {
33 AzureGPT41Mini: {
33− ID: AzureGPT41Mini,
34+ ID: AzureGPT41Mini,
34− Name: "Azure OpenAI – GPT 4.1 mini",
35+ Name: "Azure OpenAI – GPT 4.1 mini",
35− Provider: ProviderAzure,
36+ Provider: ProviderAzure,
36− APIModel: "gpt-4.1-mini",
37+ APIModel: "gpt-4.1-mini",
38+ CostPer1MIn: OpenAIModels[GPT41Mini].CostPer1MIn,
39+ CostPer1MInCached: OpenAIModels[GPT41Mini].CostPer1MInCached,
37− CostPer1MIn: OpenAIModels[GPT41Mini].CostPer1MIn,
40+ CostPer1MOut: OpenAIModels[GPT41Mini].CostPer1MOut,
38− CostPer1MInCached: OpenAIModels[GPT41Mini].CostPer1MInCached,
41+ CostPer1MOutCached: OpenAIModels[GPT41Mini].CostPer1MOutCached,
39− CostPer1MOut: OpenAIModels[GPT41Mini].CostPer1MOut,
42+ ContextWindow: OpenAIModels[GPT41Mini].ContextWindow,
40− CostPer1MOutCached: OpenAIModels[GPT41Mini].CostPer1MOutCached,
41− ContextWindow: OpenAIModels[GPT41Mini].ContextWindow,
43+ DefaultMaxTokens: OpenAIModels[GPT41Mini].DefaultMaxTokens,
42− DefaultMaxTokens: OpenAIModels[GPT41Mini].DefaultMaxTokens,
44+ SupportsAttachments: true,
44 AzureGPT41Nano: {
46 AzureGPT41Nano: {
45− ID: AzureGPT41Nano,
47+ ID: AzureGPT41Nano,
46− Name: "Azure OpenAI – GPT 4.1 nano",
48+ Name: "Azure OpenAI – GPT 4.1 nano",
47− Provider: ProviderAzure,
49+ Provider: ProviderAzure,
48− APIModel: "gpt-4.1-nano",
50+ APIModel: "gpt-4.1-nano",
51+ CostPer1MIn: OpenAIModels[GPT41Nano].CostPer1MIn,
52+ CostPer1MInCached: OpenAIModels[GPT41Nano].CostPer1MInCached,
49− CostPer1MIn: OpenAIModels[GPT41Nano].CostPer1MIn,
53+ CostPer1MOut: OpenAIModels[GPT41Nano].CostPer1MOut,
50− CostPer1MInCached: OpenAIModels[GPT41Nano].CostPer1MInCached,
54+ CostPer1MOutCached: OpenAIModels[GPT41Nano].CostPer1MOutCached,
51− CostPer1MOut: OpenAIModels[GPT41Nano].CostPer1MOut,
55+ ContextWindow: OpenAIModels[GPT41Nano].ContextWindow,
52− CostPer1MOutCached: OpenAIModels[GPT41Nano].CostPer1MOutCached,
53− ContextWindow: OpenAIModels[GPT41Nano].ContextWindow,
56+ DefaultMaxTokens: OpenAIModels[GPT41Nano].DefaultMaxTokens,
54− DefaultMaxTokens: OpenAIModels[GPT41Nano].DefaultMaxTokens,
57+ SupportsAttachments: true,
56 AzureGPT45Preview: {
59 AzureGPT45Preview: {
57− ID: AzureGPT45Preview,
60+ ID: AzureGPT45Preview,
58− Name: "Azure OpenAI – GPT 4.5 preview",
61+ Name: "Azure OpenAI – GPT 4.5 preview",
59− Provider: ProviderAzure,
62+ Provider: ProviderAzure,
60− APIModel: "gpt-4.5-preview",
63+ APIModel: "gpt-4.5-preview",
64+ CostPer1MIn: OpenAIModels[GPT45Preview].CostPer1MIn,
65+ CostPer1MInCached: OpenAIModels[GPT45Preview].CostPer1MInCached,
61− CostPer1MIn: OpenAIModels[GPT45Preview].CostPer1MIn,
66+ CostPer1MOut: OpenAIModels[GPT45Preview].CostPer1MOut,
62− CostPer1MInCached: OpenAIModels[GPT45Preview].CostPer1MInCached,
67+ CostPer1MOutCached: OpenAIModels[GPT45Preview].CostPer1MOutCached,
63− CostPer1MOut: OpenAIModels[GPT45Preview].CostPer1MOut,
68+ ContextWindow: OpenAIModels[GPT45Preview].ContextWindow,
64− CostPer1MOutCached: OpenAIModels[GPT45Preview].CostPer1MOutCached,
65− ContextWindow: OpenAIModels[GPT45Preview].ContextWindow,
69+ DefaultMaxTokens: OpenAIModels[GPT45Preview].DefaultMaxTokens,
66− DefaultMaxTokens: OpenAIModels[GPT45Preview].DefaultMaxTokens,
70+ SupportsAttachments: true,
68 AzureGPT4o: {
72 AzureGPT4o: {
69− ID: AzureGPT4o,
73+ ID: AzureGPT4o,
70− Name: "Azure OpenAI – GPT-4o",
74+ Name: "Azure OpenAI – GPT-4o",
71− Provider: ProviderAzure,
75+ Provider: ProviderAzure,
72− APIModel: "gpt-4o",
76+ APIModel: "gpt-4o",
77+ CostPer1MIn: OpenAIModels[GPT4o].CostPer1MIn,
78+ CostPer1MInCached: OpenAIModels[GPT4o].CostPer1MInCached,
73− CostPer1MIn: OpenAIModels[GPT4o].CostPer1MIn,
79+ CostPer1MOut: OpenAIModels[GPT4o].CostPer1MOut,
74− CostPer1MInCached: OpenAIModels[GPT4o].CostPer1MInCached,
80+ CostPer1MOutCached: OpenAIModels[GPT4o].CostPer1MOutCached,
75− CostPer1MOut: OpenAIModels[GPT4o].CostPer1MOut,
81+ ContextWindow: OpenAIModels[GPT4o].ContextWindow,
76− CostPer1MOutCached: OpenAIModels[GPT4o].CostPer1MOutCached,
82+ DefaultMaxTokens: OpenAIModels[GPT4o].DefaultMaxTokens,
77− ContextWindow: OpenAIModels[GPT4o].ContextWindow,
83+ SupportsAttachments: true,
78− DefaultMaxTokens: OpenAIModels[GPT4o].DefaultMaxTokens,
80 AzureGPT4oMini: {
85 AzureGPT4oMini: {
81− ID: AzureGPT4oMini,
86+ ID: AzureGPT4oMini,
82− Name: "Azure OpenAI – GPT-4o mini",
87+ Name: "Azure OpenAI – GPT-4o mini",
83− Provider: ProviderAzure,
88+ Provider: ProviderAzure,
84− APIModel: "gpt-4o-mini",
89+ APIModel: "gpt-4o-mini",
90+ CostPer1MIn: OpenAIModels[GPT4oMini].CostPer1MIn,
91+ CostPer1MInCached: OpenAIModels[GPT4oMini].CostPer1MInCached,
85− CostPer1MIn: OpenAIModels[GPT4oMini].CostPer1MIn,
92+ CostPer1MOut: OpenAIModels[GPT4oMini].CostPer1MOut,
86− CostPer1MInCached: OpenAIModels[GPT4oMini].CostPer1MInCached,
93+ CostPer1MOutCached: OpenAIModels[GPT4oMini].CostPer1MOutCached,
87− CostPer1MOut: OpenAIModels[GPT4oMini].CostPer1MOut,
94+ ContextWindow: OpenAIModels[GPT4oMini].ContextWindow,
88− CostPer1MOutCached: OpenAIModels[GPT4oMini].CostPer1MOutCached,
89− ContextWindow: OpenAIModels[GPT4oMini].ContextWindow,
95+ DefaultMaxTokens: OpenAIModels[GPT4oMini].DefaultMaxTokens,
90− DefaultMaxTokens: OpenAIModels[GPT4oMini].DefaultMaxTokens,
96+ SupportsAttachments: true,
92 AzureO1: {
98 AzureO1: {
93− ID: AzureO1,
99+ ID: AzureO1,
94− Name: "Azure OpenAI – O1",
100+ Name: "Azure OpenAI – O1",
95− Provider: ProviderAzure,
101+ Provider: ProviderAzure,
96− APIModel: "o1",
102+ APIModel: "o1",
97− CostPer1MIn: OpenAIModels[O1].CostPer1MIn,
103+ CostPer1MIn: OpenAIModels[O1].CostPer1MIn,
98− CostPer1MInCached: OpenAIModels[O1].CostPer1MInCached,
104+ CostPer1MInCached: OpenAIModels[O1].CostPer1MInCached,
99− CostPer1MOut: OpenAIModels[O1].CostPer1MOut,
105+ CostPer1MOut: OpenAIModels[O1].CostPer1MOut,
100− CostPer1MOutCached: OpenAIModels[O1].CostPer1MOutCached,
106+ CostPer1MOutCached: OpenAIModels[O1].CostPer1MOutCached,
101− ContextWindow: OpenAIModels[O1].ContextWindow,
107+ ContextWindow: OpenAIModels[O1].ContextWindow,
102− DefaultMaxTokens: OpenAIModels[O1].DefaultMaxTokens,
108+ DefaultMaxTokens: OpenAIModels[O1].DefaultMaxTokens,
103− CanReason: OpenAIModels[O1].CanReason,
109+ CanReason: OpenAIModels[O1].CanReason,
110+ SupportsAttachments: true,
105 AzureO1Mini: {
112 AzureO1Mini: {
106− ID: AzureO1Mini,
113+ ID: AzureO1Mini,
107− Name: "Azure OpenAI – O1 mini",
114+ Name: "Azure OpenAI – O1 mini",
108− Provider: ProviderAzure,
115+ Provider: ProviderAzure,
109− APIModel: "o1-mini",
116+ APIModel: "o1-mini",
117+ CostPer1MIn: OpenAIModels[O1Mini].CostPer1MIn,
118+ CostPer1MInCached: OpenAIModels[O1Mini].CostPer1MInCached,
110− CostPer1MIn: OpenAIModels[O1Mini].CostPer1MIn,
119+ CostPer1MOut: OpenAIModels[O1Mini].CostPer1MOut,
111− CostPer1MInCached: OpenAIModels[O1Mini].CostPer1MInCached,
120+ CostPer1MOutCached: OpenAIModels[O1Mini].CostPer1MOutCached,
112− CostPer1MOut: OpenAIModels[O1Mini].CostPer1MOut,
121+ ContextWindow: OpenAIModels[O1Mini].ContextWindow,
113− CostPer1MOutCached: OpenAIModels[O1Mini].CostPer1MOutCached,
114− ContextWindow: OpenAIModels[O1Mini].ContextWindow,
115− DefaultMaxTokens: OpenAIModels[O1Mini].DefaultMaxTokens,
122+ DefaultMaxTokens: OpenAIModels[O1Mini].DefaultMaxTokens,
116− CanReason: OpenAIModels[O1Mini].CanReason,
123+ CanReason: OpenAIModels[O1Mini].CanReason,
124+ SupportsAttachments: true,
118 AzureO3: {
126 AzureO3: {
119− ID: AzureO3,
127+ ID: AzureO3,
120− Name: "Azure OpenAI – O3",
128+ Name: "Azure OpenAI – O3",
121− Provider: ProviderAzure,
129+ Provider: ProviderAzure,
122− APIModel: "o3",
130+ APIModel: "o3",
123− CostPer1MIn: OpenAIModels[O3].CostPer1MIn,
131+ CostPer1MIn: OpenAIModels[O3].CostPer1MIn,
124− CostPer1MInCached: OpenAIModels[O3].CostPer1MInCached,
132+ CostPer1MInCached: OpenAIModels[O3].CostPer1MInCached,
125− CostPer1MOut: OpenAIModels[O3].CostPer1MOut,
133+ CostPer1MOut: OpenAIModels[O3].CostPer1MOut,
126− CostPer1MOutCached: OpenAIModels[O3].CostPer1MOutCached,
134+ CostPer1MOutCached: OpenAIModels[O3].CostPer1MOutCached,
127− ContextWindow: OpenAIModels[O3].ContextWindow,
135+ ContextWindow: OpenAIModels[O3].ContextWindow,
128− DefaultMaxTokens: OpenAIModels[O3].DefaultMaxTokens,
136+ DefaultMaxTokens: OpenAIModels[O3].DefaultMaxTokens,
129− CanReason: OpenAIModels[O3].CanReason,
137+ CanReason: OpenAIModels[O3].CanReason,
138+ SupportsAttachments: true,
131 AzureO3Mini: {
140 AzureO3Mini: {
132− ID: AzureO3Mini,
141+ ID: AzureO3Mini,
133− Name: "Azure OpenAI – O3 mini",
142+ Name: "Azure OpenAI – O3 mini",
134− Provider: ProviderAzure,
143+ Provider: ProviderAzure,
135− APIModel: "o3-mini",
144+ APIModel: "o3-mini",
145+ CostPer1MIn: OpenAIModels[O3Mini].CostPer1MIn,
146+ CostPer1MInCached: OpenAIModels[O3Mini].CostPer1MInCached,
136− CostPer1MIn: OpenAIModels[O3Mini].CostPer1MIn,
147+ CostPer1MOut: OpenAIModels[O3Mini].CostPer1MOut,
137− CostPer1MInCached: OpenAIModels[O3Mini].CostPer1MInCached,
148+ CostPer1MOutCached: OpenAIModels[O3Mini].CostPer1MOutCached,
138− CostPer1MOut: OpenAIModels[O3Mini].CostPer1MOut,
149+ ContextWindow: OpenAIModels[O3Mini].ContextWindow,
139− CostPer1MOutCached: OpenAIModels[O3Mini].CostPer1MOutCached,
140− ContextWindow: OpenAIModels[O3Mini].ContextWindow,
141− DefaultMaxTokens: OpenAIModels[O3Mini].DefaultMaxTokens,
150+ DefaultMaxTokens: OpenAIModels[O3Mini].DefaultMaxTokens,
142− CanReason: OpenAIModels[O3Mini].CanReason,
151+ CanReason: OpenAIModels[O3Mini].CanReason,
152+ SupportsAttachments: false,
144 AzureO4Mini: {
154 AzureO4Mini: {
145− ID: AzureO4Mini,
155+ ID: AzureO4Mini,
146− Name: "Azure OpenAI – O4 mini",
156+ Name: "Azure OpenAI – O4 mini",
147− Provider: ProviderAzure,
157+ Provider: ProviderAzure,
148− APIModel: "o4-mini",
158+ APIModel: "o4-mini",
159+ CostPer1MIn: OpenAIModels[O4Mini].CostPer1MIn,
160+ CostPer1MInCached: OpenAIModels[O4Mini].CostPer1MInCached,
149− CostPer1MIn: OpenAIModels[O4Mini].CostPer1MIn,
161+ CostPer1MOut: OpenAIModels[O4Mini].CostPer1MOut,
150− CostPer1MInCached: OpenAIModels[O4Mini].CostPer1MInCached,
162+ CostPer1MOutCached: OpenAIModels[O4Mini].CostPer1MOutCached,
151− CostPer1MOut: OpenAIModels[O4Mini].CostPer1MOut,
163+ ContextWindow: OpenAIModels[O4Mini].ContextWindow,
152− CostPer1MOutCached: OpenAIModels[O4Mini].CostPer1MOutCached,
153− ContextWindow: OpenAIModels[O4Mini].ContextWindow,
154− DefaultMaxTokens: OpenAIModels[O4Mini].DefaultMaxTokens,
164+ DefaultMaxTokens: OpenAIModels[O4Mini].DefaultMaxTokens,
155− CanReason: OpenAIModels[O4Mini].CanReason,
165+ CanReason: OpenAIModels[O4Mini].CanReason,
166+ SupportsAttachments: true,