ó
    üÞ jYO  ã                  óN  • S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
JrJrJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  \	(       a  S SKJrJr  S SKJrJrJr  S SK J!r!  S SK"J#r#  \" S\SS\
4   S9r$\RJ                  " \&5      r'\RP                  S'S j5       r)S(S jr*S(S jr+          S)S jr,S*S jr-S+S jr.S,S jr/S-S jr0S.S jr1   S/             S0S jjr2  S1           S2S jjr3S3S jr4 " S S \S!S"9r5SS#SS$.         S4S% jjr6S5S& jr7g)6é    )ÚannotationsN)Údefaultdict)ÚMapping)ÚTYPE_CHECKINGÚAnyÚCallableÚOptionalÚTypeVarÚUnion)Ú	TypedDict)Úclient)Úrun_helpers)Úapply_default_ls_agent_type)Ú_create_usage_metadata)ÚAsyncOpenAIÚOpenAI)ÚChatCompletionChunkÚChoiceÚChoiceDeltaToolCall)Ú
Completion)ÚResponseStreamEventÚCr   r   )Úboundc                 ó’   • / n  SSK JnJn  U R                  U5        U R                  U5        [        U 5      $ ! [         a     Nf = f)z4Get NotGiven/Omit sentinel types used by OpenAI SDK.r   )ÚNotGivenÚOmit)Úopenai._typesr   r   ÚappendÚImportErrorÚtuple)Útypesr   r   s      ÚT/var/www/html/gaurav/venv/lib/python3.13/site-packages/langsmith/wrappers/_openai.pyÚ_get_omit_typesr#   *   sI   € ð  €Eðß0à�‰�XÔØ�‰�TÔô �‹<Ðøô ó Ùðús   „*9 ¹
AÁAc                ó:  •  [        5       nU(       d  U $ U R                  5        VVs0 sH4  u  p#[        X15      (       a  M  UR                  S5      (       a  Uc  M2  X#_M6     snn$ s  snnf ! [         a$  n[
        R                  SU 35        U s S nA$ S nAff = f)NÚextra_zError stripping NotGiven: )r#   ÚitemsÚ
isinstanceÚ
startswithÚ	ExceptionÚloggerÚerror)ÚdÚ
omit_typesÚkÚvÚes        r"   Ú_strip_not_givenr1   9   s“   € ðÜ$Ó&ˆ
ÞØˆHð Ÿ™œ	ô
á!‘�Ü˜q×-ó à23·,±,¸x×2HÑ2HÈQó ˆAŠDÙ!ò
ð 	
ùó 
øô
 ó Ü�‰Ð1°!°Ð5Ô6Ø�ûðús?   ‚A, •A, ¨A&ÁA&ÁA&Á"A, Á&A, Á,
