
    {h                    p   d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
Z
d dlmZ d dlmZ d dlZd dlZee	ef   Z ej$                  d      Zg 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y)    )annotations)AnyUnionLiteraloverload)AsyncInstructor
InstructorN)KnownModelName)	BaseCachezinstructor.auto_client)openaiazure_openai	anthropicgooglegenerative-aivertexaimistralcohere
perplexitygroqwriterbedrockcerebrasdeepseek	fireworksollamaxaic                     y N modelasync_clientcachekwargss       W/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/instructor/auto_client.pyfrom_providerr&   &            c                     y r   r   r    s       r%   r&   r&   /        r(   c                     y r   r   r    s       r%   r&   r&   8   r'   r(   c                     y r   r   r    s       r%   r&   r&   A   r*   r(   c           
        8 |||d<   	 | j                  dd      \  }8|dd	}t        j                  d
|8|       t        j                  d|||       d}d|v r5|j                  d      }|r"t        j                  d|t        |      |       |dk(  rx	 ddl	}	ddl
m}
 |r|	j                  |      n|	j                  |      } |
|f8|r|nt        j                  j                  d|}t        j                  di |ddi       |S |dk(  r	 ddl}ddl	m}m} ddl
m}
 |xs |j,                  j/                  d      }|j                  d|j,                  j/                  d            }|j                  d d!      }|sddlm}  |d"      |sddlm}  |d#      |r ||||$      n
 ||||$      } |
|f8|r|nt        j                  j                  d|}t        j                  di |ddi       |S |d&k(  r	 ddl}dd'l
m} |r|j5                  |      n|j7                  |      }|j                  d(d)      } ||f8|r|nt        j                  j8                  |d*|}t        j                  di |ddi       |S |d,k(  r	 ddlm} dd-l
m} ddl}|j                  d.d/      }|xs |j,                  j/                  d0      }i }d1D ]  }||v s|j                  |      ||<     |j@                  d||d2|}|r ||fd8d3|}n ||fd48i|}t        j                  di |ddi       |S |d6k(  r	 dd7l!m"} dd8l
m#} ddl}|xs |j,                  j/                  d9      }|r
 ||      }nt        d:      |r ||f8dd;|}n ||fd48i|}t        j                  di |ddi       |S |d=k(  rY	 ddl$}dd>l
