
    Mi                     0    S SK r S SKrS SKr " S S5      rg)    Nc                   N    \ rS rSr/ SQrS rS r\S\S\S\4S j5       r	S	 r
S
rg)HeliconeLogger	   )	gptclaudez	command-rzcommand-r-pluszcommand-lightzcommand-mediumzcommand-medium-betazcommand-xlarge-nightlyzcommand-nightlyc                     SU l         [        R                  " S5      U l        [        R                  " S5      =(       d    SU l        U R                  R                  S5      (       a  U R                  S S U l        g g )Nzhttps://api.openai.com/v1HELICONE_API_KEYHELICONE_API_BASEzhttps://api.hconeai.com/)provider_urlosgetenvkeyapi_baseendswith)selfs    w/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/litellm/integrations/helicone.py__init__HeliconeLogger.__init__   s^    799/0		"56S:S==!!#&& MM#2.DM '    c           
         SSK JnJn  U nU H7  nSU;   a#  US   S:X  a  Xe US    3-  nM  Xd US    3-  nM,  Xe US    3-  nM9     Xd -  nUS   S   nUS   n/ n	SU;   a<  US   (       a2  US    H(  n
U	R                  S	U
S
   U
S   S   U
S   S   S.5        M*     OSU;   a  US   (       a	  SUS   S./n	US
   SSUU	US   S US   S   US   S   S.S.nU$ )Nr   )	AI_PROMPTHUMAN_PROMPTroleusercontentchoicesmessage
tool_callstool_useidfunctionname	arguments)typer"   r$   inputtext)r&   r(   	assistantfinish_reasonusageprompt_tokenscompletion_tokens)input_tokensoutput_tokens)r"   r&   r   modelr   stop_reasonstop_sequencer+   )	anthropicr   r   append)r   r0   messagesresponse_objr   r   promptr   choicer   	tool_callclaude_response_objs               r   claude_mappingHeliconeLogger.claude_mapping   s`   5 >G 6?f,wy/A.BCCFGI,>+?@@FN79+=*>??   	K i(+#7"w|'<$\2	 *'o )* 5f =!*:!6{!C	 3 '!gi&8 &	0BCDG t$!/2! ,W 5o F!-g!67J!K
 #"r   litellm_paramsmetadatareturnc                 .   U c  U$ U R                  S5      c  U$ Uc  0 nU R                  S0 5      R                  S0 5      =(       d    0 nU H.  nUR                  S5      (       d  M  UR                  U5      X'   M0     SU;   a  UR                  S5        U$ )a(  
Adds metadata from proxy request headers to Helicone logging if keys start with "helicone_"
and overwrites litellm_params.metadata if already included.

For example if you want to add custom property to your request, send
`headers: { ..., helicone-property-something: 1234 }` via proxy request.
proxy_server_requestheaders	helicone_litellm_parent_otel_span)get
startswithpop)r=   r>   proxy_headers
header_keys       r   add_metadata_from_header'HeliconeLogger.add_metadata_from_headerN   s     !O45=OH 5r:>>y"MSQS 	 (J$$[11'4'8'8'D$ ( &1LL34r   c                   ^  U" ST 35        UR                  S0 5      nUR                  SS 5        UR                  S0 5      =(       d    0 n	U R                  X5      n	[        U4S jU R                   5       5      (       a  TOSmTUS.n
[	        U[
        R                  5      (       d  [	        U[
        R                  5      (       a  UR                  5       nST;   a  U R                  TX#S	9nUS
S0SS.nU R                  nU R                   S3nST;   a  U R                   S3nSnSU R                   3SS.n[        UR                  5       5      n[        UR                  5       U-
  S-  5      n[        UR                  5       5      n[        UR                  5       U-
  S-  5      nSSU R                   30nUR                  U	5        UU
US.UUUS.UUS.S.S.n[
        R                   R#                  XUS9nUR$                  S:X  a	  U" S5        g U" SUR$                   35        U" SUR&                   35        g ! [(         a!    U" S[*        R,                  " 5        35         g f = f)Nz5Helicone Logging - Enters logging function for model r=   litellm_call_idr>   c              3   .   >#    U  H
  nUT;   v   M     g 7f)N ).0accepted_modelr0   s     r   	<genexpr>-HeliconeLogger.log_success.<locals>.<genexpr>}   s      *B #e+*Bs   zgpt-3.5-turbo)r0   r5   r   )r0   r5   r6   zopenai-versionz
2020-10-01   )jsonrB   statusz/oai/v1/logz/anthropic/v1/logz%https://api.anthropic.com/v1/messageszBearer zapplication/json)AuthorizationzContent-Typei  zHelicone-Auth)urlrU   meta)secondsmilliseconds)	startTimeendTime)providerRequestproviderResponsetiming)rB   rU   zHelicone Logging - Success!zBHelicone Logging - Error Request was not successful. Status Code: zHelicone Logging - Error zHelicone Logging Error - )rE   rJ   anyhelicone_model_list
isinstancelitellmEmbeddingResponseModelResponserU   r;   r   r   r   int	timestampupdatemodule_level_clientpoststatus_coder(   	Exception	traceback
format_exc)r   r0   r5   r6   
start_timeend_timeprint_verbosekwargsr=   r>   provider_requestr_   r   rX   rB   start_time_secondsstart_time_millisecondsend_time_secondsend_time_millisecondsrY   dataresponses    `                    r   log_successHeliconeLogger.log_successo   s   Q	GwO $ZZ(8"=NJJ($/%))*b9?RH44^NH  *.*B*B   
 %  */HE,(A(ABBjg33G G  ,0025 #22(  3  
 %,l;   ,,L]]O;/C5 '89F#*488*!5 2G "%Z%9%9%;!<&)%%'*<<D'#  #8#5#5#78$'##%(88D@%! $wtxxj%9:DKK! (, $
 %5 $6(?"
 $4(= 	D$ 2277SW7XH##s*;<XYaYmYmXno  9(--IJ 	5i6J6J6L5MNO	s   HI *I (I-,I-)r   r   r   N)__name__
__module____qualname____firstlineno__rb   r   r;   staticmethoddictrJ   r{   __static_attributes__rO   r   r   r   r   	   sE    
/-#^   $  @Ur   r   )r   rn   rd   r   rO   r   r   <module>r      s    
  { {r   