
    {h[                    
   d dl mZ d dlZd dlZd dlmZmZ eej                  j                  f	 	 	 	 	 	 	 dd       Z	eej                  j                  f	 	 	 	 	 	 	 dd       Z	ej                  j                  f	 	 	 	 	 	 	 d	dZ	y)
    )annotationsN)overloadAnyc                     y N clientmodekwargss      ]/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/instructor/client_perplexity.pyfrom_perplexityr      s    
      c                     y r   r   r	   s      r   r   r      s    
 "%r   c           
        t         j                  j                  h}||vr1ddlm}  |t        |      d|D cg c]  }t        |       c}      t        | t        j                  t        j                  f      s$ddlm
}  |dt        |       j                         t        | t        j                        rg| j                  j                  j                  }t        j                   d	| t        j"                  ||      t         j$                  j&                  |d|S | j                  j                  j                  }t        j(                  d	| t        j"                  ||      t         j$                  j&                  |d|S c c}w )
a(  Create an Instructor client from a Perplexity client.

    Args:
        client: A Perplexity client (sync or async)
        mode: The mode to use for the client (must be PERPLEXITY_JSON)
        **kwargs: Additional arguments to pass to the client

    Returns:
        An Instructor client
    r   )	ModeError
Perplexity)r   providervalid_modes)ClientErrorzHClient must be an instance of openai.OpenAI or openai.AsyncOpenAI. Got: )creater   )r
   r   r   r   r   )
instructorModePERPLEXITY_JSONinstructor.exceptionsr   str
isinstanceopenaiOpenAIAsyncOpenAIr   type__name__chatcompletionsr   AsyncInstructorpatchProvider
PERPLEXITY
Instructor)r
   r   r   r   r   mr   r   s           r   r   r      s`    ??223K;3T!)45AQ5
 	
 fv}}f.@.@AB5L))*,
 	

 &&,,-((//)) 
##6=((33	

 
 	
 [[$$++F   vD9$$//	
  - 6s   F)r
   zopenai.OpenAIr   instructor.Moder   r   returnzinstructor.Instructor)r
   zopenai.AsyncOpenAIr   r+   r   r   r,   zinstructor.AsyncInstructor)r
   z"openai.OpenAI | openai.AsyncOpenAIr   r+   r   r   r,   z2instructor.Instructor | instructor.AsyncInstructor)

__future__r   r   r   typingr   r   r   r   r   r   r   r   <module>r/      s    "     
 'OO;;  
    	  
  
 'OO;;%%
% %  	% 
% 'OO;;3.3
3 3 8	3r   