Ë
    tPêjš  ã                   óP  — U d dl mZ dZ	 d dlZd dlZd dlZd dl mZmZ d dlm	Z	 ej                  dk\  r	d dl mZmZ nd dl mZ d d	lmZ  ej                  e«      Zeed
<    ede¬«      Z ed«      Z G d„ deeef   «      Z G d„ d«      Zd dlZ G d„ d«      Zy# e$ r dZY Œw xY w)é    )ÚFinalTN)ÚAnyÚTypeVar)Ú
trace_tree)é   é   )ÚLiteralÚProtocol)r	   )r
   ÚloggerÚK)ÚboundÚVc                   óP   — e Zd ZU ed   ed<   dedefd„Zd	dededz  dedz  fd„Zy)
ÚOpenAIResponse)úchat.completionÚeditÚtext_completionÚobjectÚkeyÚreturnc                  ó   — y ©N© )Úselfr   s     úh/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/weights_biases.pyÚ__getitem__zOpenAIResponse.__getitem__   ó   � ó    NÚdefaultc                  ó   — y r   r   )r   r   r   s      r   ÚgetzOpenAIResponse.get   r   r   r   )	Ú__name__Ú
__module__Ú__qualname__r	   Ú__annotations__r   r   r   r!   r   r   r   r   r      s5   … àÐDÑEÓEà/ 1Ð/¨Ó/áH˜1ÐH q¨4¡xÐH¸1¸t¹8ÔHr   r   c                   óŒ  — e Zd Zdeeef   dededej                  dz  fd„Z
edeeef   dedeej                     dedej                  f
d„«       Zdeeef   dededej                  fd	„Zdeeef   dededej                  fd
„Zdeeef   dededej                  fd„Zdeeef   dededee   dedej                  fd„Zy)ÚOpenAIRequestResponseResolverÚrequestÚresponseÚtime_elapsedr   Nc                 ó4  — 	 |d   dk(  r| j                  |||«      S |d   dk(  r| j                  |||«      S |d   dk(  r| j                  |||«      S t        j	                  d|d   «       	 y # t
        $ r }t        j                  d|«       Y d }~y d }~ww xY w)Nr   r   r   r   z"Unknown OpenAI response object: %sz&Failed to resolve request/response: %s)Ú_resolve_editÚ_resolve_completionÚ_resolve_chat_completionr   ÚdebugÚ	ExceptionÚwarning)r   r(   r)   r*   Úes        r   Ú__call__z&OpenAIRequestResponseResolver.__call__!   s³   € ð
LØ˜HÑ%¨Ò/Ø×-Ñ-¨g°xÀÓNÐNØ˜hÑ'Ð+<Ò<Ø×3Ñ3°G¸XÀ|ÓTÐTØ˜hÑ'Ð+<Ò<Ø×8Ñ8¸À(ÈLÓYÐYä—L‘LÐ!EÀxÐPXÑGYÕZð øô ò LÜ—‘ÐGÈ×KÐKØûðLús'   ‚A. �A. ¸A. ÁA. Á.	BÁ7BÂBÚresultsc           	      óp  — t        t        |d   dz  «      «      }|t        t        |dz  «      «      z   }t        j                  |j	                  dd«      › d|d   › d|j	                  d«      › �t        |«      ||t        j                  j                  |¬«      }| |ddœ}t        j                  ||¬	«      S )
aj  Converts the request, response, and results into a trace tree.

            params:
                request: The request dictionary
                response: The response object
                results: A list of results object
                time_elapsed: The time elapsed in seconds
            returns:
                A wandb trace tree object.
            Úcreatediè  ÚmodelÚopenaiÚ_r   )ÚnameÚ
