Ë
    @²Xj›’  ã                  óÚ  — d dl mZ d dl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 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$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z- e
g e.f   Z/e
g df   Z0ed   Z1e2e1ee3   f   Z4 ejj                  d«      Z6 ed¬«       G d„ d«      «       Z7 ed¬«       G d„ d«      «       Z8d+d„Z9d,d„Z:d-d„Z;d.d„Z<	 	 	 	 	 	 	 	 	 	 	 	 d/d„Z=d0d„Z>ddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d1d „Z?	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2d!„Z@	 	 	 	 	 	 d3d"„ZA	 	 	 	 	 	 d4d#„ZBd5d$„ZCd5d%„ZD G d&„ d'e«      ZE G d(„ d)e «      ZFg d*¢ZGy)6é    )ÚannotationsN)ÚAnyÚLiteralÚMappingÚCallableÚOptionalÚ	AwaitableÚcast)ÚfieldÚreplaceÚ	dataclass)ÚSelfÚoverrideé   )ÚWorkloadIdentity)Ú	NOT_GIVENÚTimeoutÚNotGiven)Úis_given)ÚOpenAIÚAsyncOpenAI)ÚFinalRequestOptions)Ú	_ProviderÚ_configure_provider)ÚOpenAIError)ÚDEFAULT_MAX_RETRIES)ÚAwsCredentialsProviderÚbedrockÚ_BedrockProviderRuntimez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   r0   © ó    úX/var/www/html/content_generation/venv/lib/python3.12/site-packages/openai/lib/bedrock.pyr&   r&      s#   … à
ÓØƒMØÓÙ"'¨UÔ"3Ð˜Ô3r6   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)Ú_LegacyBedrockStateFr-   r+   Úexplicit_api_key)r.   Ú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)r1   r2   r3   r   r:   r4   r!   rA   rB   rC   rE   rG   r5   r6   r7   r9   r9   &   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Ó<Ø"&Ô&r6   r9   c                óZ   — | j                   xs | j                  r| j                  ndxs dS )NÚ )r:   rF   rG   )Ústates    r7   Ú_state_api_keyrL   6   s*   € Ø×!Ñ!ÒtÈ×HeÒHe e×&DÒ&DÐkmÒtÐrtÐtr6   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     r7   Ú	<genexpr>z/_constructor_accepts_keyword.<locals>.<genexpr>@   s*   è ø€ ð %ÙI\¸Iˆ	�‰œ'×+Ñ+×7Ñ7Ô7ÑI\ùs   ‚02)rQ   Ú	signatureÚ
parametersÚ	TypeErrorÚ
ValueErrorÚanyÚvalues)ÚconstructorÚnamerX   s      r7   Ú_constructor_accepts_keywordr_   :   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)r,   Ú
configureds     r7   Ú_configured_regionrh   E   sQ   € ØÒ_œ2Ÿ:™:Ÿ>™>¨,Ó7Ò_¼2¿:¹:¿>¹>ÐJ^Ó;_€JØ!+Ð!7¸J×<LÑ<LÔ<Nˆ:×ÑÓÐXÐTXÐXr6   c                ó¸   — t        | t        «      r| j                  «       sd } | �yt        j                  j                  d«      }|d u xs |j                  «        S )NFÚAWS_BEDROCK_BASE_URL)Ú
isinstancer)   rf   rc   rd   re   )r*   Úenvironment_base_urls     r7   Ú_uses_region_derived_base_urlrm   J   sT   € Ü�(œCÔ ¨¯©Ô)9ØˆØÐØäŸ:™:Ÿ>™>Ð*@ÓAÐØ 4Ð'ÒKÐ/C×/IÑ/IÓ/KÐ+KÐKr6   c                ó0   — t        d„ | ||||fD «       «      S )Nc              3  ó$   K  — | ]  }|d u–— Œ
 y ­wrO   r5   )rT   Úvalues     r7   rV   z)_has_explicit_aws_auth.<locals>.<genexpr>\   s!   è ø€ ð 	ñ
