@@ -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