
    WiZk                       d dl mZ d dlZd dlZd dlmZ d dlZddlmZm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZ d dlmZmZ d d	lmZmZmZmZ d d
lmZ d dlm Z  ddl!m"Z" ddl#m$Z$m%Z%  edee ddf         Z& G d d      Z' G d de'      Z( G d d      Z) G d de)      Z*eejV                  jX                  f	 	 	 	 	 	 	 d#d       Z-eejV                  jX                  f	 	 	 	 	 	 	 d$d       Z-d%dZ.	 	 d%dZ/ejV                  jX                  f	 	 	 	 	 	 	 d&dZ-eejV                  jX                  f	 	 	 	 	 	 	 d'd        Z0eejV                  jX                  f	 	 	 	 	 	 	 d(d!       Z0ejV                  jX                  f	 	 	 	 	 	 	 d)d"Z0y)*    )annotationsN)partial   )Providerget_provider)ChatCompletionMessageParam)TypeVarCallableoverloadUnionLiteralAny
get_originget_args)AsyncRetryingRetrying)	GeneratorIterable	AwaitableAsyncGenerator)Self)	BaseModel)Partial   )HooksHookNameTzIterable[Any]zPartial[Any])boundc                      e Zd Z	 	 ddZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 d	dZ	 d
	 	 	 	 	 	 	 ddZ	 d
	 	 	 	 	 	 	 ddZ	 d
	 	 	 	 	 	 	 ddZy)Responsec                    || _         y Nclientselfr$   s     b/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/instructor/core/client.py__init__zResponse.__init__"   s         Nc           
     t    t        |t              rd|dg} | j                  j                  d||||||d|S Nuserrolecontent)response_modelvalidation_contextcontextmax_retriesstrictmessages 
isinstancestrr$   creater&   inputr0   r3   r1   r2   r4   kwargss           r'   r:   zResponse.create(   s^     eS! #$E "t{{!! 
)1#
 
 	
r)   c                n    t        |t              rd|dg} | j                  j                  d|||d|S Nr,   r-   )r5   r0   r3   r6   r8   r9   r$   create_with_completionr&   r<   r0   r3   r=   s        r'   rA   zResponse.create_with_completionD   sU     eS! #$E 2t{{11 
)#
 	
 	
r)   c                n    t        |t              rd|dg} | j                  j                  d|||d|S r?   r8   r9   r$   create_iterablerB   s        r'   rE   zResponse.create_iterableZ   sU     eS! #$E +t{{** 
)#
 	
 	
r)   c                n    t        |t              rd|dg} | j                  j                  d|||d|S r?   )r8   r9   r$   create_partialrB   s        r'   rG   zResponse.create_partialp   sU     eS! #$E *t{{)) 
)#
 	
 	
r)   )r$   
InstructorN   NNT)r<   &str | list[ChatCompletionMessageParam]r0   type[T] | Noner3   int | Retryingr1   dict[str, Any] | Noner2   rN   r4   boolreturnT | AnyrJ   )r<   rK   r0   type[T]r3   rM   rP   tuple[T, Any])r<   rK   r0   rS   r3   rM   rP   Generator[T, None, None])__name__
__module____qualname__r(   r:   rA   rE   rG   r6   r)   r'   r    r    !   s     *.&'48)-
5
 '
 $	

 2
 '
 
 

@ '(	
5
  
 $	
 

4 '(	
5
  
 $	
 
"
4 '(	
5
  
 $	
 
"
r)   r    c                  v    e Zd ZddZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 d		 	 	 	 	 	 	 d
dZ	 d		 	 	 	 	 	 	 ddZy)AsyncResponsec                    || _         y r"   r#   r%   s     r'   r(   zAsyncResponse.__init__   s	    r)   Nc           
        K   t        |t              rd|dg} | j                  j                  d||||||d| d {   S 7 wr+   r7   r;   s           r'   r:   zAsyncResponse.create   sl      eS! #$E (T[['' 
)1#
 
 
 	
 
s   =AA Ac                   K   t        |t              rd|dg} | j                  j                  d|||d| d {   S 7 wr?   r@   rB   s        r'   rA   z$AsyncResponse.create_with_completion   sc      eS! #$E 8T[[77 
)#
 	
 
 	
 
s   :AAAc                v   K   t        |t              rd|dg} | j                  j                  d|||d|S wr?   rD   rB   s        r'   rE   zAsyncResponse.create_iterable   sY      eS! #$E +t{{** 
)#
 	
 	
s   79)r$   AsyncInstructorrI   )r<   rK   r0   rL   r3   int | AsyncRetryingr1   rN   r2   rN   r4   rO   rP   rQ   rR   )r<   rK   r0   rS   r3   r`   rP   rT   )r<   rK   r0   rS   r3   r`   rP   AsyncGenerator[T, None])rV   rW   rX   r(   r:   rA   rE   r6   r)   r'   rZ   rZ      s     *.+,48)-
5
 '
 )	

 2
 '
 
 

