Ë
    Fü´jb™  ã                  óú  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZmZ d dlZddlmZmZ ddlmZmZmZ dd	lmZ dd
lmZm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1m2Z2 e	g e3f   Z4e	g df   Z5ed   Z6e7e6e
e8   f   Z9 ejt                  d«      Z; ed¬«       G d„ d«      «       Z< ed¬«       G d„ d«      «       Z=d.d„Z>d/d„Z?d0d„Z@d1d„ZAd2d„ZB	 	 	 	 	 	 	 	 	 	 	 	 d3d „ZCd4d!„ZDdd"œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d#„ZE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d6d$„ZF	 	 	 	 	 	 d7d%„ZG	 	 	 	 	 	 d8d&„ZHd9d'„ZId9d(„ZJ G d)„ d*e«      ZK G d+„ d,e «      ZLg d-¢ZMy):é    )ÚannotationsN)ÚAnyÚLiteralÚMappingÚCallableÚOptionalÚ	AwaitableÚcast)ÚfieldÚreplaceÚ	dataclass)ÚSelfÚoverrideé   )ÚWorkloadIdentityÚX509WorkloadIdentity)Ú	NOT_GIVENÚTimeoutÚNotGiven)Úis_given)ÚOpenAIÚAsyncOpenAI)Únormalize_httpx_url)ÚFinalRequestOptions)Ú	_ProviderÚ_configure_provider)ÚOpenAIError)ÚDEFAULT_MAX_RETRIES)ÚDataResidency)ÚAwsCredentialsProviderÚbedrockÚ_BedrockProviderRuntimeÚ _parse_bedrock_endpoint_hostnamezstr | Awaitable[str])ÚbearerÚtoken_providerÚawsé    T)Úfrozenc                  óH   — e Zd ZU ded<   ded<   ded<    ed¬«      Zd	ed
<   y)Ú_LegacyRuntimeSignatureÚ_LegacyAuthModeÚmodeÚstrÚbase_urlú
str | NoneÚregionF©ÚreprÚobjectÚcredential_identityN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r4   © ó    úP/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/lib/bedrock.pyr*   r*   $   s#   … à
ÓØƒMØÓÙ"'¨UÔ"3Ð˜Ô3r:   r*   c                  ó  — e Zd ZU  ed¬«      Zded<    edd¬«      Zded<   ded<   d	ed
<   ded<    ed¬«      Zded<    ed¬«      Zded<    ed¬«      Z	ded<    edd¬«      Z
ded<   d	ed<    ed¬«      Zded<   d	ed<   y)Ú_LegacyBedrockStateFr1   r/   Úexplicit_api_key)r2   Úcompareú7BedrockTokenProvider | AsyncBedrockTokenProvider | Noner%   Ú
aws_regionÚboolÚregion_was_explicitÚaws_profileÚaws_access_key_idÚaws_secret_access_keyÚaws_session_tokenúAwsCredentialsProvider | NoneÚaws_credentials_providerÚuses_environment_bearerÚenvironment_bearer_tokenÚuses_region_derived_base_urlN)r5   r6   r7   r   r>   r8   r%   rE   rF   rG   rI   rK   r9   r:   r;   r=   r=   ,   s˜   … á#(¨eÔ#4Ð�jÓ4ÙNSÐY^ÐhmÔNn€NÐKÓnØÓØÓØÓÙ$)¨uÔ$5Ð�zÓ5Ù(-°5Ô(9Ð˜:Ó9Ù$)¨uÔ$5Ð�zÓ5Ù>CÈÐX]Ô>^ÐÐ;Ó^Ø!Ó!Ù+0°eÔ+<Ð˜jÓ<Ø"&Ô&r:   r=   c                óZ   — | j                   xs | j                  r| j                  ndxs dS )NÚ )r>   rJ   rK   )Ústates    r;   Ú_state_api_keyrP   <   s*   € Ø×!Ñ!ÒtÈ×HeÒHe e×&DÒ&DÐkmÒtÐrtÐtr:   c                ó¸   — 	 t        j                  | «      j                  }||v xs  t        d„ |j                  «       D «       «      S # t        t        f$ r Y yw xY w)NFc              3  óh   K  — | ]*  }|j                   t        j                  j                  u –— Œ, y ­w©N)ÚkindÚinspectÚ	ParameterÚVAR_KEYWORD)Ú.0Ú	parameters     r;   ú	<genexpr>z/_constructor_accepts_keyword.<locals>.<genexpr>F   s*   è ø€ ò %Ø<Eˆ	�‰œ'×+Ñ+×7Ñ7Ô7ñ%ùs   ‚02)rU   Ú	signatureÚ
parametersÚ	TypeErrorÚ
ValueErrorÚanyÚvalues)ÚconstructorÚnamer\   s      r;   Ú_constructor_accepts_keywordrc   @   sg   € ðÜ×&Ñ& {Ó3×>Ñ>ˆ
ð �:Ðò ¤ñ %ØIS×IZÑIZÓI\ô%ó "ð øô ”zÐ"ò Ùðús   ‚A ÁAÁAc                óÒ   — | xs@ t         j                  j                  d«      xs t         j                  j                  d«      }|� |j                  «       r|j                  «       S d S )NÚ
AWS_REGIONÚAWS_DEFAULT_REGION)ÚosÚenvironÚgetÚstrip)r0   Ú
configureds     r;   Ú_configured_regionrl   K   sQ   € ØÒ_œ2Ÿ:™:Ÿ>™>¨,Ó7Ò_¼2¿:¹:¿>¹>ÐJ^Ó;_€JØ!+Ð!7¸J×<LÑ<LÔ<Nˆ:×ÑÓÐXÐTXÐXr:   c                óî   — t        | t        «      rt        j                  j	                  d«      n| }|� t        |t
        «      r|j                  «       sy t        t        |«      j                  «      �d S dS )NÚAWS_BEDROCK_BASE_URLÚmantle)
