
    sgL                         d dl mZ ddlmZmZmZ  ej                  e      Zdde	de
fdZddede
fdZ G d	 d
      Zy)   )logging   )
AgentAudio
AgentImage	AgentTextstep_log	test_modec              #     K   	 ddl m} | j                  d      r |d| d          | j                  d	      r<| d	   d
   dk(  }| d	   d   }|rd| d} |ddd| d	   d
    it	        |             | j                  d      r |dd| d    d       | j                  d      r |dt	        | d         ddi       y y # t        $ r |r G d d      }nt        d      Y w xY ww)N    ChatMessagec                       e Zd ZddZy)!pull_message.<locals>.ChatMessageNc                 .    || _         || _        || _        y Nrolecontentmetadataselfr   r   r   s       Q/var/www/html/venv/lib/python3.12/site-packages/transformers/agents/monitoring.py__init__z*pull_message.<locals>.ChatMessage.__init__        $DI#*DL$,DM    r   __name__
__module____qualname__r    r   r   r   r          -r   r   <Gradio should be installed in order to launch a gradio demo.	rationale	assistantr   r   	tool_call	tool_namezcode interpretertool_argumentsz```py

```titleu   🛠️ Used tool )r   r   r   observationz```
erroru
   💥 Errorr   )gradior   ImportErrorgetstr)r   r	   r   	used_coder   s        r   pull_messager2      s6    ^& ||K {H[4IJJ||K [)+6:LL	;'(89y.G!3H[4I+4V3WXYL
 	

 ||M"{eH]<S;TTY4Z[[||G)*|,
 	
 3  	^- - \]]-	^s(   C0C	 B?C0	!C-*C0,C--C0taskc              +   0  K   	 ddl m}  | j                  |fddi|D ])  }t	        |t
              st        ||      D ]  }|  + }t	        |t              r |d	d
|j                          d       yt	        |t              r |d	|j                         dd       yt	        |t              r |d	|j                         dd       y |d	t        |             y# t        $ r |r G d d      }nt        d      Y w xY ww)zaRuns an agent with the given task and streams the messages from the agent as gradio ChatMessages.r   r   c                       e Zd ZddZy)%stream_to_gradio.<locals>.ChatMessageNc                 .    || _         || _        || _        y r   r   r   s       r   r   z.stream_to_gradio.<locals>.ChatMessage.__init__E   r   r   r   r   r    r   r   r   r6   D   r!   r   r   r"   streamT)r	   r$   z**Final answer:**
```
r)   r%   z	image/png)path	mime_typez	audio/wavN)r-   r   r.   run
isinstancedictr2   r   	to_stringr   r   r0   )agentr3   r	   kwargsr   r   messagefinal_answers           r   stream_to_gradiorC   <   s+    ^& EIId:4:6: h%'IF 
 L,	*{6N|OeOeOgNhhm4noo	L*	-)335KP
 	
 
L*	-)335KP
 	

 {C4EFF?  	^- - \]]-	^s-   DC. (DB;D.!DDDDc                       e Zd Zd Zd Zy)Monitorc                 r    g | _         || _        t        | j                  dd      dk7  rd| _        d| _        y y )Nlast_input_token_countz	Not foundr   )step_durationstracked_llm_enginegetattrtotal_input_token_counttotal_output_token_count)r   rI   s     r   r   zMonitor.__init__d   sA     "44**,DkRVaa+,D(,-D) br   c                 ,   |d   }| j                   j                  |       t        j                  dt	        | j                          d       t        j                  d|dd       t        | j                  dd       | xj                  | j                  j                  z  c_        | xj                  | j                  j                  z  c_	        t        j                  d| j                          t        j                  d	| j                          y y )
Nstep_durationzStep :z- Time taken: z.2fz' seconds (valid only if step succeeded)rG   z- Input tokens: z- Output tokens: )rH   appendloggerinfolenrJ   rI   rK   rG   rL   last_output_token_count)r   r   rN   s      r   update_metricszMonitor.update_metricsk   s     1""=1eC 3 345Q78n]3$77^_`4**,DdKW((D,C,C,Z,ZZ())T-D-D-\-\\)KK*4+G+G*HIJKK+D,I,I+JKL	 Xr   N)r   r   r   r   rU   r    r   r   rE   rE   c   s    .
Mr   rE   N)T)F)utilsr   agent_typesr   r   r   
get_loggerr   rQ   r=   boolr2   r0   rC   rE   r    r   r   <module>rZ      s[   "  : : 
		H	%!
4 !
D !
H$G# $G$ $GNM Mr   