attributesÚstart_time_msÚend_time_msÚ	span_kindr4   )r(   r)   Ú_kind)Ú	root_spanÚ
model_dict)	ÚintÚroundr   ÚSpanr!   ÚdictÚSpanKindÚLLMÚWBTraceTree)r(   r)   r4   r*   r<   r=   ÚspanÚ	model_objs           r   Úresults_to_trace_treez3OpenAIRequestResponseResolver.results_to_trace_tree4   s¶   € ô" $'¤u¨X°iÑ-@À4Ñ-GÓ'HÓ#IˆMØ!.´´U¸<È$Ñ;NÓ5OÓ1PÑ!PˆKÜ$Ÿ/™/Ø Ÿ™ W¨hÓ7Ð8¸¸(À8Ñ:LÐ9MÈQÈxÏ|É|Ð\eÓOfÐNgÐhÜ ›>Ø+Ø'Ü$×-Ñ-×1Ñ1ØôˆDð ,3ÀÐS[Ñ\ˆIÜ×)Ñ)°DÀYÔOÐOr   c                 óˆ   — d|d   › d|d   › d�}|d   D �cg c]  }d|d   › d�‘Œ }}| j                  |||||¬	«      S c c}w )
z<Resolves the request and response objects for `openai.Edit`.z

**Instruction**: Úinstructionz

**Input**: Úinputú
Úchoicesz

**Edited**: Útext©r(   r)   Úrequest_strrP   r*   ©Ú!_request_response_result_to_trace©r   r(   r)   r*   rS   ÚchoicerP   s          r   r,   z+OpenAIRequestResponseResolver._resolve_editR   s}   € ð $9¸ÀÑ9OÐ8PÐP_Ð`gÐhoÑ`pÐ_qÐqsÐ!tˆKØRZÐ[dÑReÖfÈÐ 0°¸±Ð0@ÀÒCÐfˆGÐfà×9Ñ9ØØ!Ø'ØØ)ð :ó ð ùò gs   —?c                 ó|   — d|d   › d�}|d   D �cg c]  }d|d   › d�‘Œ }}| j                  |||||¬«      S c c}w )úBResolves the request and response objects for `openai.Completion`.z

**Prompt**: ÚpromptrO   rP   z

**Completion**: rQ   rR   rT   rV   s          r   r-   z1OpenAIRequestResponseResolver._resolve_completiond   sm   € ð $4°G¸HÑ4EÐ3FÀbÐ!IˆKØV^Ð_hÑViÖjÈFÐ 4°V¸F±^Ð4DÀBÒGÐjˆGÐjà×9Ñ9ØØ!Ø'ØØ)ð :ó ð ùò ks   ‘9c                 ó  — t        j                  «       }|d   D ]   }|j                  d|d   › d|d   › d�«       Œ" |j                  «       }|d   D �cg c]  }d|d   d   › d|d   d   › d�‘Œ }}| j	                  |||||¬	«      S c c}w )
rY   Úmessagesz

**Úrolez**: ÚcontentrO   rP   ÚmessagerR   )ÚioÚStringIOÚwriteÚgetvaluerU   )	r   r(   r)   r*   rZ   r_   rS   rW   rP   s	            r   r.   z6OpenAIRequestResponseResolver._resolve_chat_completionv   sÏ   € ô ŸK™K›MˆFØ" :Ñ.ò S�Ø—‘˜v g¨f¡oÐ%6°d¸7À9Ñ;MÐ:NÈbÐQÕRðSà!'§¡Ó!2ˆKð ' yÑ1öàð ˜ 	Ñ*¨6Ñ2Ð3°4¸¸yÑ8IÈ)Ñ8TÐ7UÐUWÒXðˆGð ð
 ×9Ñ9ØØ!Ø'ØØ)ð :ó ð ùòs   ÁBrS   rP   c                 óˆ   — |D �cg c]  }t        j                  d|id|i¬«      ‘Œ }}| j                  ||||«      }|S c c}w )rY   r(   r)   )ÚinputsÚoutputs)r   ÚResultrK   )	r   r(   r)   rS   rP   r*   rW   r4   Útraces	            r   rU   z?OpenAIRequestResponseResolver._request_response_result_to_trace�   sa   € ð &öð
 ô	 ×!Ñ!Ø% {Ð3Ø'¨Ð0öðˆGð ð  ×5Ñ5°g¸xÈÐR^Ó_ˆEØˆLùòs   …"?)r"   r#   r$   rE   Ústrr   r   Úfloatr   rH   r3   ÚstaticmethodÚlistrg   rK   r,   r-   r.   rU   r   r   r   r'   r'       sž  „ ð	à˜#˜s˜(‘^ð	ð %ð	ð  ð		ð
 ×#Ñ# dÑ*ó	ð& 
ð	PØ˜#˜s˜(‘^ð	Pà$ð	Pð ˜*×+Ñ+Ñ,ð	Pð  ð		Pð
 ×#Ñ#ò	Pó 
ð	Pð:	à˜#˜s˜(‘^ð	ð %ð	ð  ð		ð
 ×#Ñ#ó	ð$	à˜#˜s˜(‘^ð	ð %ð	ð  ð		ð
 ×#Ñ#ó	ð$	à˜#˜s˜(‘^ð	ð %ð	ð  ð		ð
 ×#Ñ#ó	ð2	à˜#˜s˜(‘^ð	ð %ð	ð ð		ð
 ˜#‘Yð	ð  ð	ð ×#Ñ#ô	r   r'   Fc                   ó   — e Zd Zd„ Zd„ Zy)ÚWeightsBiasesLoggerc                 ó|   — 	 	 t        du rt        d«      ‚t        «       | _        y # t         $ r t        d«      ‚w xY w)NzP[91m wandb not installed, try running 'pip install wandb' to fix this error[0mF)r0   Úimported_openAIResponser'   Úresolver)r   s    r   Ú__init__zWeightsBiasesLogger.__init__­   sJ   € ð	vØô # eÑ+ÜÐtÓuÐuÜ5Ó7ˆ�øô	 ò 	vÜÐtÓuÐuð	vús   ¦;c                 ó^  — dd l }	  |d|› �«       |j                  «       } ||«       | j                  ||||z
  j                  «       «      }|�|�|j	                  d|i«       |�|j                  «         |d|› �«       y y # t        $ r   |dt        j                  «       › �«       Y y w xY w)Nr   z0W&B Logging - Enters logging function for model rh   z-W&B Logging Logging - final response object: zW&B Logging Layer Error - )	ÚwandbÚinitrq   Útotal_secondsÚlogÚfinishr0   Ú	tracebackÚ