Ú
isinstancer   rg   rh   ri   r-   rj   r#   r   Úhost)r.   rk   s     r;   Ú_legacy_endpointrr   P   sa   € Ü;EÀhÔPXÔ;Y”—‘—‘Ð 6Ô7Ð_g€JØÐœZ¨
´CÔ8À×AQÑAQÔASØÜ3Ô4GÈ
Ó4S×4XÑ4XÓYÐeˆ4ÐsÐksÐsr:   c                ó¸   — t        | t        «      r| j                  «       sd } | �yt        j                  j                  d«      }|d u xs |j                  «        S )NFrn   )rp   r-   rj   rg   rh   ri   )r.   Úenvironment_base_urls     r;   Ú_uses_region_derived_base_urlru   W   sT   € Ü�(œCÔ ¨¯©Ô)9ØˆØÐØäŸ:™:Ÿ>™>Ð*@ÓAÐØ 4Ð'ÒKÐ/C×/IÑ/IÓ/KÐ+KÐKr:   c                ó0   — t        d„ | ||||fD «       «      S )Nc              3  ó$   K  — | ]  }|d u–— Œ
 y ­wrS   r9   )rX   Úvalues     r;   rZ   z)_has_explicit_aws_auth.<locals>.<genexpr>i   s   è ø€ ò 	àð 	�TÔñ	ùs   ‚)r_   ©rD   rE   rF   rG   rI   s        r;   Ú_has_explicit_aws_authrz   a   s1   € ô ñ 	ð ØØ!ØØ$ð
ô	ó 	ð 	r:   c                 ó^   — t         j                  j                  d«      } | st        d«      ‚| S )NÚAWS_BEARER_TOKEN_BEDROCKzuCould not find credentials for Bedrock. Set `AWS_BEARER_TOKEN_BEDROCK` or configure the default AWS credential chain.)rg   rh   ri   r   )Útokens    r;   Ú_environment_bearer_tokenr~   u   s1   € Ü�J‰J�N‰NÐ5Ó6€EÙÜð$ó
ð 	
ð €Lr:   )rC   c        
        ó²  — t        t        t        | «      «      rt        d«      ‚| dk(  rt        d«      ‚| �|�t        d«      ‚t	        |||||¬«      }
| €|�|
rt        d«      ‚t
        j                  j                  d«      }| d u xr |d u xr |
 xr t        |«      }t        |«      }t        |«      }t        |t        «      r|j                  «       sd }n|€t        }n|}t        t!        |«      ||| �| n	|r|nt        ||||||¬«
      }t#        | |||	€t        |xr |j                  «       «      n|	|||||||r|nd |¬«      }||| xs
 |r|ndxs dfS )	NúQPass refreshable Bedrock credentials via `bedrock_token_provider`, not `api_key`.rN   z)The `api_key` argument must not be empty.ú•Bedrock authentication is ambiguous. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.ry   r|   )
Úendpointr0   r.   Úapi_keyr%   Úaccess_key_idÚsecret_access_keyÚsession_tokenÚprofileÚcredential_provider)r>   r%   rA   rC   rD   rE   rF   rG   rI   rJ   rK   rL   )Úcallabler
   r3   r   rz   rg   rh   ri   rB   rl   ru   rp   r-   rj   r   r!   rr   r=   )rƒ   r%   rA   rD   rE   rF   rG   rI   r.   rC   Úexplicit_aws_authÚenvironment_tokenrJ   Úresolved_regionrL   Úprovider_base_urlÚproviderrO   s                     r;   Ú_legacy_providerr�      sÂ  € ô ””V˜WÓ%Ô&ÜÐmÓnÐnØ�"‚}ÜÐEÓFÐFØÐ˜~Ð9ÜðGó
ð 	
ô
 /ØØ+Ø3Ø+Ø!9ôÐð 	Ð˜~Ð9Ñ?PÜðGó
ð 	
ô
 Ÿ
™
Ÿ™Ð'AÓBÐà�4ˆÒh˜N¨dÐ2ÒhÐ;LÐ7LÒhÔQUÐVgÓQhð ô )¨Ó4€OÜ#@ÀÓ#JÐ ô �(œCÔ ¨¯©Ô)9Ø ÑØ	Ð	Ü%Ñà$ÐäÜ!Ð"3Ó4ØØ"Ø"Ð.‘ÑI`Ñ4EÔfoØ%Ø'Ø/Ø'ØØ4ô€Hô  Ø Ø%Ø"à7JÐ7RŒD�Ò2 
× 0Ñ 0Ó 2Ô3ÐXkàØ+Ø3Ø+Ø!9Ø 7Ù6MÑ!2ÐSWØ%Aô€Eð  �U˜GÒcÑ=TÑ(9ÐZ\ÒcÐacÐcÐcr:   c       	   
     ó8  — t        | «       | j                  }
| j                  xs d}|
j                  d u xr |t	        |
«      k7  }t        |||||¬«      }|d uxs |d u}|r|rt        d«      ‚|�|n	|r|€|s|nd }|d uxs |d u}|d uxs |	d u}|s(|s&|s$t        | «       i | j                  | j                  fS |r|}|}d }d }d }d }d }n‹|rd }d }|}|}|}|}|}nz|
j                  }|
j                  }|
j                  r|
j                  xs
 t        «       }d }|