@ ,-	
5
  
 )	
 

4 ,-	
5
  
 )	
 
!
r)   rZ   c                     e Zd ZU ded<   ded<   ded<   dZded	<   d
ed<   ded<   ej                  j                  ej                  df	 	 	 	 	 	 	 	 	 	 	 d%dZ
	 	 	 	 	 	 d&dZ	 	 	 	 	 	 d&dZ	 d'	 	 	 d(dZed)d       Zed)d       Zed)d       Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+d       Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d,d       Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d-d       Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d.d       Z	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d/dZe	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0d       Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d1d       Z	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2dZe	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d       Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4d       Z	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5dZe	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d6d        Ze	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d7d!       Z	 	 	 	 	 d*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d8d"Zd9d#Zd:d$Zy);rH   
Any | Noner$   Callable[..., Any]	create_fninstructor.ModemodeN
str | Nonedefault_modelr   providerr   hooksc                   || _         || _        || _        |t        j                  j
                  k(  rt        j                  j                          || _        || _        |xs
 t               | _
        |t        j                  j                  t        j                  j                  hv r>t        |t        j                  t        j                   f      sJ t#        |       | _        y y Nr#   )r$   re   rg   
instructorMode	FUNCTIONSwarn_mode_functions_deprecationr=   rj   r   rk   RESPONSES_TOOLS"RESPONSES_TOOLS_WITH_INBUILT_TOOLSr8   openaiOpenAIAsyncOpenAIr    	responsesr&   r$   r:   rg   rj   rk   r=   s          r'   r(   zInstructor.__init__   s     	:??,,,OO;;= %eg
OO++OO>>
 
 fv}}f6H6H&IJJJ%T2DN
r)   c                <    | j                   j                  ||       y r"   )rk   onr&   	hook_namehandlers      r'   rz   zInstructor.on   s     	

i)r)   c                <    | j                   j                  ||       y r"   )rk   offr{   s      r'   r   zInstructor.off  s     	

y'*r)   c                :    | j                   j                  |       y r"   )rk   clear)r&   r|   s     r'   r   zInstructor.clear  s     	