ˆEð 	�TÔñ
ùs   ‚)r[   ©r@   rA   rB   rC   rE   s        r7   Ú_has_explicit_aws_authrr   T   s1   € ô ñ 	ð ØØ!ØØ$ñ
ó	ó 	ð 	r6   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.)rc   rd   re   r   )Útokens    r7   Ú_environment_bearer_tokenrv   h   s1   € Ü�J‰J�N‰NÐ5Ó6€EÙÜð$ó
ð 	
ð €Lr6   )r?   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        ||| �| 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`.rJ   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.rq   rt   )	r,   r*   Úapi_keyr!   Úaccess_key_idÚsecret_access_keyÚsession_tokenÚprofileÚcredential_provider)r:   r!   r=   r?   r@   rA   rB   rC   rE   rF   rG   rH   )Úcallabler
   r/   r   rr   rc   rd   re   r>   rh   rm   rk   r)   rf   r   r   r9   )rz   r!   r=   r@   rA   rB   rC   rE   r*   r?   Úexplicit_aws_authÚenvironment_tokenrF   Úresolved_regionrH   Úprovider_base_urlÚproviderrK   s                     r7   Ú_legacy_providerr†   r   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Ø ÑØ	Ð	Ü%Ñà$ÐäØØ"Ø"Ð.‘Ñ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Ðcr6   c       	   
     óÂ  — 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&                  }|�|€|
j&                  sd }|	�|	}n|
j(                  rd}n| j*                  }|||||||||dœ	}t-        | j.                  j0                  d«      r||d<   |d d fS )NrJ   rq   ry   ©	rz   Úbedrock_token_providerr=   r@   rA   rB   rC   rE   r*   Ú_region_was_explicit)Ú!_synchronize_legacy_routing_stateÚ_bedrock_staterz   r!   rL   rr   r   Ú _refresh_legacy_provider_runtimeÚ_bedrock_providerr:   rF   rG   rv   r@   rA   rB   rC   rE   r=   r?   rH   r*   r_   Ú	__class__Ú__init__)Úclientrz   r!   r=   r@   rA   rB   rC   rE   r*   rK   Ú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Únext_base_urlÚprovider_kwargss                                r7   Ú_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ÐØÐ :Ð#5¸e×>WÒ>WØˆàÐØ08‰Ø	×	+Ò	+Ø‰àŸ™ˆð  Ø"5Ø!Ø#Ø/Ø!7Ø/Ø$=Ø!ñ
*€Oô $ F×$4Ñ$4×$=Ñ$=Ð?UÔVØ2JˆÐ.Ñ/à˜D $Ð&Ð&r6   c                ó  — |\  }}t        |t        «      r7t        j                  |j	                  «       t
        ¬«      j                  «       n
t        |«      }t        |t        | j                  «      | j                  |¬«      S )N)Úkey)r(   r*   r,   r0   )rk   r)   ÚhashlibÚblake2sÚencodeÚ_LEGACY_SIGNATURE_KEYÚdigestÚidr&   r*   r=   )r‘   Úconfigurationr(   Ú
credentialr0   s        r7   Ú_legacy_runtime_signaturer¯   )  ss   € ð %Ñ€Dˆ*ô �j¤#Ô&ô 	�‰˜
×)Ñ)Ó+Ô1FÔG×NÑNÔPä�
‹^ð ô
 #ØÜ�V—_‘_Ó%Ø× Ñ Ø/ô	ð r6   c           	     ó¾  — |\  }}|dk(  r?t        |t        «      r|st        d«      ‚t        | j                  | j
                  |¬«      S |dk(  r,t        | j                  | j
                  t        d|«      ¬«      S | j                  }t        | j                  | j
                  |j                  |j                  |j                  |j                  |j                  ¬«      S )Nr    z0The Bedrock bearer credential must not be empty.)r,   r*   rz   r!   ÚAsyncBedrockTokenProvider)r,   r*   r!   )r,   r*   r~   r{   r|   r}   r   )rk   r)   r   r   r=   r*   r
   rŒ   r@   rA   rB   rC   rE   )r‘   r­   r(   r®   rK   s        r7   Ú_provider_for_legacy_clientr²   ;  sØ   € ð %Ñ€Dˆ*ØˆxÒÜ˜*¤cÔ*±*ÜÐPÓQÐQÜØ×$Ñ$Ø—_‘_Øô
ð 	
ð
 ÐÒÜØ×$Ñ$Ø—_‘_ÜÐ ;¸ZÓHô
ð 	
ð ×!Ñ!€EÜØ× Ñ Ø—‘Ø×!Ñ!Ø×-Ñ-Ø×5Ñ5Ø×-Ñ-Ø!×:Ñ:ôð r6   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)rH   )r=   r?   zhttps://bedrock-mantle.z.api.aws/openai/v1)	Ú_bedrock_runtime_signaturer)   r*   r=   r,   r   rŒ   rm   rH   )r‘   Úprevious_signatureÚbase_url_changedÚregion_changeds       r7   r‹   r‹   [  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`Ð=ð r6   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©r=   )r‹   Ú_legacy_auth_configurationr¯   r´   r²   rŽ   Ú	_providerr   Ú_provider_runtimerk   r   r=   r,   r   rŒ   )r‘   r­   rW   r…   s       r7   r�   r�   l  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Õ%r6   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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Ž   r9   rŒ   úBedrockTokenProvider | NoneÚ_bedrock_token_providerr>   rm   r&   r´   r+   r=   NFT©rz   r‰   r=   r@   rA   rB   rC   rE   Ú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                  d| j                  j                   «      }t#        | j$                  t&        «      r| j$                  j(                  nd }|j*                  xs |xs |�|j-                  d«      nd | _        t/        || j*                  ¬«      | _        |xs d| _        t3        | | j5                  «       «      | _        y )	N©
rz   r!   r=   r@   rA   rB   rC   rE   r*   r?   rJ   F©r…   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   r¿   ú&bedrock-mantle\.([a-z0-9-]+)\.api\.awsé   r¹   ©r†   r:   rF   rG   Úsuperr�   rŽ   rŒ   r
   r!   rÀ   rH   rm   ÚreÚ	fullmatchr*   Úhostrk   r¼   r   r,   r=   Úgroupr   rz   r¯   rº   r´   ©Úselfrz   r‰   r=   r@   rA   rB   rC   rE   rÂ   rÃ   rÄ   r*   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   r»   rÍ   rŠ   Úpublic_api_keyÚcanonical_regionÚprovider_regionr�   s                              €r7   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ˆÔ*ÜŸ<™<Ð(QÐSW×S`ÑS`×SeÑSeÓfÐä-7¸×8NÑ8NÔPgÔ-hˆD×"Ñ"×)Ò)Ðnrð 	ð ×Ñò UØòUà-=Ð-IÐ ×&Ñ& qÔ)Ètð 	Œô
 & f¸¿¹ÔIˆÔØ%Ò+¨ˆŒÜ*CÀDÈ$×JiÑJiÓJkÓ*lˆÕ'r6   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:   rF   rz   ©rÚ   s    r7   rº   z(BedrockOpenAI._legacy_auth_configurationÚ  óY   € Ø×'Ñ'Ð3Ø$ d×&BÑ&BÐCÐCà×Ñ×0Ñ0Ð<Ø×"Ñ"×:Ò:Ø�|Š|à˜dŸl™lÐ+Ð+Ør6   c                ó¢   — | j                   j                  d u xr6 | j                   xr' | j                  d u xr | j                   j                   S rO   ©rŒ   r:   rz   rÀ   rF   rá   s    r7   Ú_uses_aws_authzBedrockOpenAI._uses_aws_authå  óY   € à×Ñ×0Ñ0°DÐ8ò @Ø—L‘LÐ ò@à×,Ñ,°Ð4ò@ð ×'Ñ'×?Ñ?Ð?ð		
