@@ -217,7 +217,7 @@ describe("OpenAiHandler", () => {
217217 // Assert the mockCreate was called with max_tokens
218218 expect ( mockCreate ) . toHaveBeenCalled ( )
219219 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
220- expect ( callArgs . max_tokens ) . toBe ( 4096 )
220+ expect ( callArgs . max_completion_tokens ) . toBe ( 4096 )
221221 } )
222222
223223 it ( "should not include max_tokens when includeMaxTokens is false" , async ( ) => {
@@ -238,7 +238,7 @@ describe("OpenAiHandler", () => {
238238 // Assert the mockCreate was called without max_tokens
239239 expect ( mockCreate ) . toHaveBeenCalled ( )
240240 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
241- expect ( callArgs . max_tokens ) . toBeUndefined ( )
241+ expect ( callArgs . max_completion_tokens ) . toBeUndefined ( )
242242 } )
243243
244244 it ( "should not include max_tokens when includeMaxTokens is undefined" , async ( ) => {
@@ -259,7 +259,7 @@ describe("OpenAiHandler", () => {
259259 // Assert the mockCreate was called without max_tokens
260260 expect ( mockCreate ) . toHaveBeenCalled ( )
261261 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
262- expect ( callArgs . max_tokens ) . toBeUndefined ( )
262+ expect ( callArgs . max_completion_tokens ) . toBeUndefined ( )
263263 } )
264264
265265 it ( "should use user-configured modelMaxTokens instead of model default maxTokens" , async ( ) => {
@@ -281,7 +281,7 @@ describe("OpenAiHandler", () => {
281281 // Assert the mockCreate was called with user-configured modelMaxTokens (32000), not model default maxTokens (4096)
282282 expect ( mockCreate ) . toHaveBeenCalled ( )
283283 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
284- expect ( callArgs . max_tokens ) . toBe ( 32000 )
284+ expect ( callArgs . max_completion_tokens ) . toBe ( 32000 )
285285 } )
286286
287287 it ( "should fallback to model default maxTokens when user modelMaxTokens is not set" , async ( ) => {
@@ -303,7 +303,7 @@ describe("OpenAiHandler", () => {
303303 // Assert the mockCreate was called with model default maxTokens (4096) as fallback
304304 expect ( mockCreate ) . toHaveBeenCalled ( )
305305 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
306- expect ( callArgs . max_tokens ) . toBe ( 4096 )
306+ expect ( callArgs . max_completion_tokens ) . toBe ( 4096 )
307307 } )
308308 } )
309309
@@ -447,7 +447,7 @@ describe("OpenAiHandler", () => {
447447
448448 // Verify max_tokens is NOT included when includeMaxTokens is not set
449449 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
450- expect ( callArgs ) . not . toHaveProperty ( "max_tokens " )
450+ expect ( callArgs ) . not . toHaveProperty ( "max_completion_tokens " )
451451 } )
452452
453453 it ( "should handle non-streaming responses with Azure AI Inference Service" , async ( ) => {
@@ -493,7 +493,7 @@ describe("OpenAiHandler", () => {
493493
494494 // Verify max_tokens is NOT included when includeMaxTokens is not set
495495 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
496- expect ( callArgs ) . not . toHaveProperty ( "max_tokens " )
496+ expect ( callArgs ) . not . toHaveProperty ( "max_completion_tokens " )
497497 } )
498498
499499 it ( "should handle completePrompt with Azure AI Inference Service" , async ( ) => {
@@ -510,7 +510,7 @@ describe("OpenAiHandler", () => {
510510
511511 // Verify max_tokens is NOT included when includeMaxTokens is not set
512512 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
513- expect ( callArgs ) . not . toHaveProperty ( "max_tokens " )
513+ expect ( callArgs ) . not . toHaveProperty ( "max_completion_tokens " )
514514 } )
515515 } )
516516
@@ -566,7 +566,7 @@ describe("OpenAiHandler", () => {
566566 } ,
567567 }
568568
569- it ( "should handle O3 model with streaming and include max_tokens when includeMaxTokens is true" , async ( ) => {
569+ it ( "should handle O3 model with streaming and NOT include max_tokens even when includeMaxTokens is true" , async ( ) => {
570570 const o3Handler = new OpenAiHandler ( {
571571 ...o3Options ,
572572 includeMaxTokens : true ,
@@ -601,7 +601,7 @@ describe("OpenAiHandler", () => {
601601 stream_options : { include_usage : true } ,
602602 reasoning_effort : "medium" ,
603603 temperature : 0.5 ,
604- max_tokens : 32000 ,
604+ // O3 models do not support max_tokens
605605 } ) ,
606606 { } ,
607607 )
@@ -647,10 +647,10 @@ describe("OpenAiHandler", () => {
647647
648648 // Verify max_tokens is NOT included
649649 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
650- expect ( callArgs ) . not . toHaveProperty ( "max_tokens " )
650+ expect ( callArgs ) . not . toHaveProperty ( "max_completion_tokens " )
651651 } )
652652
653- it ( "should handle O3 model non-streaming with max_tokens and reasoning_effort " , async ( ) => {
653+ it ( "should handle O3 model non-streaming with reasoning_effort but NO max_tokens " , async ( ) => {
654654 const o3Handler = new OpenAiHandler ( {
655655 ...o3Options ,
656656 openAiStreamingEnabled : false ,
@@ -683,7 +683,7 @@ describe("OpenAiHandler", () => {
683683 ] ,
684684 reasoning_effort : "medium" ,
685685 temperature : 0.3 ,
686- max_tokens : 65536 , // Falls back to model default
686+ // O3 models do not support max_tokens
687687 } ) ,
688688 { } ,
689689 )
@@ -743,10 +743,10 @@ describe("OpenAiHandler", () => {
743743
744744 // Verify max_tokens is NOT included when includeMaxTokens is false
745745 const callArgs = mockCreate . mock . calls [ 0 ] [ 0 ]
746- expect ( callArgs ) . not . toHaveProperty ( "max_tokens " )
746+ expect ( callArgs ) . not . toHaveProperty ( "max_completion_tokens " )
747747 } )
748748
749- it ( "should include max_tokens for O3 model with Azure AI Inference Service when includeMaxTokens is true" , async ( ) => {
749+ it ( "should NOT include max_tokens for O3 model with Azure AI Inference Service even when includeMaxTokens is true" , async ( ) => {
750750 const o3AzureHandler = new OpenAiHandler ( {
751751 ...o3Options ,
752752 openAiBaseUrl : "https://test.services.ai.azure.com" ,
@@ -766,7 +766,7 @@ describe("OpenAiHandler", () => {
766766 expect ( mockCreate ) . toHaveBeenCalledWith (
767767 expect . objectContaining ( {
768768 model : "o3-mini" ,
769- max_tokens : 65536 , // Included when includeMaxTokens is true
769+ // O3 models do not support max_tokens
770770 } ) ,
771771 { path : "/models/chat/completions" } ,
772772 )
0 commit comments