format_exc)	r   ÚkwargsÚresponse_objÚ
start_timeÚend_timeÚprint_verbosert   Úrunrh   s	            r   Ú	log_eventzWeightsBiasesLogger.log_event¶   s¹   € ãð	QÙÐLÈVÈHÐUÔVØŸ™›ˆCÙ˜,Ô'àŸ=™=¨°ÀÈ:Ñ@U×?dÑ?dÓ?fÓgˆEàÐ  S _Ø—‘˜ %Ð(Ô)àˆØ—
‘
”ÙÐ MÈlÈ^Ð\Õ]ð øô ò 	QÙÐ6´y×7KÑ7KÓ7MÐ6NÐOÖPð	Qús   †A;B Â&B,Â+B,N)r"   r#   r$   rr   r�   r   r   r   rn   rn   «   s   „ ò8óQr   rn   )Útypingr   rp   r`   ÚloggingÚsysr   r   Úwandb.sdk.data_typesr   Úversion_infor	   r
   Útyping_extensionsÚ	getLoggerr"   r   r%   ri   r   r   r   r'   r0   ry   rn   r   r   r   ú<module>r‰      s´   ðÞ àÐ ð_$ÛÛÛß#å/à
×Ñ˜6Ò!ß,Ð,å"å.à%�G×%Ñ% hÓ/€FˆEÓ/á�˜3Ô€AÙ�‹€AôI˜ ! Q $™ô I÷@ñ @óP ÷Qò Qøð ò $Ø#Òð$ús   ‹BB ÂB%Â$B%