Ë
    ³Œj$  ã                  óJ   — d Z ddlmZ ddlmZ ddlmZmZmZ 	 d	 	 	 	 	 dd„Z	y)	uÊ  Shared token-usage mapping.

``_create_usage_metadata`` normalizes an OpenAI-shaped token ``usage`` dict into
LangSmith's canonical :class:`~langsmith.schemas.UsageMetadata`. It lives here â€”
not in ``langsmith.wrappers._openai`` â€” so integrations can reuse it without
importing the ``wrappers`` package (whose ``__init__`` eagerly imports a
deprecated tombstone that warns at import time). ``wrappers._openai`` re-exports
it for backwards compatibility.
é    )Úannotations)ÚOptional)ÚInputTokenDetailsÚOutputTokenDetailsÚUsageMetadataNc                ó,  — |dv r|nd }|r|› d�nd}| j                  d«      xs | j                  d«      xs d}| j                  d«      xs | j                  d«      xs d}| j                  d	«      xs ||z   }d
| j                  d«      xs | j                  d«      xs i j                  d«      |› d�| j                  d«      xs | j                  d«      xs i j                  d«      i}d
| j                  d«      xs | j                  d«      xs i j                  d«      |› d�| j                  d«      xs | j                  d«      xs i j                  d«      i}|r<||j                  |› d�«      xs dz
  ||<   ||j                  |› d�«      xs dz
  ||<   t        |||t        di |j                  «       D �	�
ci c]  \  }	}
|
€Œ	|	|
“Œ c}
}	¤Žt	        di |j                  «       D �	�
ci c]  \  }	}
|
€Œ	|	|
“Œ c}
}	¤Ž¬«      S c c}
}	w c c}
}	w )N)ÚpriorityÚflexÚ_Ú Úprompt_tokensÚinput_tokensr   Úcompletion_tokensÚoutput_tokensÚtotal_tokensÚaudioÚprompt_tokens_detailsÚinput_tokens_detailsÚaudio_tokensÚ
cache_readÚcached_tokensÚcompletion_tokens_detailsÚoutput_tokens_detailsÚ	reasoningÚreasoning_tokens)r   r   r   Úinput_token_detailsÚoutput_token_details© )Úgetr   r   Úitemsr   )Úoai_token_usageÚservice_tierÚrecognized_service_tierÚservice_tier_prefixr   r   r   r   r   ÚkÚvs              úd/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langsmith/_internal/_usage.pyÚ_create_usage_metadatar(      s   € ð %Ð(<Ñ<‰À$ð ñ *AÐ"Ð
# 1Ñ%Àbð ð
 	×Ñ˜OÓ,ÒX°×0CÑ0CÀNÓ0SÒXÐWXð ð 	×ÑÐ/Ó0ò 	Ø×Ñ˜Ó/ò	àð ð
 #×&Ñ& ~Ó6ÒV¸,ÈÑ:V€LàØ×ÑÐ 7Ó8ò Ø×"Ñ"Ð#9Ó:òàß
‰#ˆnÓ
ØÐ
˜zÐ*Ø×ÑÐ 7Ó8ò Ø×"Ñ"Ð#9Ó:òàß
‰#ˆoÓ
ð!Ðð 	Ø×ÑÐ ;Ó<ò Ø×"Ñ"Ð#:Ó;òàß
‰#ˆnÓ
ØÐ
˜yÐ)Ø×ÑÐ ;Ó<ò Ø×"Ñ"Ð#:Ó;òàß
‰#Ð Ó
!ð"Ðñ ð 8DØ×#Ñ#Ð':Ð&;¸:Ð$FÓGÒLÈ1ñ8
ÐÐ3Ñ4ð 9FØ ×$Ñ$Ð(;Ð'<¸IÐ%FÓGÒLÈ1ñ9
ÐÐ4Ñ5ô Ø!Ø#Ø!Ü-ñ 
Ø 3× 9Ñ 9Ô ;ÔMÑ ;™˜˜1¸q¹}ˆq�!‰tÐ ;ÒMñ
ô 0ñ 
Ø 4× :Ñ :Ô <ÔNÑ <™˜˜1ÀÁˆq�!‰tÐ <ÒNñ
ô
ð 
ùó
 Nùó Os   Ç 
H
ÇH
Ç/
HÇ:H)N)r!   Údictr"   zOptional[str]Úreturnr   )
Ú__doc__Ú
__future__r   Útypingr   Úlangsmith.schemasr   r   r   r(   r   ó    r'   Ú<module>r0      s>   ðñõ #å ç RÑ Rð :>ðAØðAØ)6ðAàôAr/   