j                  }|
j                  }|
j                  }|
j                   }|
j"                  }|�|n| j$                  }|d uxs |
j&                  }t)        |	t*        «      xr |	j-                  «        }|€|�|s|s|	€|
j.                  sd }|�|€|
j&                  sd }|	�|	}n|
j.                  rd}n| j0                  }|||||||||dœ	}t3        | j4                  j6                  d«      r||d<   |d d fS )NrN   ry   r�   ©	rƒ   Úbedrock_token_providerrA   rD   rE   rF   rG   rI   r.   Ú_region_was_explicit)Ú!_synchronize_legacy_routing_stateÚ_bedrock_staterƒ   r%   rP   rz   r   Ú _refresh_legacy_provider_runtimeÚ_bedrock_providerr>   rJ   rK   r~   rD   rE   rF   rG   rI   rA   rC   rp   r-   rj   rL   r.   rc   Ú	__class__Ú__init__)Úclientrƒ   r%   rA   rD   rE   rF   rG   rI   r.   rO   Úcurrent_api_keyÚapi_key_was_mutatedÚaws_overrideÚexplicit_bearer_overrideÚeffective_api_keyÚbearer_overrideÚrouting_overrideÚnext_api_keyÚnext_token_providerÚnext_profileÚnext_access_key_idÚnext_secret_access_keyÚnext_session_tokenÚnext_credentials_providerÚnext_regionÚnext_region_was_explicitÚ restores_region_derived_base_urlÚnext_base_urlÚprovider_kwargss                                 r;   Ú_copy_configurationr®   Ñ   sË  € ô & fÔ-Ø×!Ñ!€EØ—n‘nÒ*¨€OØ×.Ñ.°$Ð6Òc¸?ÌnÐ]bÓNcÑ;cÐÜ)ØØ+Ø3Ø+Ø!9ô€Lð  '¨dÐ2ÒP°nÈDÐ6PÐÙ¡LÜðGó
ð 	
ð Ðñ 	ñ  >Ð#9Á,ñ àð ð (¨tÐ3ÒQ°~ÈTÐ7Q€Oà!¨Ð-ÒE°ÀÐ1EÐÙ¡<Ñ8HÜ(¨Ô0Ø�6×+Ñ+¨V×-BÑ-BÐBÐBáØ(ˆØ,ÐØˆØ!ÐØ!%ÐØ!ÐØ$(Ñ!Ù	ØˆØ"ÐØ"ˆØ.ÐØ!6ÐØ.ÐØ$<Ñ!à×-Ñ-ˆØ#×2Ñ2ÐØ×(Ò(Ø ×9Ñ9ÒXÔ=VÓ=XˆLØ"&ÐØ×(Ñ(ˆØ"×4Ñ4ÐØ!&×!<Ñ!<ÐØ"×4Ñ4ÐØ$)×$BÑ$BÐ!à *Ð 6‘*¸F×<MÑ<M€KØ)°Ð5ÒR¸×9RÑ9RÐÜ'1°(¼CÓ'@Ò'YÈÏÉÓIYÐEYÐ$à	Ð	!Ð%8Ð%DÙ(Ù0ØÐ!¨×)KÒ)KàˆØÐ :Ð#5¸e×>WÒ>WØˆàÐØ19‰Ø	×	+Ò	+Ø‰àŸ™ˆð  Ø"5Ø!Ø#Ø/Ø!7Ø/Ø$=Ø!ñ
*€Oô $ F×$4Ñ$4×$=Ñ$=Ð?UÔVØ2JˆÐ.Ñ/à˜D $Ð&Ð&r:   c                ó  — |\  }}t        |t        «      r7t        j                  |j	                  «       t
        ¬«      j                  «       n
t        |«      }t        |t        | j                  «      | j                  |¬«      S )N)Úkey)r,   r.   r0   r4   )rp   r-   ÚhashlibÚblake2sÚencodeÚ_LEGACY_SIGNATURE_KEYÚdigestÚidr*   r.   rA   )rš   Úconfigurationr,   Ú
credentialr4   s        r;   Ú_legacy_runtime_signaturer¹   ?  ss   € ð %Ñ€Dˆ*ô �j¤#Ô&ô 	�‰˜
×)Ñ)Ó+Ô1FÔG×NÑNÔPä�
‹^ð ô
 #ØÜ�V—_‘_Ó%Ø× Ñ Ø/ô	ð r:   c           
     óB  — |\  }}| j                   }|j                  r| j                  nd }|dk(  rIt        |t        «      r|st        d«      ‚t        t        | j                  «      || j                  |¬«      S |dk(  r6t        t        | j                  «      || j                  t        d|«      ¬«      S t        t        | j                  «      | j                  | j                  |j                  |j                  |j                  |j                  |j                  ¬«      S )Nr$   z0The Bedrock bearer credential must not be empty.)r‚   r0   r.   rƒ   r%   ÚAsyncBedrockTokenProvider)r‚   r0   r.   r%   )r‚   r0   r.   r‡   r„   r…   r†   rˆ   )r•   rC   rA   rp   r-   r   r!   rr   r.   r
   rD   rE   rF   rG   rI   )rš   r·   r,   r¸   rO   Úbearer_regions         r;   Ú_provider_for_legacy_clientr½   Q  s  € ð %Ñ€Dˆ*Ø×!Ñ!€EØ).×)BÒ)B�F×%Ò%È€MØˆxÒÜ˜*¤cÔ*±*ÜÐPÓQÐQÜÜ% f§o¡oÓ6Ø Ø—_‘_Øô	