r6   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 ©NrJ   zHExpected `bedrock_token_provider` argument to return a non-empty string.)
rŒ   rF   rG   rz   rÀ   r
   r/   rk   r)   rZ   ©rÚ   Úcapturedru   s      r7   Ú_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Ø�|‰|Ðr6   c                ó8   •— t        | «       t        ‰| �	  |«      S rO   ©r�   rÔ   Ú_prepare_options©rÚ   Úoptionsr�   s     €r7   rî   zBedrockOpenAI._prepare_optionsù  s   ø€ ä(¨Ô.Ü‰wÑ'¨Ó0Ð0r6   ©rz   Úadmin_api_keyÚworkload_identityr…   r‰   r=   r@   rA   rB   rC   rE   rÂ   rÃ   rÄ   rÅ   r*   rÆ   rÊ   rÇ   rÈ   Úset_default_headersrÉ   Úset_default_queryrÌ   Ú_extra_kwargsc               ó0  — 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 )Nrx   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©	rz   r!   r=   r@   rA   rB   rC   rE   r*   T©
rÂ   rÃ   rÄ   rÅ   rÆ   rÊ   rÇ   rÈ   rÉ   rÌ   r»   rÍ   rJ   rˆ   r5   )"r€   r   rk   r   rZ   Ú_custom_headersÚ_custom_queryr¤   rÂ   rÃ   rÄ   rÅ   rÆ   Ú_clientr   rÇ   r_   r�   r�   ÚupdaterŒ   r:   rG   r!   r=   r@   rA   rB   rC   rE   rH   r*   Úitemsr¾   ©"rÚ   rz   rò   ró   r…   r‰   r=   r@   rA   rB   rC   rE   rÂ   rÃ   rÄ   rÅ   r*   rÆ   rÊ   rÇ   rÈ   rô   rÉ   rõ   rÌ   rö   ÚheadersÚparamsr£   Úinherited_providerÚinherited_stateÚconstructor_kwargsr^   rp   s"                                     r7   ÚcopyzBedrockOpenAI.copyþ  sQ  € ô< �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×#;Ñ#;Ô#=ô"á#=‘K�D˜%Ü/°·±×0GÑ0GÈÔNð �e‘Ø#=ð ò "ð
 �^‰^¤=Ñ0ð $6×#;Ñ#;Ô#=ô"á#=‘K�D˜%ØÐ$Ô(DÀTÇ^Á^×E\ÑE\Ð^bÔ(cð �e‘Ø#=ð ñ "ð
 ˆt�~‰~Ñ3Ð 2Ñ3Ð3ùó"ùó"ó   É2-LË/L)0rz   r+   r‰   r¿   r=   r+   r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   rÂ   r+   rÃ   r+   rÄ   r+   r*   ústr | httpx.URL | NonerÅ   r	  rÆ   ú!float | Timeout | None | NotGivenrÇ   ÚintrÈ   úMapping[str, str] | NonerÉ   úMapping[str, object] | NonerÊ   úhttpx.Client | NonerË   r>   rÌ   r>   r»   ú_Provider | NonerÍ   ú_LegacyBedrockState | NonerŠ   úbool | NoneÚreturnÚNone©r  Ú_LegacyAuthConfiguration©r  r>   ©r  r)   ©rð   r   r  r   )4rz   z!str | BedrockTokenProvider | Nonerò   r+   ró   úWorkloadIdentity | Noner…   ú_Provider | None | NotGivenr‰   r¿   r=   r+   r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   rÂ   r+   rÃ   r+   rÄ   r+   rÅ   r	  r*   r	  rÆ   r
  rÊ   r  rÇ   úint | NotGivenrÈ   r  rô   r  rÉ   r  rõ   r  rÌ   r  rö   úMapping[str, Any]r  r   ©r1   r2   r3   Ú__doc__r4   r   r   r�   rº   rå   r   rë   rî   r  Úwith_optionsÚ__classcell__©r�   s   @r7   r¾   r¾   �  sV  ø… ÙOà Ó Ø'Ó'Ø8Ó8Ø#'Ó'Ø 7Ó7ØÓð
 #Ø>BØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø+/Ø59Ø5>Ø.Ø48Ø59Ø+/Ø,1Ø%)Ø&*Ø-1Ø,0ñ3Mmð ðMmð !<ð	Mmð
 ðMmð  ðMmð &ðMmð  *ðMmð &ðMmð #@ðMmð !ðMmð ðMmð #ðMmð )ðMmð 3ðMmð  3ð!Mmð" ð#Mmð$ 2ð%Mmð& 3ð'Mmð( )ð)Mmð* &*ð+Mmð, #ð-Mmð. $ð/Mmð0 +ð1Mmð2 *ð3Mmð4 
