Skip to content

Commit 0b1eb18

Browse files
Add up-to-date Azure OpenAI Agents (#284)
* add up to date azure openai models * update llm configs for gpt-5 * update token limits following Azure's documentation
1 parent b5b8254 commit 0b1eb18

File tree

4 files changed

+153
-34
lines changed

4 files changed

+153
-34
lines changed

src/agentlab/agents/generic_agent/__init__.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@
2222
AGENT_4o_MINI,
2323
AGENT_4o_MINI_VISION,
2424
AGENT_4o_VISION,
25+
AGENT_AZURE_4o_MINI,
26+
AGENT_AZURE_4o,
27+
AGENT_AZURE_4o_VISION,
28+
AGENT_AZURE_4o_MINI_VISION,
29+
AGENT_AZURE_41,
30+
AGENT_AZURE_41_MINI,
31+
AGENT_AZURE_41_VISION,
32+
AGENT_AZURE_41_MINI_VISION,
33+
AGENT_AZURE_5,
34+
AGENT_AZURE_5_MINI,
35+
AGENT_AZURE_5_NANO,
36+
AGENT_AZURE_5_VISION,
37+
AGENT_AZURE_5_MINI_VISION,
38+
AGENT_AZURE_5_NANO_VISION,
2539
AGENT_o1_MINI,
2640
AGENT_o3_MINI,
2741
FLAGS_GPT_4o,
@@ -46,6 +60,20 @@
4660
"AGENT_37_SONNET",
4761
"AGENT_4o_VISION",
4862
"AGENT_4o_MINI_VISION",
63+
"AGENT_AZURE_4o_MINI",
64+
"AGENT_AZURE_4o",
65+
"AGENT_AZURE_4o_VISION",
66+
"AGENT_AZURE_4o_MINI_VISION",
67+
"AGENT_AZURE_41",
68+
"AGENT_AZURE_41_MINI",
69+
"AGENT_AZURE_41_VISION",
70+
"AGENT_AZURE_41_MINI_VISION",
71+
"AGENT_AZURE_5",
72+
"AGENT_AZURE_5_MINI",
73+
"AGENT_AZURE_5_NANO",
74+
"AGENT_AZURE_5_VISION",
75+
"AGENT_AZURE_5_MINI_VISION",
76+
"AGENT_AZURE_5_NANO_VISION",
4977
"AGENT_CLAUDE_SONNET_35_VISION",
5078
"AGENT_GPT5_MINI",
5179
]

src/agentlab/agents/generic_agent/agent_configs.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,39 @@
262262
chat_model_args=CHAT_MODEL_ARGS_DICT["openai/gpt-4o-mini-2024-07-18"],
263263
flags=FLAGS_GPT_4o,
264264
)
265+
266+
AGENT_AZURE_4o_MINI = GenericAgentArgs(
267+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4o-mini-2024-07-18"],
268+
flags=FLAGS_GPT_4o,
269+
)
270+
AGENT_AZURE_4o = GenericAgentArgs(
271+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4o-2024-08-06"],
272+
flags=FLAGS_GPT_4o,
273+
)
274+
AGENT_AZURE_41 = GenericAgentArgs(
275+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4.1-2025-04-14"],
276+
flags=FLAGS_GPT_4o,
277+
)
278+
AGENT_AZURE_41_MINI = GenericAgentArgs(
279+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4.1-mini-2025-04-14"],
280+
flags=FLAGS_GPT_4o,
281+
)
282+
283+
AGENT_AZURE_5 = GenericAgentArgs(
284+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-5-2025-08-07"],
285+
flags=FLAGS_GPT_4o,
286+
)
287+
288+
AGENT_AZURE_5_MINI = GenericAgentArgs(
289+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-5-mini-2025-08-07"],
290+
flags=FLAGS_GPT_4o,
291+
)
292+
293+
AGENT_AZURE_5_NANO = GenericAgentArgs(
294+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-5-nano-2025-08-07"],
295+
flags=FLAGS_GPT_4o,
296+
)
297+
265298
AGENT_CLAUDE_SONNET_35 = GenericAgentArgs(
266299
chat_model_args=CHAT_MODEL_ARGS_DICT["openrouter/anthropic/claude-3.5-sonnet:beta"],
267300
flags=FLAGS_GPT_4o,
@@ -298,6 +331,41 @@
298331
flags=FLAGS_GPT_4o_VISION,
299332
)
300333