m%} |r|jM                  |      n|jA                  |      } ||fi |}t        j                  di |ddi       |S |d@k(  r	 ddl	}	ddAl
m'} ddl}|xs |j,                  j/                  dB      }|st        dC      |r|	j                  |dDE      n|	j                  |dDE      } ||fd48i|}t        j                  di |ddi       |S |dGk(  r[	 ddl(} ddHl
m)}! |r| jU                  |      n| jW                  |      } |!|fd48i|}t        j                  di |ddi       |S |dJk(  rM	 ddKl,m-}"m.}# ddLl
m/}$ |r	 |"|      n |#|      } |$|fd48i|}t        j                  di |ddi       |S |dNk(  r	 ddl}ddl0}%ddOl
m1}& dP|v r|j                  dP      }'n1t        j                  dQ       |j,                  j/                  dRdS      }'i }(dTD ]  }||v r|j                  |      |(|<   |je                         |j,                  v s9t        j                  dU|je                          dV       |j,                  |je                            |(|<    |'|(dW<    |%jf                  di |(}|\8r?d&8ji                         v sdX8ji                         v rt        j                  jj                  })nt        j                  jl                  })n|}) |&|f|)||dY|}t        j                  di |ddi       |S |d[k(  rM	 dd\l7m8}*m9}+ dd]l
m:}, |r	 |*|      n |+|      } |,|fd48i|}t        j                  di |ddi       |S |d_k(  rM	 dd`l;m<}-m=}. ddal
m>}/ |r	 |-|      n |.|      } |/|fd48i|}t        j                  di |ddi       |S |d.k(  rt        j                  dct        dde       	 ddlm} dd-l
m} ddl}|j                  df|j,                  j/                  dg            }0|j                  dh|j,                  j/                  didj            }1|0st        dk       |j@                  dd|0|1dl|}8|d4<   |r ||fdmdi|}n	 ||fi |}t        j                  di |ddi       |S |dok(  rt        j                  dpt        dde       	 ddqlBm} dd-l
m} ddl}|xs |j,                  j/                  d0      }|jA                  d/|2      }|r ||fd8d3|}n ||fd48i|}t        j                  di |ddi       |S |dsk(  r	 ddl	}	ddl
m}
 |j                  dtdu      }2|j                  dds      }|r|	j                  |2|v      n|	j                  |2|v      }h dw}3t        8fdx|3D              }4|4rt        j                  j                  nt        j                  j                  }) |
|f8|r|n|)d|}t        j                  di |ddi       |S |dzk(  r	 ddl	}	ddl
m}
 ddl}|xs |j,                  j/                  d{      }|sddlm}  |d|      |j                  dtd}      }2|r|	j                  ||2E      n|	j                  ||2E      } |
|f8|r|nt        j                  j                  d|}t        j                  di |ddi       |S |dk(  rn	 ddlEm }5 ddlFm }6 ddl
mG}7 |r	 |6|      n |5|      } |7|f|r|nt        j                  j                  8d|}t        j                  di |ddi       |S ddlm} t        j%                  d|i |ddi        |d| dt               # t        $ r ddlm}  |d      dw xY w# t         $ r ddlm}  |d      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d%      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d+      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d5      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d<      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d?      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dF      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dI      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dM      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dZ      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d^      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |db      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dn      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dr      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |dy      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d~      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w# t         $ r ddlm}  |d      dt"        $ r&}t        j%                  d||di |ddi        d}~ww xY w)a  Create an Instructor client from a model string.

    Args:
        model: String in format "provider/model-name"
              (e.g., "openai/gpt-4", "anthropic/claude-3-sonnet", "google/gemini-pro")
        async_client: Whether to return an async client
        cache: Optional cache adapter (e.g., ``AutoCache`` or ``RedisCache``)
               to enable transparent response caching. Automatically flows through
               **kwargs to all provider implementations.
        mode: Override the default mode for the provider. If not specified, uses the
              recommended default mode for each provider.
        **kwargs: Additional arguments passed to the provider client functions.
                 This includes the cache parameter and any provider-specific options.

    Returns:
        Instructor or AsyncInstructor instance

    Raises:
        ValueError: If provider is not supported or model string is invalid
        ImportError: If required package for provider is not installed

    Examples:
        >>> import instructor
        >>> from instructor.cache import AutoCache
        >>>
        >>> # Basic usage
        >>> client = instructor.from_provider("openai/gpt-4")
        >>> client = instructor.from_provider("anthropic/claude-3-sonnet")
        >>>
        >>> # With caching
        >>> cache = AutoCache(maxsize=1000)
        >>> client = instructor.from_provider("openai/gpt-4", cache=cache)
        >>>
        >>> # Async clients
        >>> async_client = instructor.from_provider("openai/gpt-4", async_client=True)
    Nr#   /   r   )ConfigurationErrorziModel string must be in format "provider/model-name" (e.g. "openai/gpt-4" or "anthropic/claude-3-sonnet")
initialize)provider	operationz&Initializing %s provider with model %s)extraz0Provider configuration: async_client=%s, mode=%sapi_keyz8API key provided for %s provider (length: %d characters)r   )from_openai)r5   )r!   modezClient initializedstatussuccessz`The openai package is required to use the OpenAI provider. Install it with `pip install openai`.z Error initializing %s client: %sTerror)exc_infor4   r   )AzureOpenAIAsyncAzureOpenAIAZURE_OPENAI_API_KEYazure_endpointAZURE_OPENAI_ENDPOINTapi_versionz
2024-02-01zAZURE_OPENAI_API_KEY is not set. Set it with `export AZURE_OPENAI_API_KEY=<your-api-key>` or pass it as kwarg api_key=<your-api-key>zAZURE_OPENAI_ENDPOINT is not set. Set it with `export AZURE_OPENAI_ENDPOINT=<your-endpoint>` or pass it as kwarg azure_endpoint=<your-endpoint>)r5   rA   r?   zfThe openai package is required to use the Azure OpenAI provider. Install it with `pip install openai`.r   )from_anthropic
max_tokensi   )r!   r7   rC   ziThe anthropic package is required to use the Anthropic provider. Install it with `pip install anthropic`.r   )
from_genair   FGOOGLE_API_KEY)debug_confighttp_optionscredentialsprojectlocation)r   r5   )	use_asyncr!   r!   zlThe google-genai package is required to use the Google provider. Install it with `pip install google-genai`.r   )Mistral)from_mistralMISTRAL_API_KEYzPMISTRAL_API_KEY is not set. Set it with `export MISTRAL_API_KEY=<your-api-key>`.)r!   rK   zgThe mistralai package is required to use the Mistral provider. Install it with `pip install mistralai`.r   )from_coherez`The cohere package is required to use the Cohere provider. Install it with `pip install cohere`.r   )from_perplexityPERPLEXITY_API_KEYzPERPLEXITY_API_KEY is not set. Set it with `export PERPLEXITY_API_KEY=<your-api-key>` or pass it as a kwarg api_key=<your-api-key>zhttps://api.perplexity.ai)r5   base_urlzdThe openai package is required to use the Perplexity provider. Install it with `pip install openai`.r   )	from_groqzZThe groq package is required to use the Groq provider. Install it with `pip install groq`.r   )AsyncWriterWriter)from_writerzfThe writerai package is required to use the Writer provider. Install it with `pip install writer-sdk`.r   )from_bedrockregionz=AWS_DEFAULT_REGION is not set. Using default region us-east-1AWS_DEFAULT_REGIONz	us-east-1)aws_access_key_idaws_secret_access_keyaws_session_tokenzUsing z from environment variableregion_nameclaude)r7   r"   _asynczcThe boto3 package is required to use the AWS Bedrock provider. Install it with `pip install boto3`.r   )AsyncCerebrasCerebras)from_cerebraszfThe cerebras package is required to use the Cerebras provider. Install it with `pip install cerebras`.r   )AsyncFireworks	Fireworks)from_fireworkszoThe fireworks-ai package is required to use the Fireworks provider. Install it with `pip install fireworks-ai`.zThe 'vertexai' provider is deprecated. Use 'google' provider with vertexai=True instead. Example: instructor.from_provider('google/gemini-pro', vertexai=True)   )
stacklevelrI   GOOGLE_CLOUD_PROJECTrJ   GOOGLE_CLOUD_LOCATIONzus-central1zProject ID is required for Vertex AI. Set it with `export GOOGLE_CLOUD_PROJECT=<your-project-id>` or pass it as kwarg project=<your-project-id>)r   rI   rJ   rK   znThe google-genai package is required to use the VertexAI provider. Install it with `pip install google-genai`.r   zThe 'generative-ai' provider is deprecated. Use 'google' provider instead. Example: instructor.from_provider('google/gemini-pro'))genaizrThe google-genai package is required to use the Google GenAI provider. Install it with `pip install google-genai`.r   rR   zhttp://localhost:11434/v1)rR   r5   >
   qwen2.5llama3.1llama3.2mistral-nemoqwen2.5-codercommand-r-plusfirefunction-v2qwen3llama4devstralc              3  B   K   | ]  }|j                         v   y wr   )lower).0capable_model
model_names     r%   	<genexpr>z from_provider.<locals>.<genexpr>2  s'      !! !1!1!33!s   z`The openai package is required to use the Ollama provider. Install it with `pip install openai`.r   DEEPSEEK_API_KEYz|DEEPSEEK_API_KEY is not set. Set it with `export DEEPSEEK_API_KEY=<your-api-key>` or pass it as kwarg api_key=<your-api-key>zhttps://api.deepseek.comzbThe openai package is required to use the DeepSeek provider. Install it with `pip install openai`.r   )Client)from_xai)r7   r!   z_The xai-sdk package is required to use the xAI provider. Install it with `pip install xai-sdk`.z2Error initializing %s client: unsupported providerzUnsupported provider: z. Supported providers are: r   )zbedrock-runtime)Isplit
ValueErrorinstructor.exceptionsr0   loggerinfodebugpoplenr   
instructorr6   AsyncOpenAIOpenAIModeTOOLSImportError	Exceptionr:   osr<   r=   environgetr   rB   AsyncAnthropic	AnthropicANTHROPIC_TOOLSgoogle.genairj   rD   r|   	mistralairL   rM   r   rO   AsyncClientrP   r   rS   	AsyncGroqGroqwriterairT   rU   rV   boto3rW   upperclientrv   BEDROCK_TOOLSBEDROCK_JSONcerebras.cloud.sdkr`   ra   rb   fireworks.clientrc   rd   re   warningswarnDeprecationWarningr   anyJSONxai_sdk.sync.clientxai_sdk.aio.clientr}   supported_providers)9r!   r"   r#   r7   r$   r2   r0   provider_infor5   r   r6   r   resulter   r<   r=   r?   rA   r   rB   rC   rj   rD   vertexai_flagclient_kwargskeyrL   rM   r   rO   rP   r   rS   rT   rU   rV   r   rW   rX   
aws_kwargsdefault_moder`   ra   rb   rc   rd   re   rI   rJ   rR   tool_capable_modelssupports_tools
SyncClientr   r}   ry   s9                                                           @r%   r&   r&   J   s   X w${{32* "*EM
KK0	   LL:	   GF**Y'LLJG#	   8#	.   ""7"3]]7]3 
 ! !Tz'<'< 	F KK$<<)<   M$ 
^	#C	<. G0F!GG#ZZ "**..1H"IN !**]LAKD(z 
 "D(D    !# +#1 !# +#1  ! !Tz'<'< 	F KK$<<)<   M$ 
[	 %	1   (((9(((9 
  L$7J# !Tz'F'F%	
 F KK$<<)<   M$ 
X	4	(- #JJz59M A0@!AG M 9 &=)/CM#&9 "U\\ &  F
 #FWd*WPVW#FG*GGKK$<<)<   M$ 
Y	)	)/B0A!BG 1 K 
 %",@F &fIJI&IKK$<<)<   M$ 
X		.   ""7"3]]7]3 
 !262FKK$<<)<   M$ 
\	!*	2E0D!EG z    ""#.I #  ]]#.I #   %VH:HHFKK$<<)<   M$ 
V		,   w/YYwY/ 
 vBZB6BFKK$<<)<   M$ 
X		4.   G,G, 
 !DzDVDFKK$<<)<   M$ 
Y	I	/ 6!H-S (<kJ J 	>
 &=&,jjoJsOYY[BJJ.LL6#))+6P!QR&(jj&=JsO	> )/J}% "U\\BzBF |:#3#3#55ZEUEUEW9W#-??#@#@L#-??#?#?L#!!)#	
 F KK$<<)<   M$ 
Z		B0   g.g. 
 #6FFvFFKK$<<)<   M$ 
[	 	B1   w/w/ 
 $FG*GGFKK$<<)<   M$ 
Z	T		
1	(- jjBJJNN;Q,RSGzzBJJNN+BMRH  D  "U\\ ! 	F )F7O#FEdEfE#F5f5KK$<<)<   M$ 
_	$E		
!	$- A0@!AG\\5'\BF#FWd*WPVW#FG*GGKK$<<)<   M$ 
X	@	. zz*.IJHjjH5G   ""Hg"F]]Hg]F # ! !%8! N *8
%%Z__=Q=Q  ! !T| 	F KK$<<)<   M$ 
Z	3	. C0B!CGD(v  zz*.HIH   ""7X"F]]7X]F  ! !Tz'<'< 	F KK$<<)<   M$ 
U	$	@@+   G,0 
 !Tz';';  	F KK$<<)<   M& 	=@6]6Hg6 	 	

 !$XJ /((;'<>
 	
C  < C
 	j  	@$8   	LL2::':   	~  	@$8   	LL2::':   	B  	@$;   	LL2::':   	`  	@$>   	LL2::':   	J  	@$;   	LL2::':   	4  	@$8   	LL2::':   	L  	@$8   	LL2::':   	4  	@$6   	LL2::':   	4  	@$<   	LL2::':   	J  	@$7   	LL2::':   	4  	@$:   	LL2::':   	4  	@$>   	LL2::':   	f  	@$>   	LL2::':   	F  	@$>   	LL2::':   	x  	@$8   	LL2::':   	^  	@$8   	LL2::':   	@  	@$9   	LL2::':   	s  m" A6m> C,o B	p Aq $A#q A>r" As+ 1Bt4 Au= #Aw 6Bx C+x :Ay Az! :C{* !A:|3 "C}< ;B= ?A,A@ "m;> o!n??o p'!pp q0!qq r9!rr" s(!s##s(+ t1!t,,t14 u:!u55u:= w!v>>w x&!xx y/!yy z8!zz! {'!{""{'* |0
!|++|03 }9!}44}9< !~== A@%!A@@A@@ AA@.!AAAAA)TN)
r!   r
   r"   Literal[True]r#   BaseCache | Noner$   r   returnr   )FN)
r!   r
   r"   Literal[False]r#   r   r$   r   r   r	   )
r!   strr"   r   r#   r   r$   r   r   r   )
r!   r   r"   r   r#   r   r$   r   r   r	   )FNN)r!   zUnion[str, KnownModelName]r"   boolr#   r   r7   zUnion[instructor.Mode, None]r$   r   r   z"Union[Instructor, AsyncInstructor])
__future__r   typingr   r   r   r   instructor.clientr   r	   r   instructor.modelsr
   instructor.cacher   r   loggingInstructorType	getLoggerr   r   r&   r   r(   r%   <module>r      s   " 0 0 9  , &   z?23			3	4 * 
 #'"  	
  
 
 $)"   	
  
 
 #'"  	
  
 
 $)"   	
  
 ")-	u
%u
u
 u
 '	u

 u
 (u
r(   