10
10
from .._types import NOT_GIVEN , Omit , Timeout , NotGiven
11
11
from .._utils import is_given , is_mapping
12
12
from .._client import OpenAI , AsyncOpenAI
13
+ from .._compat import model_copy
13
14
from .._models import FinalRequestOptions
14
15
from .._streaming import Stream , AsyncStream
15
16
from .._exceptions import OpenAIError
@@ -281,8 +282,10 @@ def _get_azure_ad_token(self) -> str | None:
281
282
return None
282
283
283
284
@override
284
- def _prepare_options (self , options : FinalRequestOptions ) -> None :
285
+ def _prepare_options (self , options : FinalRequestOptions ) -> FinalRequestOptions :
285
286
headers : dict [str , str | Omit ] = {** options .headers } if is_given (options .headers ) else {}
287
+
288
+ options = model_copy (options )
286
289
options .headers = headers
287
290
288
291
azure_ad_token = self ._get_azure_ad_token ()
@@ -296,7 +299,7 @@ def _prepare_options(self, options: FinalRequestOptions) -> None:
296
299
# should never be hit
297
300
raise ValueError ("Unable to handle auth" )
298
301
299
- return super (). _prepare_options ( options )
302
+ return options
300
303
301
304
302
305
class AsyncAzureOpenAI (BaseAzureClient [httpx .AsyncClient , AsyncStream [Any ]], AsyncOpenAI ):
@@ -524,8 +527,10 @@ async def _get_azure_ad_token(self) -> str | None:
524
527
return None
525
528
526
529
@override
527
- async def _prepare_options (self , options : FinalRequestOptions ) -> None :
530
+ async def _prepare_options (self , options : FinalRequestOptions ) -> FinalRequestOptions :
528
531
headers : dict [str , str | Omit ] = {** options .headers } if is_given (options .headers ) else {}
532
+
533
+ options = model_copy (options )
529
534
options .headers = headers
530
535
531
536
azure_ad_token = await self ._get_azure_ad_token ()
@@ -539,4 +544,4 @@ async def _prepare_options(self, options: FinalRequestOptions) -> None:
539
544
# should never be hit
540
545
raise ValueError ("Unable to handle auth" )
541
546
542
- return await super (). _prepare_options ( options )
547
+ return options
0 commit comments