ð 	
ð ÐÒÜÜ% f§o¡oÓ6Ø Ø—_‘_ÜÐ ;¸ZÓHô	
ð 	
ô Ü! &§/¡/Ó2Ø× Ñ Ø—‘Ø×!Ñ!Ø×-Ñ-Ø×5Ñ5Ø×-Ñ-Ø!×:Ñ:ô	ð 	r:   c                óº  — | j                   }t        | j                  «      |j                  k7  }| j                  |j                  k7  }|r#t        | j                  d¬«      | _        d| _        |rmt        | j                  | j                  | j                  d u¬«      | _        | j                  j                  r#| j                  �d| j                  › d�| _        y y y y )NF)rL   )rA   rC   zhttps://bedrock-mantle.z.api.aws/openai/v1)	Ú_bedrock_runtime_signaturer-   r.   rA   r0   r   r•   ru   rL   )rš   Úprevious_signatureÚbase_url_changedÚregion_changeds       r;   r”   r”   u  sÔ   € Ø×:Ñ:ÐÜ˜6Ÿ?™?Ó+Ð/A×/JÑ/JÑJÐØ×&Ñ&Ð*<×*CÑ*CÑC€NÙÜ '¨×(=Ñ(=Ð\aÔ bˆÔØ/4ˆÔ,ÙÜ 'Ø×!Ñ!Ø×(Ñ(Ø &× 1Ñ 1¸Ð =ô!
ˆÔð
 × Ñ ×=Ò=À&×BSÑBSÐB_Ø 7¸×8IÑ8IÐ7JÐJ\Ð]ˆF�Oð C`Ð=ð r:   c                óâ  — t        | «       | j                  «       }t        | |«      }|| j                  k(  ry t	        | |«      }|| _        || _        t        |«      | _        t        | j                  t        «      rc| j                  €W| j                  j                  �A| j                  j                  | _        t        | j                  | j                  ¬«      | _        t        | |«      | _        y )N©rA   )r”   Ú_legacy_auth_configurationr¹   r¿   r½   r—   Ú	_providerr   Ú_provider_runtimerp   r"   rA   r0   r   r•   )rš   r·   r[   rŽ   s       r;   r–   r–   †  sË   € Ü% fÔ-Ø×5Ñ5Ó7€MÜ)¨&°-Ó@€IØ�F×5Ñ5Ò5Øä*¨6°=ÓA€HØ'€FÔØ€FÔÜ2°8Ó<€FÔä�6×+Ñ+Ô-DÔEØ×ÑÐ%Ø×$Ñ$×+Ñ+Ð7à"×4Ñ4×;Ñ;ˆÔÜ '¨×(=Ñ(=È&×J[ÑJ[Ô \ˆÔÜ(AÀ&È-Ó(X€FÕ%r:   c                  óâ  ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   dddddddddddddeedddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Z	e
dd„«       Ze
dˆ fd„«       Ze
dddedddddddddddedededddddi dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       ZeZˆ xZS )ÚBedrockOpenAIzECompatibility client for Amazon Bedrock's OpenAI-compatible endpoint.r   r—   r=   r•   úBedrockTokenProvider | NoneÚ_bedrock_token_providerrB   ru   r*   r¿   r/   rA   NFT©rƒ   r’   rA   rD   rE   rF   rG   rI   ÚorganizationÚprojectÚwebhook_secretr.   Úwebsocket_base_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationÚ_enforce_credentialsrÆ   Ú_stater“   c               ó²  •— |�|€t        ||||||||||¬«
      \  }}}n,|j                  xs |j                  r|j                  ndxs d}t        ‰| �  ||	|
||||||||d¬«       || _        || _        t        d|j                  «      | _
        |j                  | _        t        | j                  j                  «      }t!        | j"                  t$        «      r| j"                  j&                  nd }|j(                  xs |xs	 |�|d   nd | _        t+        || j(                  ¬«      | _        |xs d| _        t/        | | j1                  «       «      | _        y )N©
rƒ   r%   rA   rD   rE   rF   rG   rI   r.   rC   rN   F©rŽ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rÊ   é   rÄ   ©r�   r>   rJ   rK   Úsuperr™   r—   r•   r
   r%   rË   rL   ru   r#   r.   rq   rp   rÇ   r"   r0   rA   r   rƒ   r¹   rÅ   r¿   ©Úselfrƒ   r’   rA   rD   rE   rF   rG   rI   rÍ   rÎ   rÏ   r.   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rÆ   rØ   r“   Úpublic_api_keyÚcanonical_endpointÚprovider_regionr˜   s                              €r;   r™   zBedrockOpenAI.__init__¥  s}  ø€ ð6 Ð  Ü0@ØØ5Ø%Ø'Ø"3Ø&;Ø"3Ø)AØ!Ø$8ô1Ñ-ˆI�v™~ð ×'Ñ'ò Ø7=×7UÒ7U�F×3Ò3Ð[]òàð ô 	‰ÑØØ%ØØ)Ø1ØØ#Ø+Ø'Ø#Ø(CØ!&ð 	ô 	
ð "+ˆÔØ$ˆÔÜ'+Ð,IÈ6×K`ÑK`Ó'aˆÔ$Ø-3×-PÑ-PˆÔ*Ü=¸d¿m¹m×>PÑ>PÓQÐä-7¸×8NÑ8NÔPgÔ-hˆD×"Ñ"×)Ò)Ðnrð 	ð ×ÑÒw ÒwÐN`ÐNlÐ5GÈÒ5JÐrvð 	Œô & f¸¿¹ÔIˆÔØ%Ò+¨ˆŒÜ*CÀDÈ$×JiÑJiÓJkÓ*lˆÕ'r:   c                óÄ   — | j                   �d| j                   fS | j                  j                  €"| j                  j                  s| j                  rd| j                  fS y©Nr%   r$   )r&   N©rË   r•   r>   rJ   rƒ   ©rà   s    r;   rÅ   z(BedrockOpenAI._legacy_auth_configurationò  óY   € Ø×'Ñ'Ð3Ø$ d×&BÑ&BÐCÐCà×Ñ×0Ñ0Ð<Ø×"Ñ"×:Ò:Ø�|Š|à˜dŸl™lÐ+Ð+Ør:   c                ó¢   — | j                   j                  d u xr6 | j                   xr' | j                  d u xr | j                   j                   S rS   ©r•   r>   rƒ   rË   rJ   rç   s    r;   Ú_uses_aws_authzBedrockOpenAI._uses_aws_authý  óY   € à×Ñ×0Ñ0°DÐ8ò @Ø—L‘LÐ ò@à×,Ñ,°Ð4ò@ð ×'Ñ'×?Ñ?Ð?ð		
r:   c                ó^  — | j                   j                  rC| j                   j                  xs d}| j                  r| j                  |k7  r| j                  S |S | j                  �=t        t        | j	                  «       «      }t        |t        «      r|st        d«      ‚|S | j                  S ©NrN   zHExpected `bedrock_token_provider` argument to return a non-empty string.)
r•   rJ   rK   rƒ   rË   r
   r3   rp   r-   r^   ©rà   Úcapturedr}   s      r;   Ú_refresh_api_keyzBedrockOpenAI._refresh_api_key  s�   € à×Ñ×6Ò6Ø×*Ñ*×CÑCÒIÀrˆHØ#'§<¢<°D·L±LÀHÒ4L�4—<‘<ÐZÐRZÐZØ×'Ñ'Ð3Üœ ×!=Ñ!=Ó!?Ó@ˆEÜ˜e¤SÔ)±Ü Ð!kÓlÐlØˆLØ�|‰|Ðr:   c                ó8   •— t        | «       t        ‰| �	  |«      S rS   ©r–   rÞ   Ú_prepare_options©rà   Úoptionsr˜   s     €r;   rô   zBedrockOpenAI._prepare_options  s   ø€ ä(¨Ô.Ü‰wÑ'¨Ó0Ð0r:   ©rƒ   Úadmin_api_keyÚworkload_identityrŽ   r’   rA   rD   rE   rF   rG   rI   rÍ   rÎ   rÏ   rÐ   r.   Údata_residencyrÑ   rÕ   rÒ   rÓ   Úset_default_headersrÔ   Úset_default_queryr×   Ú_extra_kwargsc               ór  — |�t        d«      ‚t        |t        «      rd n|}t        |«      rt        d«      ‚t        |t        «      st        d«      ‚|€|�t        d«      ‚|�|�t	        d«      ‚|�|�t	        d«      ‚| j
                  }|�i |¥|¥}n|�|}| j                  }|�i |¥|¥}n|�|}t        | ||||||	|