õ5Mmó^	ó
ð ò	ó ð	ð ô1ó ð1ð ð 6:Ø$(Ø59Ø09Ø>BØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø59Ø+/Ø5>Ø+/Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ7g4ð 3ðg4ð "ð	g4ð
 3ðg4ð .ðg4ð !<ðg4ð ðg4ð  ðg4ð &ðg4ð  *ðg4ð &ðg4ð #@ðg4ð !ðg4ð ðg4ð  #ð!g4ð" 3ð#g4ð$ )ð%g4ð& 3ð'g4ð( )ð)g4ð* $ð+g4ð, 2ð-g4ð. 6ð/g4ð0 3ð1g4ð2 7ð3g4ð4 *ð5g4ð6 )ð7g4ð8 
ò9g4ó ðg4ðR „Lr6   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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Ž   r9   rŒ   ú AsyncBedrockTokenProvider | NonerÀ   r>   rm   r&   r´   r+   r=   NFTrÁ   c               óà  •— |�|€t        ||||||||||¬«
      \  }}}n,|j                  xs |j                  r|j                  ndxs d}t        ‰| �  ||	|
||||||||d¬«       || _        || _        t        d|j                  «      | _
        |j                  | _        t        j                  d| j                  j                   «      }t#        | j$                  t&        «      r| j$                  j(                  nd }|j*                  xs |xs |�|j-                  d«      nd | _        t/        || j*                  ¬«      | _        |xs d| _        t3        | | j5                  «       «      | _        y )	NrÏ   rJ   FrÐ   r$  rÑ   rÒ   r¹   rÓ   rÙ   s                              €r7   r�   zAsyncBedrockOpenAI.__init__u  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ˆÔ*ÜŸ<™<Ð(QÐSW×S`ÑS`×SeÑSeÓfÐä-7¸×8NÑ8NÔPgÔ-hˆD×"Ñ"×)Ò)Ðnrð 	ð ×Ñò UØòUà-=Ð-IÐ ×&Ñ& qÔ)Ètð 	Œô
 & f¸¿¹ÔIˆÔØ%Ò+¨ˆŒÜ*CÀDÈ$×JiÑJiÓJkÓ*lˆÕ'r6   c                óÄ   — | j                   �d| j                   fS | j                  j                  €"| j                  j                  s| j                  rd| j                  fS yrß   rà   rá   s    r7   rº   z-AsyncBedrockOpenAI._legacy_auth_configurationÄ  râ   r6   c                ó¢   — | j                   j                  d u xr6 | j                   xr' | j                  d u xr | j                   j                   S rO   rä   rá   s    r7   rå   z!AsyncBedrockOpenAI._uses_aws_authÏ  ræ   r6   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Œ   rF   rG   rz   rÀ   r
   r/   rQ   Úisawaitablerk   r)   rZ   ré   s      r7   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rO   rí   rï   s     €r7   rî   z#AsyncBedrockOpenAI._prepare_optionså  s%   øè ø€ ä(¨Ô.Ü‘WÑ-¨gÓ6×6Ð6Ð6ús   ƒ(¡&¢(rñ   c               ó0  — 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 )Nrx   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Í   rJ   rˆ   r5   )"r€   r   rk   r   rZ   rü   rý   r¤   rÂ   rÃ   rÄ   rÅ   rÆ   rþ   r   rÇ   r_   r�   r�   rÿ   rŒ   r:   rG   r!   r=   r@   rA   rB   rC   rE   rH   r*   r   r#  r  s"                                     r7   r  zAsyncBedrockOpenAI.copyê  sR  € ô< �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×#;Ñ#;Ô#=ô"á#=‘K�D˜%Ü/°·±×0GÑ0GÈÔNð �e‘Ø#=ð ò "ð
 �^‰^Ô#5Ñ5ð $6×#;Ñ#;Ô#=ô"á#=‘K�D˜%ØÐ$Ô(DÀTÇ^Á^×E\ÑE\Ð^bÔ(cð �e‘Ø#=ð ñ "ð
 ˆt�~‰~Ñ3Ð 2Ñ3Ð3ùó"ùó"r  )0rz   r+   r‰   r$  r=   r+   r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   rÂ   r+   rÃ   r+   rÄ   r+   r*   r	  rÅ   r	  rÆ   r
  rÇ   r  rÈ   r  rÉ   r  rÊ   úhttpx.AsyncClient | NonerË   r>   rÌ   r>   r»   r  rÍ   r  rŠ   r  r  r  r  r  r  r  )4rz   z&str | AsyncBedrockTokenProvider | Nonerò   r+   ró   r  r…   r  r‰   r$  r=   r+   r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   rÂ   r+   rÃ   r+   rÄ   r+   rÅ   r	  r*   r	  rÆ   r
  rÊ   r,  rÇ   r  rÈ   r  rô   r  rÉ   r  rõ   r  rÌ   r  rö   r  r  r   r  r!  s   @r7   r#  r#  k  sX  ø… ÙUà Ó Ø'Ó'Ø=Ó=Ø#'Ó'Ø 7Ó7ØÓð
 #ØCGØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø+/Ø59Ø5>Ø.Ø48Ø59Ø04Ø,1Ø%)Ø&*Ø-1Ø,0ñ3Mmð ðMmð !Að	Mmð
 ðMmð  ðMmð &ðMmð  *ðMmð &ðMmð #@ðMmð !ðMmð ðMmð #ðMmð )ðMmð 3ðMmð  3ð!Mmð" ð#Mmð$ 2ð%Mmð& 3ð'Mmð( .ð)Mmð* &*ð+Mmð, #ð-Mmð. $ð/Mmð0 +ð1Mmð2 *ð3Mmð4 