334+
AGENT_AZURE_4o_VISION = GenericAgentArgs(
335+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4o-2024-08-06"],
336+
flags=FLAGS_GPT_4o_VISION,
337+
)
338+
339+
AGENT_AZURE_4o_MINI_VISION = GenericAgentArgs(
340+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4o-mini-2024-07-18"],
341+
flags=FLAGS_GPT_4o_VISION,
342+
)
343+
344+
AGENT_AZURE_41_VISION = GenericAgentArgs(
345+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4.1-2025-04-14"],
346+
flags=FLAGS_GPT_4o_VISION,
347+
)
348+
349+
AGENT_AZURE_41_MINI_VISION = GenericAgentArgs(
350+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-4.1-mini-2025-04-14"],
351+
flags=FLAGS_GPT_4o_VISION,
352+
)
353+
354+
AGENT_AZURE_5_VISION = GenericAgentArgs(
355+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-5-2025-08-07"],
356+
flags=FLAGS_GPT_4o_VISION,
357+
)
358+
359+
AGENT_AZURE_5_MINI_VISION = GenericAgentArgs(
360+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-5-mini-2025-08-07"],
361+
flags=FLAGS_GPT_4o_VISION,
362+
)
363+
364+
AGENT_AZURE_5_NANO_VISION = GenericAgentArgs(
365+
chat_model_args=CHAT_MODEL_ARGS_DICT["azure/gpt-5-nano-2025-08-07"],
366+
flags=FLAGS_GPT_4o_VISION,
367+
)
368+
301369
AGENT_CLAUDE_SONNET_35_VISION = GenericAgentArgs(
302370
chat_model_args=CHAT_MODEL_ARGS_DICT["openrouter/anthropic/claude-3.5-sonnet:beta"],
303371
flags=FLAGS_GPT_4o_VISION,

src/agentlab/llm/chat_api.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import anthropic
1010
import openai
1111
from huggingface_hub import InferenceClient
12-
from openai import NOT_GIVEN, AzureOpenAI, OpenAI
12+
from openai import NOT_GIVEN, OpenAI
1313

1414
import agentlab.llm.tracking as tracking
1515
from agentlab.llm.base_api import AbstractChatModel, BaseModelArgs
@@ -110,14 +110,11 @@ def make_model(self):
110110
class AzureModelArgs(BaseModelArgs):
111111
"""Serializable object for instantiating a generic chat model with an Azure model."""
112112

113-
deployment_name: str = None
114-
115113
def make_model(self):
116114
return AzureChatModel(
117115
model_name=self.model_name,
118116
temperature=self.temperature,
119117
max_tokens=self.max_new_tokens,
120-
deployment_name=self.deployment_name,
121118
log_probs=self.log_probs,
122119
)
123120

@@ -398,30 +395,28 @@ def __init__(
398395
self,
399396
model_name,
400397
api_key=None,
401-
deployment_name=None,
402398
temperature=0.5,
403399
max_tokens=100,
404400
max_retry=4,
405401
min_retry_wait_time=60,
406402
log_probs=False,
407403
):
408-
api_key = api_key or os.getenv("AZURE_OPENAI_API_KEY")
409404
endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
410405
assert endpoint, "AZURE_OPENAI_ENDPOINT has to be defined in the environment"
411406

412407
client_args = {
413-
"azure_deployment": deployment_name,
414-
"azure_endpoint": endpoint,
415-
"api_version": "2024-02-01",
408+
"base_url": endpoint,
409+
"default_query": {"api-version": "preview"},
416410
}
417411
super().__init__(
418412
model_name=model_name,
419413
api_key=api_key,
414+
api_key_env_var="AZURE_OPENAI_API_KEY",
420415
temperature=temperature,
421416
max_tokens=max_tokens,
422417
max_retry=max_retry,
423418
min_retry_wait_time=min_retry_wait_time,
424-
client_class=AzureOpenAI,
419+
client_class=OpenAI,
425420
client_args=client_args,
426421
pricing_func=tracking.get_pricing_openai,
427422
log_probs=log_probs,

src/agentlab/llm/llm_configs.py

Lines changed: 52 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,27 @@
2020
]
2121

2222
CHAT_MODEL_ARGS_DICT = {
23+
"openai/gpt-5-2025-08-07": OpenAIModelArgs(
24+
model_name="gpt-5-2025-08-07",
25+
max_total_tokens=400_000,
26+
max_input_tokens=256_000,
27+
max_new_tokens=128_000,
28+
temperature=1, # gpt-5 supports temperature of 1 only
29+
vision_support=True,
30+
),
2331
"openai/gpt-5-nano-2025-08-07": OpenAIModelArgs(
2432
model_name="gpt-5-nano-2025-08-07",
25-
max_total_tokens=128_000,
26-
max_input_tokens=128_000,
27-
max_new_tokens=16_384,
33+
max_total_tokens=400_000,
34+
max_input_tokens=256_000,
35+
max_new_tokens=128_000,
2836
temperature=1, # gpt-5 supports temperature of 1 only
2937
vision_support=True,
3038
),
3139
"openai/gpt-5-mini-2025-08-07": OpenAIModelArgs(
3240
model_name="gpt-5-mini-2025-08-07",
33-
max_total_tokens=128_000,
34-
max_input_tokens=128_000,
35-
max_new_tokens=16_384,
41+
max_total_tokens=400_000,
42+
max_input_tokens=256_000,
43+
max_new_tokens=128_000,
3644
temperature=1, # gpt-5 supports temperature of 1 only
3745
vision_support=True,
3846
),
@@ -111,51 +119,71 @@
111119
max_new_tokens=64_000,
112120
temperature=1e-1,
113121
),
114-
"openai/gpt-5-nano-2025-08-07": OpenAIModelArgs(
115-
model_name="gpt-5-nano-2025-08-07",
116-
max_total_tokens=400_000,
117-
max_input_tokens=400_000 - 4_000,
118-
max_new_tokens=4_000,
119-
temperature=1, # temperature param not supported by gpt-5
120-
),
121-
"openai/gpt-5-mini-2025-08-07": OpenAIModelArgs(
122-
model_name="gpt-5-mini-2025-08-07",
123-
max_total_tokens=400_000,
124-
max_input_tokens=400_000 - 4_000,
125-
max_new_tokens=4_000,
126-
temperature=1, # temperature param not supported by gpt-5
127-
),
128122
"azure/gpt-35-turbo/gpt-35-turbo": AzureModelArgs(
129123
model_name="gpt-35-turbo",
130-
deployment_name="gpt-35-turbo",
131124
max_total_tokens=8_192,
132125
max_input_tokens=7500,
133126
max_new_tokens=500,
134127
),
135128
"azure/gpt-4o-2024-05-13": AzureModelArgs(
136129
model_name="gpt-4o",
137-
deployment_name="gpt-4o-2024-05-13",
138130
max_total_tokens=128_000,
139131
max_input_tokens=100_000,
140132
max_new_tokens=16_384,
141133
vision_support=True,
142134
),
143135
"azure/gpt-4o-2024-08-06": AzureModelArgs(
144136
model_name="gpt-4o",
145-
deployment_name="gpt-4o-2024-08-06",
146137
max_total_tokens=128_000,
147138
max_input_tokens=128_000,
148139
max_new_tokens=16_384,
149140
vision_support=True,
150141
),
151142
"azure/gpt-4o-mini-2024-07-18": AzureModelArgs(
152143
model_name="gpt-4o-mini",
153-
deployment_name="gpt-4o-mini-2024-07-18",
154144
max_total_tokens=128_000,
155145
max_input_tokens=128_000,
156146
max_new_tokens=16_384,
157147
vision_support=True,
158148
),
149+
"azure/gpt-4.1-2025-04-14": AzureModelArgs(
150+
model_name="gpt-4.1",
151+
max_total_tokens=128_000,
152+
max_input_tokens=128_000,
153+
max_new_tokens=16_384,
154+
vision_support=True,
155+
),
156+
"azure/gpt-4.1-mini-2025-04-14": AzureModelArgs(
157+
model_name="gpt-4.1-mini",
158+
max_total_tokens=128_000,
159+
max_input_tokens=128_000,
160+
max_new_tokens=16_384,
161+
vision_support=True,
162+
),
163+
"azure/gpt-5-2025-08-07": AzureModelArgs(
164+
model_name="gpt-5",
165+
max_total_tokens=400_000,
166+
max_input_tokens=256_000,
167+
max_new_tokens=128_000,
168+
temperature=1, # temperature param not supported by gpt-5
169+
vision_support=True,
170+
),
171+
"azure/gpt-5-mini-2025-08-07": AzureModelArgs(
172+
model_name="gpt-5-mini",
173+
max_total_tokens=400_000,
174+
max_input_tokens=256_000,
175+
max_new_tokens=128_000,
176+
temperature=1, # temperature param not supported by gpt-5
177+
vision_support=True,
178+
),
179+
"azure/gpt-5-nano-2025-08-07": AzureModelArgs(
180+
model_name="gpt-5-nano",
181+
max_total_tokens=400_000,
182+
max_input_tokens=256_000,
183+
max_new_tokens=128_000,
184+
temperature=1, # temperature param not supported by gpt-5
185+
vision_support=True,
186+
),
159187
# ---------------- Anthropic ----------------#
160188
"anthropic/claude-3-7-sonnet-20250219": AnthropicModelArgs(
161189
model_name="claude-3-7-sonnet-20250219",

0 commit comments

Comments
 (0)