Ë
    tPêjÁ  ã                   óŽ   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZmZmZ d dlmZmZ  G d	„ d
e«      Zy)é    N)ÚFinal)Úverbose_logger)Úuuid)ÚCustomLogger)ÚApiÚ	EndpointsÚHttpMethods)ÚBaseApiSpanÚSpanApiTypeÚTraceApiÚTraceSpanApiStatus)Úto_zod_compatible_isoÚvalidate_environmentc                   óX   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zˆ xZS )ÚDeepEvalLoggerz+Logs litellm traces to DeepEval's platform.c                 óê   •— t        j                  d«      }t        j                  dd«      | _        t        | j                  «       |st	        d«      ‚t        |¬«      | _        t        ‰| �   |i |¤Ž y )NÚCONFIDENT_API_KEYÚLITELM_ENVIRONMENTÚdevelopmentz@Please set 'CONFIDENT_API_KEY=<>' in your environment variables.)Úapi_key)	ÚosÚgetenvÚlitellm_environmentr   Ú
ValueErrorr   ÚapiÚsuperÚ__init__)ÚselfÚargsÚkwargsr   Ú	__class__s       €úk/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/deepeval/deepeval.pyr   zDeepEvalLogger.__init__   sa   ø€ ÜŸ™Ð#6Ó7ˆÜ#%§9¡9Ð-AÀ=Ó#QˆÔ Ü˜T×5Ñ5Ô6ÙÜÐ_Ó`Ð`Ü˜wÔ'ˆŒÜ‰Ñ˜$Ð) &Ó)ó    c                 ó0   — | j                  ||||d¬«       y©z,Logs a success event to DeepEval's platform.T©Ú
is_successN©Ú_sync_event_handler©r   r    Úresponse_objÚ
start_timeÚend_times        r"   Úlog_success_eventz DeepEvalLogger.log_success_event"   s   € à× Ñ  ¨°zÀ8ÐX\Ð Õ]r#   c                 ó0   — | j                  ||||d¬«       y©z,Logs a failure event to DeepEval's platform.Fr&   Nr(   r*   s        r"   Úlog_failure_eventz DeepEvalLogger.log_failure_event&   s   € à× Ñ  ¨°zÀ8ÐX]Ð Õ^r#   c              ƒ   óL   K  — | j                  ||||d¬«      ƒ d{  –—†  y7 Œ­wr0   ©Ú_async_event_handlerr*   s        r"   Úasync_log_failure_eventz&DeepEvalLogger.async_log_failure_event*   s&   è ø€ à×'Ñ'¨°¸jÈ(Ð_dÐ'Óe×eÒeúó   ‚$œ"�$c              ƒ   óL   K  — | j                  ||||d¬«      ƒ d{  –—†  y7 Œ­wr%   r3   r*   s        r"   Úasync_log_success_eventz&DeepEvalLogger.async_log_success_event.   s&   è ø€ à×'Ñ'¨°¸jÈ(Ð_cÐ'Ód×dÒdúr6   c                 ó4  — t        |«      }t        |«      }|j                  di «      }| j                  |||||¬«      }	| j                  |	|||| j                  ¬«      }
i }	 |
j                  dd¬«      }|S # t        $ r |
j                  dd¬«      }Y |S w xY w)NÚstandard_logging_object)r:   r,   r-   r'   )r:   r,   r-   r   T)Úby_aliasÚexclude_none)r   ÚgetÚ_create_base_api_spanÚ_create_trace_apir   Ú
model_dumpÚAttributeErrorÚdict)r   r    r+   r,   r-   r'   Ú_start_timeÚ	_end_timeÚ_standard_logging_objectÚbase_api_spanÚ	trace_apiÚbodys               r"   Ú_prepare_trace_apiz!DeepEvalLogger._prepare_trace_api2   sÌ   € Ü2°:Ó>ˆÜ0°Ó:ˆ	Ø*0¯*©*Ð5NÐPRÓ*SÐ Ø#×9Ñ9ØØ$<Ø"ØØ!ð  :ó  
ˆð  ×1Ñ1ØØ$<Ø"ØØ $× 8Ñ 8ð 2ó 
ˆ	ð ˆð	DØ×'Ñ'°ÀDÐ'ÓIˆDð ˆøô ò 	Dà—>‘>¨4¸d�>ÓC‰DØˆð	Dús   Á"A7 Á7BÂBc                 óö   — | j                  |||||«      }	 | j                  j                  t        j                  t
        j                  |¬«      }t        j                  d|«       y # t        $ r}|‚d }~ww xY w)N©ÚmethodÚendpointrH   z7DeepEvalLogger: sync_log_failure_event: Api response %s)
