Skip to content

Commit 759d609

Browse files
author
valentinfrlch
committed
Update AzureOpenAI provider to match gpt-5 model family API specs #494
1 parent 4cc3d41 commit 759d609

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

custom_components/llmvision/providers.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,13 +635,14 @@ async def _make_request(self, data: dict) -> str:
635635

636636
def _prepare_vision_data(self, call: Any) -> dict:
637637
default_parameters = self._get_default_parameters(call)
638+
tokens_key = "max_completion_tokens" if self.model in ["gpt-5", "gpt-5-mini", "gpt-5-nano"] else "max_tokens"
638639
payload = {
639640
"messages": [{"role": "user", "content": []}],
640-
"max_tokens": call.max_tokens,
641641
"temperature": default_parameters.get("temperature"),
642642
"top_p": default_parameters.get("top_p"),
643643
"stream": False,
644644
}
645+
payload[tokens_key] = call.max_tokens
645646
for image, filename in zip(call.base64_images, call.filenames):
646647
tag = (
647648
("Image " + str(call.base64_images.index(image) + 1))
@@ -702,16 +703,17 @@ def _prepare_vision_data(self, call: Any) -> dict:
702703
def _prepare_text_data(self, call: Any) -> dict:
703704
default_parameters = self._get_default_parameters(call)
704705
title_prompt = self._get_title_prompt()
706+
tokens_key = "max_completion_tokens" if self.model in ["gpt-5", "gpt-5-mini", "gpt-5-nano"] else "max_tokens"
705707
payload = {
706708
"messages": [
707709
{"role": "user", "content": [{"type": "text", "text": title_prompt}]},
708710
{"role": "user", "content": [{"type": "text", "text": call.message}]},
709711
],
710-
"max_tokens": call.max_tokens,
711712
"temperature": default_parameters.get("temperature"),
712713
"top_p": default_parameters.get("top_p"),
713714
"stream": False,
714715
}
716+
payload[tokens_key] = call.max_tokens
715717

716718
# Add structured output format if requested
717719
if call.response_format == "json" and call.structure:
@@ -751,12 +753,13 @@ async def validate(self) -> None | ServiceValidationError:
751753
api_version=self.endpoint.get("api_version"),
752754
)
753755
headers = self._generate_headers()
756+
tokens_key = "max_completion_tokens" if self.model in ["gpt-5", "gpt-5-mini", "gpt-5-nano"] else "max_tokens"
754757
data = {
755758
"messages": [{"role": "user", "content": [{"type": "text", "text": "Hi"}]}],
756-
"max_tokens": 1,
757759
"temperature": 0.5,
758760
"stream": False,
759761
}
762+
data[tokens_key] = 1
760763
await self._post(url=endpoint, headers=headers, data=data)
761764

762765
def supports_structured_output(self) -> bool:

0 commit comments

Comments
 (0)