+
    Zi                        R t ^ RIHt ^ RIt^ RIHtHt ^ RIt^ RIH	t	 ]P                  ! ]4      t]! R]	R7      t ! R R4      tR# )	uA   
Base agent class – wraps instructor for structured LLM calls.
)annotationsN)TypeTypeVar)	BaseModelT)boundc                  B    ] tR t^tRtRR R lltRRRR/R R	 lltR
tR# )	BaseAgentzHThin wrapper around *instructor* that provides a unified call interface.c                    V ^8  d   QhRRRR/# )   modelstrmax_retriesint )formats   "N/home/gabslocked/Desktop/Projetos/Images/video_automation/agents/base_agent.py__annotate__BaseAgent.__annotate__   s     ' 'c '# '    c                	X    Wn         \        P                  ! VR R7      V n        W n        R# )F)async_clientN)r   
instructorfrom_providerclientr   )selfr   r   s   &&&r   __init__BaseAgent.__init__   s!    
 ..u5I&r   temperaturegffffff?
max_tokensNc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   system_promptr   user_promptresponse_modelzType[T]r   floatr   z
int | Nonereturnr   r   )r   s   "r   r   r      sH        	
     
r   c                  \         P                  RV P                  VP                  4       \	        V P                  P                  R^4      R
,          RRRV/RRRV/.VVV P                  R7      pVe   WVR&   V P                  P                  P                  P                  ! R/ VB p\         P                  R	VP                  4       V# )zBSend a structured completion request and return a validated model.z'Agent call  model=%s  response_model=%s/rolesystemcontentuser)r   messagesr#   r   r   r   zAgent response received for %sr   )loggerdebugr   __name__dictsplitr   r   chatcompletionscreate)r   r!   r"   r#   r   r   kwargsresults   &$$$$$  r   callBaseAgent.call   s     	5JJ##	

 **""3*2.9m<K8 *#((	
 !#-< !!--44>v>5~7N7NOr   )r   r   r   )zopenai/gpt-4o   )r0   
__module____qualname____firstlineno____doc__r   r8   __static_attributes__r   r   r   r	   r	      s(    R' ! "& r   r	   )r>   
__future__r   loggingtypingr   r   r   pydanticr   	getLoggerr0   r.   r   r	   r   r   r   <module>rE      sA    #     			8	$Cy!( (r   