||¬«
      \  }}}i |¥|�|n| j                  |�|n| j                  |�|n| j                  |�|n| j                  t        |t        «      r| j                  n||xs | j                  t        |«      r|n| j                  |||€dn|d	œ
¥|¥} |�,t!        | j"                  j$                  d
«      r|| d
<   || d<   �n’|��8| j'                  | j(                  j*                  xs | j(                  j,                  | j(                  j.                  | j(                  j0                  | j(                  j2                  | j(                  j4                  | j(                  j6                  | j(                  j8                  | j(                  j:                  | j(                  j<                  rdn| j>                  ¬«	       | jA                  «       D �!�"ci c](  \  }!}"t!        | j"                  j$                  |!«      r|!|"“Œ* } }!}"nW| j"                  tB        urE| jA                  «       D �!�"ci c]*  \  }!}"|"€ t!        | j"                  j$                  |!«      r|!|"“Œ, } }!}" | j"                  di | ¤ŽS c c}"}!w c c}"}!w )Nú4`data_residency` is only supported by OpenAI clientsr€   zHConfigure `provider` on `OpenAI`, not on `BedrockOpenAI.with_options()`.zRBedrockOpenAI only supports Bedrock bearer token or AWS credential authentication.úPThe `default_headers` and `set_default_headers` arguments are mutually exclusiveúLThe `default_query` and `set_default_query` arguments are mutually exclusive©	rƒ   r%   rA   rD   rE   rF   rG   rI   r.   T©
rÍ   rÎ   rÏ   rÐ   rÑ   rÕ   rÒ   rÓ   rÔ   r×   rÆ   rØ   rN   r‘   r9   )"r   rp   r   r‰   r^   Ú_custom_headersÚ_custom_queryr®   rÍ   rÎ   rÏ   rÐ   rÑ   Ú_clientr   rÒ   rc   r˜   r™   Úupdater•   r>   rK   r%   rA   rD   rE   rF   rG   rI   rL   r.   ÚitemsrÉ   ©#rà   rƒ   rø   rù   rŽ   r’   rA   rD   rE   rF   rG   rI   rÍ   rÎ   rÏ   rÐ   r.   rú   rÑ   rÕ   rÒ   rÓ   rû   rÔ   rü   r×   rý   ÚheadersÚparamsr­   Úinherited_providerÚinherited_stateÚconstructor_kwargsrb   rx   s#                                      r;   ÚcopyzBedrockOpenAI.copy  so  € ð> Ð%ÜÐTÓUÐUÜ% h´Ô9‘4¸xˆÜ�GÔÜÐqÓrÐrÜ˜(¤HÔ-ÜÐhÓiÐiØÐ$Ð(9Ð(EÜÐrÓsÐsØÐ&Ð+>Ð+JÜÐoÓpÐpØÐ$Ð):Ð)FÜÐkÓlÐlà×&Ñ&ˆØÐ&Ø4˜Ð4 OÐ4‰GØ Ð,Ø)ˆGØ×#Ñ#ˆØÐ$Ø0˜Ð0 -Ð0‰FØÐ*Ø&ˆFä?RØØØ1Ø!Ø#Ø/Ø"7Ø/Ø%=Øô@
Ñ<ˆÐ+¨_ð.
Øð.
à,8Ð,D™LÈ$×J[ÑJ[Ø")Ð"5‘w¸4¿<¹<Ø0>Ð0J™nÐPT×PcÑPcØ8JÐ8VÑ"4Ð\`×\sÑ\sÜ'1°'¼8Ô'D�t—|’|È'Ø&Ò6¨$¯,©,Ü*2°;Ô*?™;ÀT×EUÑEUØ&Ø#Ø,@Ð,H¡DÐNbò.
ð ð.
Ðð Ð)Ô.JÈ4Ï>É>×KbÑKbÐdoÔ.pØ.@Ð˜{Ñ+Ø+:Ð˜xÓ(ØÑ+Ø×%Ñ%Ø×+Ñ+×<Ñ<ÒlÀ×@SÑ@S×@lÑ@lØ'+×':Ñ':×'IÑ'IØ×.Ñ.×9Ñ9Ø ×/Ñ/×;Ñ;Ø"&×"5Ñ"5×"GÑ"GØ&*×&9Ñ&9×&OÑ&OØ"&×"5Ñ"5×"GÑ"GØ)-×)<Ñ)<×)UÑ)UØ#×2Ñ2×OÒO™ÐUY×UbÑUbð &ô 
ð $6×#;Ñ#;Ó#=÷"á�D˜%Ü/°·±×0GÑ0GÈÔNð �e‘ð"Ðò "ð
 �^‰^¤=Ñ0ð $6×#;Ñ#;Ó#=÷"á�D˜%ØÐ$Ô(DÀTÇ^Á^×E\ÑE\Ð^bÔ(cð �e‘ð"Ðñ "ð
 ˆt�~‰~Ñ3Ð 2Ñ3Ð3ùó"ùó"ó   Ê-L-Ë)/L3)0rƒ   r/   r’   rÊ   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   rÍ   r/   rÎ   r/   rÏ   r/   r.   ústr | httpx2.URL | NonerÐ   r  rÑ   ú!float | Timeout | None | NotGivenrÒ   ÚintrÓ   úMapping[str, str] | NonerÔ   úMapping[str, object] | NonerÕ   úhttpx2.Client | NonerÖ   rB   r×   rB   rÆ   ú_Provider | NonerØ   ú_LegacyBedrockState | Noner“   úbool | NoneÚreturnÚNone©r  Ú_LegacyAuthConfiguration©r  rB   ©r  r-   ©rö   r   r  r   )6rƒ   z!str | BedrockTokenProvider | Nonerø   r/   rù   ú.WorkloadIdentity | X509WorkloadIdentity | NonerŽ   ú_Provider | None | NotGivenr’   rÊ   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   rÍ   r/   rÎ   r/   rÏ   r/   rÐ   r  r.   ú"str | httpx2.URL | None | NotGivenrú   úDataResidency | NonerÑ   r  rÕ   r  rÒ   úint | NotGivenrÓ   r  rû   r  rÔ   r  rü   r  r×   r  rý   úMapping[str, Any]r  r   ©r5   r6   r7   Ú__doc__r8   r   r   r™   rÅ   rë   r   rñ   rô   r  Úwith_optionsÚ__classcell__©r˜   s   @r;   rÉ   rÉ   ›  se  ø… ÙOà Ó Ø'Ó'Ø8Ó8Ø#'Ó'Ø 7Ó7ØÓð
 #Ø>BØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø,0Ø6:Ø5>Ø.Ø48Ø59Ø,0Ø,1Ø%)Ø&*Ø-1Ø,0ñ3Kmð ðKmð !<ð	Kmð
 ðKmð  ðKmð &ðKmð  *ðKmð &ðKmð #@ðKmð !ðKmð ðKmð #ðKmð *ðKmð 4ðKmð  3ð!Kmð" ð#Kmð$ 2ð%Kmð& 3ð'Kmð( *ð)Kmð* &*ð+Kmð, #ð-Kmð. $ð/Kmð0 +ð1Kmð2 *ð3Kmð4 