#r)   c                    | S r"   r6   r&   s    r'   chatzInstructor.chat&      r)   c                    | S r"   r6   r   s    r'   completionszInstructor.completions*  r   r)   c                    | S r"   r6   r   s    r'   r5   zInstructor.messages.  r   r)   c                     y r"   r6   	r&   r0   r5   r3   r1   r2   r4   rk   r=   s	            r'   r:   zInstructor.create2  s     r)   c                     y r"   r6   r   s	            r'   r:   zInstructor.create?  s     r)   c                     y r"   r6   r   s	            r'   r:   zInstructor.createL  s     r)   c                     y r"   r6   r   s	            r'   r:   zInstructor.createY  s     r)   c                    | j                  |      }| j                  }	|| j                  |z   }	 | j                  d|||||||	d|S )N)r0   r5   r3   r1   r2   r4   rk   r6   )handle_kwargsrk   re   
r&   r0   r5   r3   r1   r2   r4   rk   r=   combined_hookss
             r'   r:   zInstructor.createf  sj     ##F+ !ZZ%/Nt~~ 	
)#1 	
 	
 		
r)   c                     y r"   r6   r   s	            r'   rG   zInstructor.create_partial       #&r)   c                     y r"   r6   r   s	            r'   rG   zInstructor.create_partial       $'r)   c                    d|d<   | j                  |      }| j                  }	|| j                  |z   }	t        j                  |   } | j                  d|||||||	d|S NTstreamr5   r0   r3   r1   r2   r4   rk   r6   )r   rk   rn   r   re   r   s
             r'   rG   zInstructor.create_partial  s      x##F+ !ZZ%/N#++N;t~~ 	
)#1 	
 	
 		
r)   c                     y r"   r6   	r&   r5   r0   r3   r1   r2   r4   rk   r=   s	            r'   rE   zInstructor.create_iterable  r   r)   c                     y r"   r6   r   s	            r'   rE   zInstructor.create_iterable  r   r)   c                    d|d<   | j                  |      }| j                  }	|| j                  |z   }	t        |   } | j                  d|||||||	d|S r   )r   rk   r   re   )
r&   r5   r0   r3   r1   r2   r4   rk   r=   r   s
             r'   rE   zInstructor.create_iterable  s~      x##F+ !ZZ%/N!.1t~~ 	
)#1 	
 	
 		
r)   c                     y r"   r6   r   s	            r'   rA   z!Instructor.create_with_completion  r   r)   c                     y r"   r6   r   s	            r'   rA   z!Instructor.create_with_completion  s     r)   c                    | j                  |      }| j                  }	|| j                  |z   }	 | j                  d|||||||	d|}
|
|
j                  fS )Nr   r6   r   rk   re   _raw_response)r&   r5   r0   r3   r1   r2   r4   rk   r=   r   models              r'   rA   z!Instructor.create_with_completion  sz     ##F+ !ZZ%/N 	
)#1 	
 	
 e))))r)   c                ^    | j                   j                         D ]  \  }}||vs|||<    |S )a  
        Handle and process keyword arguments for the API call.

        This method merges the provided kwargs with the default kwargs stored in the instance.
        It ensures that any kwargs passed to the method call take precedence over the default ones.
        )r=   items)r&   r=   keyvalues       r'   r   zInstructor.handle_kwargs.  s<     ++++- 	$JC& #s	$ r)   c                N    |dvrt        | j                  |      S t        | |      S )N>   r   r:   r5   )getattrr$   )r&   attrs     r'   __getattr__zInstructor.__getattr__:  s)    554;;--tT""r)   r$   rc   r:   rd   rg   rf   rj   r   rk   Hooks | Noner=   r   )r|   z|HookName | Literal['completion:kwargs', 'completion:response', 'completion:error', 'completion:last_attempt', 'parse:error']r}   zCallable[[Any], None]rP   Noner"   )r|   zHookName | Literal['completion:kwargs', 'completion:response', 'completion:error', 'completion:last_attempt', 'parse:error'] | NonerP   r   )rP   r   rJ   NNTN)r&   r_   r0   rS   r5    list[ChatCompletionMessageParam]r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   zAwaitable[T])r&   r   r0   rS   r5   r   r3   rM   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   r   )r&   r_   r0   r   r5   r   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   zAwaitable[Any])r&   r   r0   r   r5   r   r3   rM   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   r   )r0   rL   r5   r   r3   int | Retrying | AsyncRetryingr1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   z'T | Any | Awaitable[T] | Awaitable[Any])r&   r_   r0   rS   r5   r   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   ra   )r&   r   r0   rS   r5   r   r3   rM   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   rU   )r0   rS   r5   r   r3   r   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   2Generator[T, None, None] | AsyncGenerator[T, None])r&   r_   r5   r   r0   rS   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   ra   )r&   r   r5   r   r0   rS   r3   rM   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   rU   )r5   r   r0   rS   r3   r   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   r   )r&   r_   r5   r   r0   rS   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   zAwaitable[tuple[T, Any]])r&   r   r5   r   r0   rS   r3   rM   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   rT   )r5   r   r0   rS   r3   r   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   z(tuple[T, Any] | Awaitable[tuple[T, Any]])r=   dict[str, Any]rP   r   )r   r9   rP   r   )rV   rW   rX   __annotations__ri   rn   ro   TOOLSr   OPENAIr(   rz   r   r   propertyr   r   r5   r   r:   rG   rE   rA   r   r   r6   r)   r'   rH   rH      s   !!
 $M:$L !+ 5 5%__"33 #3 	3
 3 3 34** '* 
* ++ '+ 
+8 $
$ 
$        
 ,-48)-"


 3
 )	

 2
 '
 
 
 
 

 
 
 '(48)-"


 3
 $	

 2
 '
 
 
 
 

 
 
 ,-48)-"


 3
 )	

 2
 '
 
 
 
 

 
 
 '(48)-"


 3
 $	

 2
 '
 
 
 
 

 
  7848)-"
&
 3
 4	

 2
 '
 
 
 
 
1
: 
 ,-48)-"
&
&
& 3
& )	
&
 2
& '
& 
& 
& 
& 
!
& 
& 
 '(48)-"
'
'
' 3
' $	
'
 2
' '
' 
' 
' 
' 
"
' 
'  7848)-"

 3
 4	

 2
 '
 
 
 
 
<
@ 
 ,-48)-"
&
&2
&  
& )	
&
 2
& '
& 
& 
& 
& 
!
& 
& 
 '(48)-"
'
'2
'  
' $	
'
 2
