
    g                     R    d dl Z d dlZd dlmZmZ d dlZd Zd Zd Z G d d      Zy)    N)datetimetimezonec                 4    d| v r| d   ndd| v r| d   dS ddS )Ncompletion_tokensr   prompt_tokens)
completionprompt )usages    P/var/www/openai/venv/lib/python3.12/site-packages/litellm/integrations/lunary.pyparse_usager      s;    4G54Pe/0VW,;u,D%( JK     c                 D    | y d }| D cg c]
  } ||       c}S c c}w )Nc                     | j                   | j                  | j                  j                  | j                  j                  dd}|S )N)name	arguments)typeidfunction)r   r   r   r   r   )	tool_call
serializeds     r   clean_tool_callz)parse_tool_calls.<locals>.clean_tool_call   sD     NN,,!**//&//99

 r   r
   )
tool_callsr   r   s      r   parse_tool_callsr      s0     9CC
9OI&
CCCs   c                     | y fdt        | t              r/t        |       dk(  r | d         S | D cg c]
  } |       c}S  |       S c c}w )Nc                     t        | t              r| S d| v r | d         S | j                  d      | j                  d      d}| j                  d      rt        | j                  d            |d<   |S )Nmessagerolecontent)r   r   r   )
isinstancestrgetr   )r   r   clean_messages     r   r#   z%parse_messages.<locals>.clean_message+   sw    gs#N !344 KK'{{9-

 ;;|$'7L8Q'RJ|$r      r   )r    listlen)inputmsgr#   s     @r   parse_messagesr)   &   s`    }& %u:? q**278%3M#&%88U## 9s   Ac                       e Zd Zd Zi ddd ej
                  ej                         ej
                  ej                        dfdZy)LunaryLoggerc                 6   	 dd l }t        j                  j                  d      }t        j                  j                  |      t        j                  j                  d      k  rt        d       t        || _        y # t        $ r t        d       t        w xY w)Nr   lunaryz0.1.43zXLunary version outdated. Required: >= 0.1.43. Upgrade via 'pip install lunary --upgrade'zBLunary not installed. Please install it using 'pip install lunary')	r-   	importlibmetadataversion	packagingVersionprintImportErrorlunary_client)selfr-   r0   s      r   __init__zLunaryLogger.__init__I   s    	((00:G  ((1I4E4E4M4Mh4WWn "!!'D 	T 		s   A:A= =BNc                 P   	  |d|        d }|j                  di       }|j                  di       }|j                  di       xs i }|ri ||}|j                  dd       }|rF|j                  dd        |j                  dd        |j                  di       j                  d	d       }|j                         D ];  \  }}t        |t        t
        t        t        f      r'|d
k7  s-	 t	        |      ||<   = |
r d|
v rt        |
d         nd }d|
v r|
d   nd }nd }d }|rd|i}nd }| j                  j                  |d||j                  dd       |	|t        |      |j                  t        j                        j!                         ||d||       | j                  j                  ||||j                  t        j                        j!                         d|t        |      |       y # t        $ r Y =w xY w# t        $ r   |dt#        j$                                 Y y w xY w)Nz+Lunary Logging - Logging request for model litellm_paramsoptional_paramsr/   tags
extra_bodyuserextra_headerszTemplate-Idtoolsr   choicesstackstartparent_run_idlitellm)
rC   user_idr   r'   	timestamptemplate_idr/   runtimer;   params)rF   rH   erroroutputtoken_usagezLunary Logging Error - )r"   popitemsr    r!   intboolfloat	Exceptionr   r5   track_eventr)   
astimezoner   utc	isoformat	traceback
format_exc)r6   kwargsr   eventrun_idmodelprint_verboseextrar'   rE   response_obj
start_timeend_timerJ   rG   r9   r:   r/   r;   paramvaluer   rK   	error_objs                           r   	log_eventzLunaryLogger.log_event\   sL    I	GwOPK#ZZ(8"=N$jj):B?O%))*b9?RH454O4<<-D		,-		&$'#ii<@@PTU !&u!%#sD%)@AewFV'*5ze !.  ,.  W 56  5>4Mi0SW $e,	 	**&ll?DA$U+$//=GGI'!! +   **"--hll;EEG!%f-! + 	K % `  	3I4H4H4J3KLM	s=   CG< "G< )G,7C4G< ,	G95G< 8G99G< <&H%$H%)	__name__
__module____qualname__r7   r   nowr   rU   re   r
   r   r   r+   r+   G   sB    6 8<<-hll+Yr   r+   )	r.   rW   r   r   r1   r   r   r)   r+   r
   r   r   <module>rj      s0      ' D($Bn nr   