õ5KmóZ	ó
ð ò	ó ð	ð ô1ó ð1ð ð 6:Ø$(ØLPØ09Ø>BØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø6:Ø7@Ø/3Ø5>Ø,0Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ9k4ð 3ðk4ð "ð	k4ð
 Jðk4ð .ðk4ð !<ðk4ð ðk4ð  ðk4ð &ðk4ð  *ðk4ð &ðk4ð #@ðk4ð !ðk4ð ðk4ð  #ð!k4ð" 4ð#k4ð$ 5ð%k4ð& -ð'k4ð( 3ð)k4ð* *ð+k4ð, $ð-k4ð. 2ð/k4ð0 6ð1k4ð2 3ð3k4ð4 7ð5k4ð6 *ð7k4ð8 )ð9k4ð: 
ò;k4ó ðk4ðZ „Lr:   rÉ   c                  óâ  ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   dddddddddddddeedddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Z	e
dd„«       Ze
dˆ fd„«       Ze
dddedddddddddddedededddddi dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       ZeZˆ xZS )ÚAsyncBedrockOpenAIzKAsync compatibility client for Amazon Bedrock's OpenAI-compatible endpoint.r   r—   r=   r•   ú AsyncBedrockTokenProvider | NonerË   rB   ru   r*   r¿   r/   rA   NFTrÌ   c               ó²  •— |�|€t        ||||||||||¬«
      \  }}}n,|j                  xs |j                  r|j                  ndxs d}t        ‰| �  ||	|