' '
' 
' 
' 
' 
"
' 
'  7848)-"
2
  
 4	

 2
 '
 
 
 
 
<
> 
 ,-48)-"
'
'2
'  
' )	
'
 2
' '
' 
' 
' 
' 
"
' 
' 
 '(48)-"

2
  
 $	

 2
 '
 
 
 
 

 
  7848)-"*2*  * 4	*
 2* '* * * * 
2*<
#r)   rH   c                     e Zd ZU ded<   ded<   ded<   dZded	<   d
ed<   ded<   ej                  j                  ej                  df	 	 	 	 	 	 	 	 	 	 	 ddZ
	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy)r_   rc   r$   rd   re   rf   rg   Nrh   ri   r   rj   r   rk   c                X   || _         || _        || _        || _        || _        |xs
 t               | _        |t        j                  j                  t        j                  j                  hv r>t        |t        j                  t        j                  f      sJ t        |       | _        y y rm   )r$   re   rg   r=   rj   r   rk   rn   ro   rr   rs   r8   rt   ru   rv   rZ   rw   rx   s          r'   r(   zAsyncInstructor.__init__I  s     	 %eg
OO++OO>>
 
 fv}}f6H6H&IJJJ*$7DN
r)   c                  K   | j                  |      }| j                  }	|| j                  |z   }	t        |      t        hv rt	        |      rt	        |      d   | j
                  t        j                  j                  t        j                  j                  t        j                  j                  hvr& | j                  d|t	        |      d   |||||d|S  | j                  d|||||||	d| d {   S 7 w)Nr   r   r0   r1   r2   r3   r5   r4   rk   r6   )r   rk   r   r   r   rg   rn   ro   PARALLEL_TOOLSVERTEXAI_PARALLEL_TOOLSANTHROPIC_PARALLEL_TOOLSrE   re   r   s
             r'   r:   zAsyncInstructor.create`  s      ##F+ !ZZ%/N ~&8*4((+7		..7788 (4'' 	!'7:'#5	 	 	 $T^^ 	
)1# 	
 	
 	
 		
 	
s   C6C?8C=9C?c                  K   | j                  |      }d|d<   | j                  }	|| j                  |z   }	 | j                  dt        j                  |   ||||||	d| d {   2 3 d {   }
|
 7 7 6 y wNTr   r   r6   )r   rk   re   rn   r   )r&   r0   r5   r3   r1   r2   r4   rk   r=   r   items              r'   rG   zAsyncInstructor.create_partial  s      ##F+x !ZZ%/N . 	!
%--n=1# 	!
 	!
 	
 
	 
	$ J	
 
	 	
s6   A"A>$A8%A>)A<-A:.A<1A>:A<<A>c                  K   | j                  |      }d|d<   | j                  }	|| j                  |z   }	 | j                  dt        |   ||||||	d| d {   2 3 d {   }
|
 7 7 6 y wr   )r   rk   re   r   )r&   r5   r0   r3   r1   r2   r4   rk   r=   r   r   s              r'   rE   zAsyncInstructor.create_iterable  s      ##F+x !ZZ%/N . 	!
#N31# 	!
 	!
 	
 
	 
	$ J	
 
	 	
s6   AA4A.A4A2#A0$A2'A40A22A4c                   K   | j                  |      }| j                  }	|| j                  |z   }	 | j                  d|||||||	d| d {   }
|
|
j                  fS 7 w)Nr   r6   r   )r&   r5   r0   r3   r1   r2   r4   rk   r=   r   responses              r'   rA   z&AsyncInstructor.create_with_completion  s      ##F+ !ZZ%/N' 	
)1# 	
 	
 	
 ////	
s   AA#A!A#r   r   )r0   rL   r5   r   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   rQ   )r0   rS   r5   r   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   ra   )r5   r   r0   rS   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   ra   )r5   r   r0   rS   r3   r`   r1   rN   r2   rN   r4   rO   rk   r   r=   r   rP   rT   )rV   rW   rX   r   ri   rn   ro   r   r   r   r(   r:   rG   rE   rA   r6   r)   r'   r_   r_   A  s<   !!
 $M:$L !+ 5 5%__"88 #8 	8
 8 8 86 ,-48)-"2
&2
 32
 )	2

 22
 '2
 2
 2
 2
 
2
p ,-48)-" 3 )	
 2 '    
!F ,-48)-"2   )	
 2 '    
!F ,-48)-"020  0 )	0
 20 '0 0 0 0 