rI   r   Úsend_requestr	   ÚPOSTr   ÚTRACING_ENDPOINTÚ	Exceptionr   Údebug)	r   r    r+   r,   r-   r'   rH   ÚresponseÚes	            r"   r)   z"DeepEvalLogger._sync_event_handlerN   sz   € Ø×-Ñ-¨f°lÀJÐPXÐZdÓeˆð	Ø"Ÿh™h×3Ñ3Ü"×'Ñ'Ü"×3Ñ3Øð 4ó ˆHô 	×ÑÐVÐX`Õaøô ò 	ØˆGûð	ús   —:A( Á(	A8Á1A3Á3A8c              ƒ   óê   K  — | j                  |||||«      }| j                  j                  t        j                  t
        j                  |¬«      ƒ d {  –—† }t        j                  d|«       y 7 Œ­w)NrK   z4DeepEvalLogger: async_event_handler: Api response %s)	rI   r   Úa_send_requestr	   rO   r   rP   r   rR   )r   r    r+   r,   r-   r'   rH   rS   s           r"   r4   z#DeepEvalLogger._async_event_handlerZ   sl   è ø€ Ø×-Ñ-¨f°lÀJÐPXÐZdÓeˆØ $§¡× 7Ñ 7Ü×#Ñ#Ü×/Ñ/Øð !8ó !
÷ 
ˆô 	×ÑÐSÐU]Õ^ð
ús   ‚AA3ÁA1ÁA3c                 óæ  — |j                  di «      j                  di «      }|rG|j                  di «      j                  di g«      d   j                  di «      j                  dd«      }nt        |j                  dd	«      «      }t        |j                  d
t        j                  «       «      |rdnd|rt
        j                  nt
        j                  t        j                  |j                  dt        j                  «       «      t        |«      t        |«      |j                  dd«      ||j                  dd «      |r|j                  dd «      nd |r|j                  dd «      ¬«      S d ¬«      S )NrS   ÚusageÚchoicesr   ÚmessageÚcontentÚ	NO_OUTPUTÚerror_stringÚ ÚidÚlitellm_success_callbackÚlitellm_failure_callbackÚtrace_idÚinputÚNO_INPUTÚmodelÚprompt_tokensÚcompletion_tokens)r   ÚnameÚstatusÚtypeÚ	traceUuidÚ	startTimeÚendTimerc   Úoutputre   ÚinputTokenCountÚoutputTokenCount)
r=   Ústrr
   r   Úuuid4r   ÚSUCCESSÚERROREDr   ÚLLM)r   r    r:   r,   r-   r'   rX   rn   s           r"   r>   z$DeepEvalLogger._create_base_api_spand   sC  € à.×2Ñ2°:¸rÓB×FÑFÀwÐPRÓSˆÙà'×+Ñ+¨J¸Ó;ß‘�Y  Ó% añ)ç‘�Y Ó#ß‘�Y Ó,ñ	 ô Ð0×4Ñ4°^ÀRÓHÓIˆFÜØ(×,Ñ,¨T´4·:±:³<Ó@Ù0:Ñ,Ð@ZÙ2<Ô&×.Ò.ÔBT×B\ÑB\Ü—‘Ø-×1Ñ1°*¼d¿j¹j»lÓKÜ˜*“oÜ˜“MØ—*‘*˜W jÓ1ØØ)×-Ñ-¨g°tÓ<Ù@J˜EŸI™I o°tÔ<ÐPTÙFP˜eŸi™iÐ(;¸TÓBô
ð 	
ð W[ô
ð 	
r#   c                 ó”   — t        |j                  dt        j                  «       «      g g |gg g t	        |«      t	        |«      |¬«	      S )Nrb   )	r   Ú	baseSpansÚ
agentSpansÚllmSpansÚretrieverSpansÚ	toolSpansrl   rm   Úenvironment)r   r=   r   rr   rq   )r   rF   r:   r,   r-   r   s         r"   r?   z DeepEvalLogger._create_trace_api   sI   € ô Ø(×,Ñ,¨Z¼¿¹»ÓFØØØ#�_ØØÜ˜*“oÜ˜“MØ+ô

ð 
	
r#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r.   r1   r5   r8   rI   r)   r4   r>   r?   Ú__classcell__)r!   s   @r"   r   r      s>   ø„ Ù5ô*ò^ò_òfòeòò8
bò_ò
ö6
r#   r   )r   Útypingr   Úlitellm._loggingr   Úlitellm._uuidr   Ú"litellm.integrations.custom_loggerr   Ú!litellm.integrations.deepeval.apir   r   r	   Ú#litellm.integrations.deepeval.typesr
   r   r   r   Ú#litellm.integrations.deepeval.utilsr   r   r   © r#   r"   ú<module>rŠ      s7   ðÛ 	Ý å +Ý Ý ;ß IÑ I÷ó ÷ô{
�\õ {
r#   