||||||||d¬«       || _        || _        t        d|j                  «      | _
        |j                  | _        t        | j                  j                  «      }t!        | j"                  t$        «      r| j"                  j&                  nd }|j(                  xs |xs	 |�|d   nd | _        t+        || j(                  ¬«      | _        |xs d| _        t/        | | j1                  «       «      | _        y )NrÚ   rN   FrÛ   r.  rÜ   rÄ   rÝ   rß   s                              €r;   r™   zAsyncBedrockOpenAI.__init__‘  s~  ø€ ð6 Ð  Ü0@ØØ5Ø%Ø'Ø"3Ø&;Ø"3Ø)AØ!Ø$8ô1Ñ-ˆI�v™~ð ×'Ñ'ò Ø7=×7UÒ7U�F×3Ò3Ð[]òàð ô 	‰ÑØØ%ØØ)Ø1ØØ#Ø+Ø'Ø#Ø(CØ!&ð 	ô 	
ð "+ˆÔØ$ˆÔÜ'+Ð,NÐPV×PeÑPeÓ'fˆÔ$Ø-3×-PÑ-PˆÔ*Ü=¸d¿m¹m×>PÑ>PÓQÐä-7¸×8NÑ8NÔPgÔ-hˆD×"Ñ"×)Ò)Ðnrð 	ð ×ÑÒw ÒwÐN`ÐNlÐ5GÈÒ5JÐrvð 	Œô & f¸¿¹ÔIˆÔØ%Ò+¨ˆŒÜ*CÀDÈ$×JiÑJiÓJkÓ*lˆÕ'r:   c                óÄ   — | j                   �d| j                   fS | j                  j                  €"| j                  j                  s| j                  rd| j                  fS yrå   ræ   rç   s    r;   rÅ   z-AsyncBedrockOpenAI._legacy_auth_configurationÞ  rè   r:   c                ó¢   — | j                   j                  d u xr6 | j                   xr' | j                  d u xr | j                   j                   S rS   rê   rç   s    r;   rë   z!AsyncBedrockOpenAI._uses_aws_authé  rì   r:   c              ƒ  ó¨  K  — | j                   j                  rC| j                   j                  xs d}| j                  r| j                  |k7  r| j                  S |S | j                  �\t        t        | j	                  «       «      }t        j                  |«      r
|ƒ d {  –—† }t        |t        «      r|st        d«      ‚|S | j                  S 7 Œ/­wrî   )r•   rJ   rK   rƒ   rË   r
   r3   rU   Úisawaitablerp   r-   r^   rï   s      r;   rñ   z#AsyncBedrockOpenAI._refresh_api_keyñ  s®   è ø€ à×Ñ×6Ò6Ø×*Ñ*×CÑCÒIÀrˆHØ#'§<¢<°D·L±LÀHÒ4L�4—<‘<ÐZÐRZÐZØ×'Ñ'Ð3Üœ ×!=Ñ!=Ó!?Ó@ˆEÜ×"Ñ" 5Ô)Ø#Ÿ�Ü˜e¤SÔ)±Ü Ð!kÓlÐlØˆLØ�|‰|Ðð	 $ús   ‚BCÂ CÂ!0Cc              ƒ  óT   •K  — t        | «       t        ‰| �	  |«      ƒ d {  –—† S 7 Œ­wrS   ró   rõ   s     €r;   rô   z#AsyncBedrockOpenAI._prepare_optionsÿ  s%   øè ø€ ä(¨Ô.Ü‘WÑ-¨gÓ6×6Ð6Ð6ús   ƒ(¡&¢(r÷   c               ór  — |�t        d«      ‚t        |t        «      rd n|}t        |«      rt        d«      ‚t        |t        «      st        d«      ‚|€|�t        d«      ‚|�|�t	        d«      ‚|�|�t	        d«      ‚| j
                  }|�i |¥|¥}n|�|}| j                  }|�i |¥|¥}n|�|}t        | ||||||	|
||¬«
      \  }}}i |¥|�|n| j                  |�|n| j                  |�|n| j                  |�|n| j                  t        |t        «      r| j                  n||xs | j                  t        |«      r|n| j                  |||€dn|d	œ