õ5Mmó^	ó
ð òó ðð ô7ó ð7ð ð ;?Ø$(Ø59Ø09ØCGØ!%Ø"&Ø(,Ø,0Ø(,ØBFØ#'Ø"Ø%)Ø59Ø+/Ø5>Ø04Ø&/Ø48Ø8<Ø59Ø9=Ø,0Ø+-ñ7g4ð 8ðg4ð "ð	g4ð
 3ðg4ð .ðg4ð !Aðg4ð ðg4ð  ðg4ð &ðg4ð  *ðg4ð &ðg4ð #@ðg4ð !ðg4ð ðg4ð  #ð!g4ð" 3ð#g4ð$ )ð%g4ð& 3ð'g4ð( .ð)g4ð* $ð+g4ð, 2ð-g4ð. 6ð/g4ð0 3ð1g4ð2 7ð3g4ð4 *ð5g4ð6 )ð7g4ð8 
ò9g4ó ðg4ðR „Lr6   r#  )r¾   r#  ÚBedrockTokenProviderr±   r   )rK   r9   r  r)   )r]   zCallable[..., object]r^   r)   r  r>   )r,   r+   r  r+   )r*   r	  r  r>   )r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   r  r>   r  )rz   r+   r!   r<   r=   r+   r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   r*   r	  r?   r  r  z*tuple[_Provider, _LegacyBedrockState, str])r‘   ú"BedrockOpenAI | AsyncBedrockOpenAIrz   r+   r!   r<   r=   r+   r@   r+   rA   r+   rB   r+   rC   r+   rE   rD   r*   r	  r  zFtuple[dict[str, object], _Provider | None, _LegacyBedrockState | None])r‘   r.  r­   r  r  r&   )r‘   r.  r­   r  r  r   )r‘   r.  r  r  )HÚ
__future__r   rc   rÕ   r§   rQ   Útypingr   r   r   r   r   r	   r
   Údataclassesr   r   r   Útyping_extensionsr   r   ÚhttpxÚauthr   Ú_typesr   r   r   Ú_utilsr   rþ   r   r   Ú_modelsr   r»   r   r   Ú_exceptionsr   Ú_base_clientr   Úproviders.bedrockr   r   r   r)   r-  r±   r'   Útupler/   r  Úurandomrª   r&   r9   rL   r_   rh   rm   rr   rv   r†   r¤   r¯   r²   r‹   r�   r¾   r#  Ú__all__r5   r6   r7   Ú<module>r>     s±  ðÝ "ã 	Û 	Û Û ß M× MÑ Mß 1Ñ 1ß ,ã å #ß 1Ñ 1Ý ß )Ý )ß 6Ý %Ý .ß XÑ Xà  C Ñ(Ð Ø$ RÐ)?Ð%?Ñ@Ð ØÐ;Ñ<€Ø  °(¸6Ñ2BÐ!BÑCÐ Ø"˜Ÿ
™
 2›Ð ñ �$Ô÷4ð 4ó ð4ñ �$Ô÷'ð 'ó ð'óuóóYó
Lðàðð "ðð &ð	ð
 "ðð <ðð 
óó(ð* (,ñNdàðNdð LðNdð ð	Ndð
 ðNdð "ðNdð &ðNdð "ðNdð <ðNdð %ðNdð %ðNdð 0óNdðbc'Ø.ðc'ð ðc'ð Lð	c'ð
 ðc'ð ðc'ð "ðc'ð &ðc'ð "ðc'ð <ðc'ð %ðc'ð Lóc'ðLØ.ðà+ðð óð$Ø.ðà+ðð óó@^ó"Yô*g�Fô gôTi˜ô iòX�r6   