BÁ6BÂBÂBc                ó¤   • [        U 5      n SU ;   a-  U S   n[        US5      (       a   0 U ESUR                  5       0E$ U $ ! [         a     U $ f = f)zCStrip `NotGiven` values and serialize `text_format` to JSON schema.Útext_formatÚmodel_json_schema)r1   Úhasattrr4   r)   )r,   r3   s     r"   Ú_process_inputsr6   H   sx   € ä˜Ó€Að ˜ÓØ˜Ñ&ˆÜ�;Ð 3×4Ñ4ððØðà! ;×#@Ñ#@Ó#Bñð ð €Høô ó ØØ€Hðús   ©A Á
AÁAc           	     ó&  • [        U5      nUR                  S5      nU(       a  [        U[        5      (       a  U/n1 SknUR	                  5        VV	s0 sH  u  p‰X‡;   d  M  X‰_M     n
nn	U(       a  SU
S'   UR                  S5      n[        U[
        5      (       d  0 n0 UEUU UR                  S5      UR                  S5      UR                  S5      =(       d)    UR                  S	5      =(       d    UR                  S
5      U0 UEU
ES.E$ s  sn	nf )NÚstop>   ÚnÚseedÚuserÚtop_pÚlogprobsÚ	reasoningÚ	verbosityÚ
logit_biasÚ
modalitiesÚ
predictionÚ
truncationÚservice_tierÚtop_logprobsÚstream_optionsÚresponse_formatÚpresence_penaltyÚprompt_cache_keyÚreasoning_effortÚfrequency_penaltyÚweb_search_optionsÚparallel_tool_callsTÚuse_responses_apiÚmetadataÚmodelÚtemperatureÚ
max_tokensÚmax_completion_tokensÚmax_output_tokens)Úls_providerÚls_model_typeÚls_model_nameÚls_temperatureÚls_max_tokensÚls_stopÚls_invocation_params)r1   Úgetr'   Ústrr&   r   )Ú
model_typeÚproviderÚprepopulated_invocation_paramsrN   ÚkwargsÚstrippedr8   Úallowed_invocation_keysr.   r/   Úinvocation_paramsÚrequest_metadatas               r"   Ú_infer_invocation_paramsrf   Z   s!  € ô   Ó'€Hà�<‰<˜Ó€DÞ”
˜4¤×%Ñ%ØˆvˆòÐð4 "Ÿ™Ô)ôÙ)‘�¨QÑ-I‹ˆŠÑ)ð ñ ö Ø15ÐÐ-Ñ.à—|‘| JÓ/ÐÜÐ&¬×0Ñ0ØÐðØ
ðàØ#Ø!Ÿ™ gÓ.Ø"Ÿ,™, }Ó5Ø!Ÿ™ lÓ3÷ -Ø�<‰<Ð/Ó0÷-à�<‰<Ð+Ó,Øð!
Ø,ð!
àð!
òð ùós   Á
DÁ!Dc                ó¨   • [        U 5      n[        UR                  S5      =(       d    0 5      n[        U[        R                  " 5       5        X!S'   U$ )a  Return textra with ls_agent_type defaulted at the wrapper-config layer.

A user-supplied value (including None) is preserved unchanged; None flows
through as an explicit opt-out that overrides any propagated parent tag via
traceable's metadata_.update(wrapper_metadata) step.
rO   )Údictr\   r   r   Úget_current_run_tree)ÚtextraÚresultrO   s      r"   Ú$_traceable_kwargs_with_ls_agent_typerl   ž   sE   € ô �&‹\€FÜ�F—J‘J˜zÓ*×0¨bÓ1€HÜ ¬+×*JÒ*JÓ*LÔMØ!ˆ:ÑØ€Mó    c                óN  • [        [        U 5      5      nSSS.nU HM  n[        US5      (       d  M  [        UR                  SS 5      (       d  M4  UR                  R
                  US'     O   [        [         5      nU  GH_  n[        US5      (       d  M  [        UR                  SS 5      (       a!  US==   UR                  R                  -  ss'   [        UR                  SS 5      (       aŽ  UR                  S5      (       d  SSS.US'   [        UR                  R                  S	S 5      nU(       a  US   S	==   U-  ss'   [        UR                  R                  S
S 5      nU(       a  US   S
==   U-  ss'   [        UR                  SS 5      (       d  GM  UR                  R                  nUc  GM9  U H   nXHR                     R                  U5        M"     GMb     U(       Ga
  [        [        UR                  5       5      S-   5       V	s/ sH  n	S PM     sn	US'   UR!                  5        H¾  u  p«U
[#        S U 5       S 5      [#        S U 5       S 5      SSS.S.US   U
'   U H�  n[        USS 5      (       d  M  [        UR$                  S	S 5      nU(       a  US   U
   S   S	==   U-  ss'   [        UR$                  S
S 5      nU(       d  Mk  US   U
   S   S
==   U-  ss'   Mƒ     MÀ     U (       a  [        U S   SS5      OS[#        S U 5       S 5      US.$ s  sn	f )NÚ	assistantÚ ©ÚroleÚcontentÚdeltarr   rs   Úfunction_call)ÚnameÚ	argumentsrv   rw   Ú
tool_callsé   c              3  ó\   #   • U H#  oR                   (       d  M  UR                   v •  M%     g 7f©N)Úid©Ú.0Úcs     r"   Ú	<genexpr>Ú"_reduce_choices.<locals>.<genexpr>Î   s   é € ÐCÑ*: Q¿d½d›D˜AŸDžDÒ*:ùó   ‚,™,c              3  ó\   #   • U H#  oR                   (       d  M  UR                   v •  M%     g 7fr{   )Útyper}   s     r"   r€   r�   Ï   s   é € ÐIÑ.>¨Ç&Å&›f˜aŸfžfÒ.>ùr‚   )Úindexr|   r„   Úfunctionr†   r   r…   c              3  ó`   #   • U H%  n[        US S5      (       d  M  UR                  v •  M'     g7f)Úfinish_reasonN)Úgetattrrˆ   r}   s     r"   r€   r�   ß   s)   é € ð á)�AÜ˜1˜o¨t×4ó  �—–Ú)ùs   ‚.›.)r…   rˆ   Úmessage)ÚlistÚreversedr5   r‰   rt   rr   r   rs   r\   ru   rx   r…   r   ÚrangeÚmaxÚkeysr&   Únextr†   )ÚchoicesÚreversed_choicesrŠ   r   rx   Úname_Ú
arguments_Útool_calls_listÚ	tool_callÚ_r…   Útool_call_chunksÚchunks                r"   Ú_reduce_choicesrš   ¬   sÜ  € ÜœH WÓ-Ó.ÐàØñ€Gó ˆÜ�1�g×Ó¤7¨1¯7©7°F¸D×#AÓ#AØŸg™gŸl™lˆG�F‰OÙñ ô ?JÌ$Ó>O€JÜˆÜ�1�g×ÓÜ�q—w‘w 	¨4×0Ñ0Ø˜	Ó" a§g¡g§o¡oÑ5Ó"Ü�q—w‘w °×6Ñ6Ø—{‘{ ?×3Ñ3Ø8:ÈÑ/L�G˜OÑ,Ü §¡× 5Ñ 5°v¸tÓD�ÞØ˜OÑ,¨VÓ4¸Ñ=Ó4Ü$ Q§W¡W×%:Ñ%:¸KÈÓN�
ÞØ˜OÑ,¨[Ó9¸ZÑGÓ9Ü�q—w‘w ¨d×3Ô3Ø"#§'¡'×"4Ñ"4�Ø"Ô.Û%4˜	Ø"§?¡?Ñ3×:Ñ:¸9ÖEô &5ñ! ÷$ Ü/4´S¸¿¹Ó9JÓ5KÈaÑ5OÔ/PÓ QÑ/P¨!£Ñ/PÑ Qˆ�ÑØ'1×'7Ñ'7Ö'9Ñ#ˆEàÜÑCÑ*:ÓCÀTÓJÜÑIÑ.>ÓIÈ4ÓPØ%'°bÑ9ñ	,ˆG�LÑ! %Ñ(ó *�Ü˜5 *¨d×3Ó3Ü# E§N¡N°F¸DÓA�EÞØ Ñ-¨eÑ4°ZÑ@ÀÓHÈEÑQÓHÜ!(¨¯©¸ÀdÓ!K�Jß!�zØ Ñ-¨eÑ4°ZÑ@ÀÓMØ&ñÕMó *ñ (:ö$ 5<”˜ ™ W¨aÔ0ÀÜñá)óð
 ó
ð ñð ùò% !Rs   ÈL"c                ó”  • [        [        5      nU  H3  nUR                   H   nXR                     R	                  U5        M"     M5     U (       a@  U S   R                  5       nUR                  5        Vs/ sH  n[        U5      PM     snUS'   O
SSSSS.0/0nUR                  SS 5      nU(       a  [        U5      OS US'   U$ s  snf )	Néÿÿÿÿr‘   rŠ   ro   rp   rq   ÚusageÚusage_metadata)
r   r‹   r‘   r…   r   Ú
model_dumpÚvaluesrš   Úpopr   )Ú
all_chunksÚchoices_by_indexr™   Úchoicer,   r‘   Úoai_token_usages          r"   Ú_reduce_chatr¦   ê   sÌ   € Ü7BÄ4Ó7HÐÛˆØ—m”mˆFØŸ\™\Ñ*×1Ñ1°&Ö9ó $ñ ö Ø�r‰N×%Ñ%Ó'ˆà4D×4KÑ4KÔ4Mó
Ù4M¨ŒO˜GÖ$Ñ4Mñ
ˆˆ)Šð ˜)¨kÀbÑ%IÐJÐKÐLˆð —e‘e˜G TÓ*€Oæ3BÔ˜Ô/Èð ÐÑð €Hùò
s   Á5Cc                óò   • / nU  H2  nUR                   S   R                  nUc  M!  UR                  U5        M4     SR                  U5      nU (       a  U S   R	                  5       nSU0/US'   U$ SSU0/0nU$ )Nr   rp   rœ   Útextr‘   )r‘   r¨   r   ÚjoinrŸ   )r¢   Úall_contentr™   rs   r,   s        r"   Ú_reduce_completionsr«   ÿ   s�   € Ø€KÛˆØ—-‘- Ñ"×'Ñ'ˆØÓØ×Ñ˜wÖ'ñ ð �g‰g�kÓ"€GÞØ�r‰N×%Ñ%Ó'ˆØ Ð)Ð*ˆˆ)‰ð €Hð ˜& 'Ð*Ð+Ð,ˆà€Hrm   c                ó–  •  [        U S5      (       a+  [        U R                  5      (       a   U R                  5       n U R	                  5       nUR                  SS 5      nU(       a  [        X!R                  S5      5      OS US'   U$ ! [         a     NVf = f! [         a&  n[        R                  SU 35        SU 0s S nA$ S nAff = f)NÚparser�   rD   rž   z"Error processing chat completion: Úoutput)r5   Úcallabler­   r)   rŸ   r¡   r   r\   ÚBaseExceptionr*   Údebug)ÚoutputsÚrdictr¥   r0   s       r"   Ú_process_chat_completionr´     sÅ   € ð#ô
 �7˜G×$Ñ$¬°'·-±-×)@Ñ)@ðØ!Ÿ-™-›/�ð ×"Ñ"Ó$ˆØŸ)™) G¨TÓ2ˆö ô # ?·I±I¸nÓ4MÔNàð 	ÐÑð
 ˆøô ó Ùðûô ó #Ü�‰Ð9¸!¸Ð=Ô>Ø˜'Ð"Õ"ûð#ús@   ‚+B ®B ¾A	B Â
BÂB ÂBÂB Â
CÂ"CÂ=CÃCc                óò   ^ ^^^^^• U=(       d    0 m[         R                  " T 5      UUU UUU4S j5       n[         R                  " T 5      UUU UUU4S j5       n[        R                  " T 5      (       a  U$ U$ )Nc            
     ó    >• [         R                  " STSUR                  S5      SL a  TOS [        TTS.[	        T5      D6nU" T5      " U 0 UD6$ ©NÚllmÚstreamT©rv   Úrun_typeÚ	reduce_fnÚprocess_inputsÚ_invocation_params_fnÚprocess_outputs© ©r   Ú	traceabler\   r6   rl   ©	Úargsra   Ú	decoratorÚinvocation_params_fnrv   Úoriginal_creater¿   r¼   rj   s	      €€€€€€r"   ÚcreateÚ_get_wrapper.<locals>.create2  sb   ø€ ä×)Ò)ð 
ØØØ#)§:¡:¨hÓ#7¸4Ò#?‘iÀTÜ*Ø"6Ø+ñ
ô 3°6Ó:ñ
ˆ	ñ ˜Ô)¨4Ð:°6Ñ:Ð:rm   c            
   Ÿ  ó¼   >#   • [         R                  " STSUR                  S5      SL a  TOS [        TTS.[	        T5      D6nU" T5      " U 0 UD6I S h  v•N $  N7fr·   rÁ   rÃ   s	      €€€€€€r"   ÚacreateÚ_get_wrapper.<locals>.acreate@  sk   øé € ä×)Ò)ð 
ØØØ#)§:¡:¨hÓ#7¸4Ò#?‘iÀTÜ*Ø"6Ø+ñ
ô 3°6Ó:ñ
ˆ	ñ ˜Ô/°Ð@¸Ñ@×@Ð@Ñ@ùs   ƒAAÁAÁA©Ú	functoolsÚwrapsr   Úis_async)	rÇ   rv   r¼   Útracing_extrarÆ   r¿   rÈ   rË   rj   s	   ``` ``  @r"   Ú_get_wrapperrÒ   (  sq   ý€ ð × ˜b€Fä‡_‚_�_Ó%÷;ñ ;ó &ð;ô ‡_‚_�_Ó%÷
Añ 
Aó &ð
Aô "×*Ò*¨?×;Ñ;ˆ7ÐGÀÐGrm   c                óì   ^ ^^^^• U=(       d    0 m[         R                  " T 5      UUU UU4S j5       n[         R                  " T 5      UUU UU4S j5       n[        R                  " T 5      (       a  U$ U$ )Nc            
     ót   >• [         R                  " STSS [        TTS.[        T5      D6nU" T5      " U 0 UD6$ ©Nr¸   rº   rÀ   ©r   rÂ   r6   rl   ©rÄ   ra   rÅ   rÆ   rv   Úoriginal_parser¿   rj   s      €€€€€r"   r­   Ú!_get_parse_wrapper.<locals>.parseY  sP   ø€ ä×)Ò)ð 
ØØØÜ*Ø"6Ø+ñ
ô 3°6Ó:ñ
ˆ	ñ ˜Ô(¨$Ð9°&Ñ9Ð9rm   c            
   Ÿ  ó�   >#   • [         R                  " STSS [        TTS.[        T5      D6nU" T5      " U 0 UD6I S h  v•N $  N7frÕ   rÖ   r×   s      €€€€€r"   ÚaparseÚ"_get_parse_wrapper.<locals>.aparsef  sY   øé € ä×)Ò)ð 
ØØØÜ*Ø"6Ø+ñ
ô 3°6Ó:ñ
ˆ	ñ ˜~Ô.°Ð?¸Ñ?×?Ð?Ñ?ùs   ƒ<A¿AÁ ArÍ   )rØ   rv   r¿   rÑ   rÆ   r­   rÛ   rj   s   ``` `  @r"   Ú_get_parse_wrapperrÝ   P  sq   ü€ ð × ˜b€Fä‡_‚_�^Ó$÷
:ð 
:ó %ð
:ô ‡_‚_�^Ó$÷
@ð 
@ó %ð
@ô !×)Ò)¨.×9Ñ9ˆ6ÐD¸uÐDrm   c                óf   • U  H*  nUR                   S:X  d  M  [        UR                  5      s  $    0 $ )Nzresponse.completed)r„   Ú_process_responses_api_outputÚresponse)ÚeventsÚevents     r"   Ú_reduce_response_eventsrã   v  s/   € ÛˆØ�:‰:Ð-Õ-Ü0°·±Ó@Ò@ñ ð €Irm   c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ÚTracingExtrai}  zOptional[Mapping[str, Any]]rO   zOptional[list[str]]ÚtagszOptional[ls_client.Client]r   rÀ   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__rÀ   rm   r"   rå   rå   }  s   ‡ Ø)Ó)Ø
ÓØ&Ö&rm   rå   F)ÚtotalÚ
ChatOpenAI)rÑ   Ú	chat_nameÚcompletions_namec               ó&  • U=(       d    0 n[        UR                  S5      =(       d    0 5      nUR                  S0 5      nUR                  5        VVs0 sH  u  pgUS:w  d  M  Xg_M     nnnU(       a  XHS'   Sn	 SSKJn
Jn  [        X5      (       d  [        X
5      (       a  Sn	SnSn[        U R                  R                  R                  U[        U[        R                  " [         S	U	US
5      ["        S9U R                  R                  l        [        U R                  R                  U[$        U[        R                  " [         SU	US
5      S9U R                  l        ['        U S5      (       aç  ['        U R(                  S	5      (       aÌ  ['        U R(                  R                  S5      (       a§  ['        U R(                  R                  R                  S5      (       ax  [+        U R(                  R                  R                  R,                  U["        U[        R                  " [         S	U	US
5      S9U R(                  R                  R                  l        ['        U S	5      (       a¤  ['        U R                  S5      (       a‰  ['        U R                  R                  S5      (       ad  [+        U R                  R                  R,                  U["        U[        R                  " [         S	U	US
5      S9U R                  R                  l        ['        U S5      (       aÛ  ['        U R.                  S5      (       aU  [        U R.                  R                  U[0        [2        U[        R                  " [         S	U	US5      S9U R.                  l        ['        U R.                  S5      (       aP  [+        U R.                  R,                  U[2        U[        R                  " [         S	U	US5      S9U R.                  l        U $ s  snnf ! [         a     GNgf = f)aµ  Patch the OpenAI client to make it traceable.

Supports:
    - Chat and Responses API's
    - Sync and async OpenAI clients
    - `create` and `parse` methods
    - With and without streaming
    - `with_raw_response` API for accessing HTTP headers

Args:
    client: The client to patch.
    tracing_extra: Extra tracing information.
    chat_name: The run name for the chat completions endpoint.
    completions_name: The run name for the completions endpoint.

Returns:
    The patched client.

Example:
    ```python
    import openai
    from langsmith import wrappers

    # Use OpenAI client same as you normally would.
    client = wrappers.wrap_openai(openai.OpenAI())

    # Chat API:
    messages = [
        {"role": "system", "content": "You are a helpful assistant."},
        {
            "role": "user",
            "content": "What physics breakthroughs do you predict will happen by 2300?",
        },
    ]
    completion = client.chat.completions.create(
        model="gpt-4o-mini", messages=messages
    )
    print(completion.choices[0].message.content)

    # Responses API:
    response = client.responses.create(
        model="gpt-4o-mini",
        messages=messages,
    )
    print(response.output_text)

    # With raw response to access headers:
    raw_response = client.chat.completions.with_raw_response.create(
        model="gpt-4o-mini", messages=messages
    )
    print(raw_response.headers)  # Access HTTP headers
    completion = raw_response.parse()  # Get parsed response
    ```

!!! warning "Behavior changed in `langsmith` 0.3.16"

    Support for Responses API added.

!!! warning "Behavior changed in `langsmith` 0.3.x"

    Support for `with_raw_response` API added.
rO   r[   Úopenair   )ÚAsyncAzureOpenAIÚAzureOpenAIÚazureÚAzureChatOpenAIrô   ÚchatF)rÑ   rÆ   r¿   r¸   )rÑ   rÆ   ÚbetaÚcompletionsr­   Ú	responsesrÈ   T)r¿   rÑ   rÆ   )rh   r\   r¡   r&   rò   ró   rô   r'   r   rÒ   r÷   rù   rÈ   r¦   rÎ   Úpartialrf   r´   r«   r5   rø   rÝ   r­   rú   rã   rß   )r   rÑ   rï   rð   rO   r`   r.   r/   Útracing_extra_restrU   ró   rô   s               r"   Úwrap_openairý   ƒ  ss  € ðJ "×' R€Mô �M×%Ñ% jÓ1×7°RÓ8€HØ%-§\¡\Ð2HÈ"Ó%MÐ"ð '×,Ñ,Ô.ô(Ù.‘�°!°z±/‹ˆŠÑ.ð ñ (ö Ø)1˜:Ñ&à€Kðß8ä�f×*Ñ*¬j¸×.RÑ.RØ!ˆKØ)ˆIØ,Ðô
 &2Ø�‰×Ñ×&Ñ&ØÜØ(Ü&×.Ò.Ü$ØØØ*Øó
ô 1ñ&€F‡K�K×ÑÔ"ô !-Ø×Ñ×!Ñ!ØÜØ(Ü&×.Ò.Ü$ØØØ*Øó
ñ!€F×ÑÔô  	�˜×ÑÜ�F—K‘K ×(Ñ(Ü�F—K‘K×$Ñ$ m×4Ñ4Ü�F—K‘K×$Ñ$×0Ñ0°'×:Ñ:ä-?Ø�K‰K×Ñ×(Ñ(×.Ñ.ØÜ$Ø,Ü!*×!2Ò!2Ü(ØØØ.Øó"ñ.
ˆ�‰×Ñ×$Ñ$Ô*ô  	�˜×ÑÜ�F—K‘K ×/Ñ/Ü�F—K‘K×+Ñ+¨W×5Ñ5ä(:Ø�K‰K×#Ñ#×)Ñ)ØÜ$Ø,Ü!*×!2Ò!2Ü(ØØØ.Øó"ñ)
ˆ�‰×ÑÔ%ô ˆv�{×#Ñ#Ü�6×#Ñ# X×.Ñ.Ü&2Ø× Ñ ×'Ñ'ØÜ'Ü =Ø0Ü%.×%6Ò%6Ü,ØØØ2Øó&ñ'ˆF×ÑÔ#ô �6×#Ñ# W×-Ñ-Ü%7Ø× Ñ ×&Ñ&ØÜ-Ø0Ü%.×%6Ò%6Ü,ØØØ2Øó&ñ&ˆF×ÑÔ"ð €Mùóq(øô ó Úðús   ÁO<Á#O<Á:.P Ð
PÐPc                óf  • U (       a…   [        U S5      (       a+  [        U R                  5      (       a   U R                  5       n U R	                  SSS9nUR                  SS 5      =n(       a  [        X!R                  S5      5      US'   U$ 0 $ ! [         a     NVf = f! [         a    SU 0s $ f = f)	Nr­   TÚjson)Úexclude_noneÚmoder�   rD   rž   r®   )r5   r¯   r­   r)   rŸ   r¡   r   r\   )rà   r®   r�   s      r"   rß   rß   J  s¼   € Þð	(ä�x ×)Ñ)¬h°x·~±~×.FÑ.FðØ'Ÿ~™~Ó/�Hð ×(Ñ(°dÀÐ(ÐHˆFØŸ
™
 7¨DÓ1Ð1ˆuÕ1Ü+AØŸ:™: nÓ5ó,�Ð'Ñ(ð ˆMð €Iøô !ó Ùðûô ó 	(Ø˜hÐ'Ò'ð	(ús5   ‰+B µB ÁAB Â
BÂB ÂBÂB ÂB0Â/B0)Úreturnztuple[type, ...])r,   rh   r  rh   )
r^   r]   r_   r]   r`   rh   rN   Úboolra   rh   )rj   rh   r  rh   )r‘   zlist[Choice]r  rh   )r¢   zlist[ChatCompletionChunk]r  rh   )r¢   zlist[Completion]r  rh   )r²   r   )NNN)rÇ   r   rv   r]   r¼   r   rÑ   úOptional[TracingExtra]rÆ   úOptional[Callable]r¿   r  r  r   )NN)rØ   r   rv   r]   r¿   r   rÑ   r  rÆ   r  r  r   )rá   zlist[ResponseStreamEvent]r  rh   )
r   r   rÑ   r  rï   r]   rð   r]   r  r   )rà   r   r  rh   )8Ú
__future__r   rÎ   ÚloggingÚcollectionsr   Úcollections.abcr   Útypingr   r   r   r	   r
   r   Útyping_extensionsr   Ú	langsmithr   Ú	ls_clientr   Ú"langsmith._internal._ls_agent_typer   Úlangsmith._internal._usager   rò   r   r   Ú'openai.types.chat.chat_completion_chunkr   r   r   Úopenai.types.completionr   Úopenai.types.responsesr   r   Ú	getLoggerrç   r*   Ú	lru_cacher#   r1   r6   rf   rl   rš   r¦   r«   r´   rÒ   rÝ   rã   rå   rý   rß   rÀ   rm   r"   Ú<module>r     sò  ðÝ "ã Û Ý #Ý #÷÷ õ (å )Ý !Ý Jõ
 >æß*÷ñ õ
 3Ý:ñ ˆC�u˜X }°cÐ9Ñ:Ñ;€Ø	×	Ò	˜8Ó	$€ð ×Ñóó ðôôð$AØðAàðAð %)ðAð ð	Að
 ôAôHô;ô|ô*ô #ð: -1Ø/3Ø*.ð%HØð%Hà
ð%Hð ð%Hð *ð	%Hð
 -ð%Hð (ð%Hð õ%HðX -1Ø/3ð#EØð#Eà
ð#Eð ð#Eð *ð	#Eð
 -ð#Eð õ#EôLô'�9 Eò 'ð -1Ø!Ø$ñDØðDð *ðDð ð	Dð
 ðDð õDõNrm   