0r)   r_   c                     y r"   r6   r$   rg   r=   s      r'   from_openair          	r)   c                     y r"   r6   r   s      r'   r   r     r   r)   c                >     |j                   j                  |d| i|S Nr<   rw   r:   r5   r$   argsr=   s       r'   map_chat_completion_to_responser     s2    "6""	  r)   c                Z   K    |j                   j                  |d| i| d {   S 7 wr   r   r   s       r'   %async_map_chat_completion_to_responser     sB      )!!((	    s   "+)+c           
     ~   t        | d      rt        t        | j                              }nt        j
                  }t        | t        j                  t        j                  f      sdd l
}|j                  dd       |t        j                  hv rQ|t        j                  j                  t        j                  j                   t        j                  j"                  hv sJ |t        j$                  t        j&                  hv rj|t        j                  j                  t        j                  j"                  t        j                  j(                  t        j                  j*                  hv sJ |t        j
                  t        j,                  hv r|t        j                  j                  t        j                  j"                  t        j                  j.                  t        j                  j0                  t        j                  j*                  t        j                  j2                  t        j                  j4                  t        j                  j6                  t        j                  j8                  h	v sJ t        | t        j                        rt;        d	| t        j<                  |t        j                  j8                  t        j                  j6                  hvr | j>                  j@                  jB                  ntE        tF        |       |      ||d|S t        | t        j                        rtI        d	| t        j<                  |t        j                  j8                  t        j                  j6                  hvr | j>                  j@                  jB                  ntE        tJ        |       |      ||d|S y )
Nbase_urlr   z{Client should be an instance of openai.OpenAI or openai.AsyncOpenAI. Unexpected behavior may occur with other client types.r   )
stacklevelr#   r:   rg   )r$   r:   rg   rj   r6   )&hasattrr   r9   r   r   r   r8   rt   ru   rv   warningswarn
OPENROUTERrn   ro   r   OPENROUTER_STRUCTURED_OUTPUTSJSONANYSCALETOGETHERJSON_SCHEMAMD_JSON
DATABRICKSrp   r   TOOLS_STRICTJSON_O1rr   rs   rH   patchr   r   r:   r   r   r_   r   )r$   rg   r=   rj   r   s        r'   r   r     s   
 vz"FOO 45??fv}}f.@.@AB J 	 	

 H''((OO!!OO99OO  
 
 	
 
 H%%x'8'899OO!!OO  OO''OO##	
 
 	
 
 HOOX%8%899OO!!OO  OO%%OO**OO##OO((OO##OO++OO>>

 

 
	
 

 &&--( 
## "JJ"77 KK++22 !!@P 
  !
 	
& &&,,- 
## "JJ"77 KK++22 !!FvV 
  !
 	
 .r)   c                     y r"   r6   
completionrg   r=   s      r'   from_litellmr   l  s    
 r)   c                     y r"   r6   r   s      r'   r   r   t  s    
 r)   c                    t        j                  |       }|s$t        dd t        j                  | |      |d|S t        dd t        j                  | |      |d|S )Nr   )r$   r:   rg   r6   )inspectiscoroutinefunctionrH   rn   r   r_   )r   rg   r=   is_asyncs       r'   r   r   |  s}    
 **:6H 
##:DA
 	
 	
  
##:DA
 	
 	
r)   )r$   zopenai.OpenAIrg   rf   r=   r   rP   rH   )r$   zopenai.AsyncOpenAIrg   rf   r=   r   rP   r_   )rP   r   )r$   z"openai.OpenAI | openai.AsyncOpenAIrg   rf   r=   r   rP   Instructor | AsyncInstructor)r   zCallable[..., Awaitable[Any]]rg   rf   r=   r   rP   r_   )r   rd   rg   rf   r=   r   rP   rH   )r   z2Callable[..., Any] | Callable[..., Awaitable[Any]]rg   rf   r=   r   rP   r   )1
__future__r   rt   r   	functoolsr   rn   utils.providersr   r   openai.types.chatr   typingr	   r
   r   r   r   r   r   r   tenacityr   r   collections.abcr   r   r   r   typing_extensionsr   pydanticr   dsl.partialr   rk   r   r   r   r    rZ   rH   r_   ro   r   r   r   r   r   r6   r)   r'   <module>r      s9   "     4 8	 	 	 K J "  ! " CuYGHIc
 c
LJ
H J
Zj# j#Zm0j m0` 
 'OO11		
	 	 		 
	 
 'OO11		
	 	 		 
	 'OO11T
.T

T
 T
 "	T
n 
 'OO11-
  	 
 
 'OO11"
  	 
 'OO11
B


 
 "	
r)   