¥|¥} |�,t!        | j"                  j$                  d
«      r|| d
<   || d<   �n’|��8| j'                  | j(                  j*                  xs | j(                  j,                  | j(                  j.                  | j(                  j0                  | j(                  j2                  | j(                  j4                  | j(                  j6                  | j(                  j8                  | j(                  j:                  | j(                  j<                  rdn| j>                  ¬«	       | jA                  «       D �!�"ci c](  \  }!}"t!        | j"                  j$                  |!«      r|!|"“Œ* } }!}"nW| j"                  tB        urE| jA                  «       D �!�"ci c]*  \  }!}"|"€ t!        | j"                  j$                  |!«      r|!|"“Œ, } }!}" | j"                  di | ¤ŽS c c}"}!w c c}"}!w )Nrÿ   r€   zRConfigure `provider` on `AsyncOpenAI`, not on `AsyncBedrockOpenAI.with_options()`.zWAsyncBedrockOpenAI only supports Bedrock bearer token or AWS credential authentication.r   r  r  Tr  rÆ   rØ   rN   r‘   r9   )"r   rp   r   r‰   r^   r  r  r®   rÍ   rÎ   rÏ   rÐ   rÑ   r  r   rÒ   rc   r˜   r™   r  r•   r>   rK   r%   rA   rD   rE   rF   rG   rI   rL   r.   r  r-  r	  s#                                      r;   r  zAsyncBedrockOpenAI.copy  sp  € ð> Ð%ÜÐTÓUÐUÜ% h´Ô9‘4¸xˆÜ�GÔÜÐqÓrÐrÜ˜(¤HÔ-ÜÐrÓsÐsØÐ$Ð(9Ð(EÜÐwÓxÐxØÐ&Ð+>Ð+JÜÐoÓpÐpØÐ$Ð):Ð)FÜÐkÓlÐlà×&Ñ&ˆØÐ&Ø4˜Ð4 OÐ4‰GØ Ð,Ø)ˆGØ×#Ñ#ˆØÐ$Ø0˜Ð0 -Ð0‰FØÐ*Ø&ˆFä?RØØØ1Ø!Ø#Ø/Ø"7Ø/Ø%=Øô@
Ñ<ˆÐ+¨_ð.
Øð.
à,8Ð,D™LÈ$×J[ÑJ[Ø")Ð"5‘w¸4¿<¹<Ø0>Ð0J™nÐPT×PcÑPcØ8JÐ8VÑ"4Ð\`×\sÑ\sÜ'1°'¼8Ô'D�t—|’|È'Ø&Ò6¨$¯,©,Ü*2°;Ô*?™;ÀT×EUÑEUØ&Ø#Ø,@Ð,H¡DÐNbò.
ð ð.
Ðð Ð)Ô.JÈ4Ï>É>×KbÑKbÐdoÔ.pØ.@Ð˜{Ñ+Ø+:Ð˜xÓ(ØÑ+Ø×%Ñ%Ø×+Ñ+×<Ñ<ÒlÀ×@SÑ@S×@lÑ@lØ'+×':Ñ':×'IÑ'IØ×.Ñ.×9Ñ9Ø ×/Ñ/×;Ñ;Ø"&×"5Ñ"5×"GÑ"GØ&*×&9Ñ&9×&OÑ&OØ"&×"5Ñ"5×"GÑ"GØ)-×)<Ñ)<×)UÑ)UØ#×2Ñ2×OÒO™ÐUY×UbÑUbð &ô 
ð $6×#;Ñ#;Ó#=÷"á�D˜%Ü/°·±×0GÑ0GÈÔNð �e‘ð"Ðò "ð
 �^‰^Ô#5Ñ5ð $6×#;Ñ#;Ó#=÷"á�D˜%ØÐ$Ô(DÀTÇ^Á^×E\ÑE\Ð^bÔ(cð �e‘ð"Ðñ "ð
 ˆt�~‰~Ñ3Ð 2Ñ3Ð3ùó"ùó"r  )0rƒ   r/   r’   r.  rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   rÍ   r/   rÎ   r/   rÏ   r/   r.   r  rÐ   r  rÑ   r  rÒ   r  rÓ   r  rÔ   r  rÕ   úhttpx2.AsyncClient | NonerÖ   rB   r×   rB   rÆ   r  rØ   r  r“   r  r  r  r  r  r  r   )6rƒ   z&str | AsyncBedrockTokenProvider | Nonerø   r/   rù   r!  rŽ   r"  r’   r.  rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   rÍ   r/   rÎ   r/   rÏ   r/   rÐ   r  r.   r#  rú   r$  rÑ   r  rÕ   r6  rÒ   r%  rÓ   r  rû   r  rÔ   r  rü   r  r×   r  rý   r&  r  r   r'  r+  s   @r;   r-  r-  ‡  sg  ø… ÙUà Ó Ø'Ó'Ø=Ó=Ø#'Ó'Ø 7Ó7ØÓð
 #ØCGØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø,0Ø6:Ø5>Ø.Ø48Ø59Ø15Ø,1Ø%)Ø&*Ø-1Ø,0ñ3Kmð ðKmð !Að	Kmð
 ðKmð  ðKmð &ðKmð  *ðKmð &ðKmð #@ðKmð !ðKmð ðKmð #ðKmð *ðKmð 4ðKmð  3ð!Kmð" ð#Kmð$ 2ð%Kmð& 3ð'Kmð( /ð)Kmð* &*ð+Kmð, #ð-Kmð. $ð/Kmð0 +ð1Kmð2 *ð3Kmð4 
õ5KmóZ	ó
ð òó ðð ô7ó ð7ð ð ;?Ø$(ØLPØ09ØCGØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø6:Ø7@Ø/3Ø5>Ø15Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ9k4ð 8ðk4ð "ð	k4ð
 Jðk4ð .ðk4ð !Aðk4ð ðk4ð  ðk4ð &ðk4ð  *ðk4ð &ðk4ð #@ðk4ð !ðk4ð ðk4ð  #ð!k4ð" 4ð#k4ð$ 5ð%k4ð& -ð'k4ð( 3ð)k4ð* /ð+k4ð, $ð-k4ð. 2ð/k4ð0 6ð1k4ð2 3ð3k4ð4 7ð5k4ð6 *ð7k4ð8 )ð9k4ð: 
ò;k4ó ðk4ðZ „Lr:   r-  )rÉ   r-  ÚBedrockTokenProviderr»   r    )rO   r=   r  r-   )ra   zCallable[..., object]rb   r-   r  rB   )r0   r/   r  r/   )r.   r#  r  zLiteral['mantle'] | None)r.   r  r  rB   )rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r  rB   r  )rƒ   r/   r%   r@   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r.   r  rC   r  r  z*tuple[_Provider, _LegacyBedrockState, str])rš   ú"BedrockOpenAI | AsyncBedrockOpenAIrƒ   r/   r%   r@   rA   r/   rD   r/   rE   r/   rF   r/   rG   r/   rI   rH   r.   r  r  zFtuple[dict[str, object], _Provider | None, _LegacyBedrockState | None])rš   r8  r·   r  r  r*   )rš   r8  r·   r  r  r   )rš   r8  r  r  )NÚ
__future__r   rg   r±   rU   Útypingr   r   r   r   r   r	   r
   Údataclassesr   r   r   Útyping_extensionsr   r   Úhttpx2Úauthr   r   Ú_typesr   r   r   Ú_utilsr   r  r   r   Ú_httpx2r   Ú_modelsr   rÆ   r   r   Ú_exceptionsr   Ú_base_clientr   Ú_data_residencyr   Úproviders.bedrockr    r!   r"   r#   r-   r7  r»   r+   Útupler3   r  Úurandomr´   r*   r=   rP   rc   rl   rr   ru   rz   r~   r�   r®   r¹   r½   r”   r–   rÉ   r-  Ú__all__r9   r:   r;   ú<module>rJ     sÀ  ðÝ "ã 	Û Û ß M× MÑ Mß 1Ñ 1ß ,ã ç 9ß 1Ñ 1Ý ß )Ý )Ý )ß 6Ý %Ý .Ý +÷ó ð    C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð ØÐ;Ñ<€Ø  °(¸6Ñ2BÐ!BÑCÐ Ø"˜Ÿ
™
 2›Ð ñ �$Ô÷4ð 4ó ð4ñ �$Ô÷'ð 'ó ð'óuóóYó
tóLðàðð "ðð &ð	ð
 "ðð <ðð 
óó(ð* (,ñOdàðOdð LðOdð ð	Odð
 ðOdð "ðOdð &ðOdð "ðOdð <ðOdð &ðOdð %ðOdð 0óOdðdk'Ø.ðk'ð ðk'ð Lð	k'ð
 ðk'ð ðk'ð "ðk'ð &ðk'ð "ðk'ð <ðk'ð &ðk'ð Lók'ð\Ø.ðà+ðð óð$!Ø.ð!à+ð!ð ó!óH^ó"Yô*i�Fô iôXk˜ô kò\�r:   