
    >'hU                       d dl mZ d dl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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 ddlmZ ddlm Z m!Z! ddlm"Z"m#Z# ddl$m%Z%m&Z&m'Z' er@ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ g dZA G d de&      ZB G d de'      ZC G d d      ZD G d d      ZE G d d       ZF G d! d"      ZGeBZHeCZIy)#    )annotationsN)TYPE_CHECKINGAnyUnionMapping)Selfoverride   )_exceptionsQuerystring)	NOT_GIVENOmitTimeoutNotGiven	TransportProxiesTypesRequestOptions)is_givenget_async_library)cached_property)__version__)StreamAsyncStream)	GroqErrorAPIStatusError)DEFAULT_MAX_RETRIESSyncAPIClientAsyncAPIClient)chataudiofilesmodelsbatches
embeddings)Files
AsyncFiles)ModelsAsyncModels)BatchesAsyncBatches)Chat	AsyncChat)
EmbeddingsAsyncEmbeddings)Audio
AsyncAudio)r   r   r   r   Groq	AsyncGroqClientAsyncClientc                      e Zd ZU ded<   ddeeddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZedd       Zedd       Z	edd	       Z
edd
       Zedd       Zedd       Zedd       Zedd       Zeedd              Zeedd              Zeed  fd              Zddededdddi d
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!dZeZe	 	 	 	 	 	 	 	 d"d       Z xZS )#r2   strapi_keyNFr8   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc          
         |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|d}t
        	|   t        |||||||       y)zConstruct a new synchronous Groq client instance.

        This automatically infers the `api_key` argument from the `GROQ_API_KEY` environment variable if it is not provided.
        NGROQ_API_KEYThe api_key client option must be set either by passing api_key to the client or by setting the GROQ_API_KEY environment variableGROQ_BASE_URLhttps://api.groq.comversionr:   r<   r;   r?   custom_headerscustom_queryr@   osenvirongetr   r8   super__init__r   
selfr8   r:   r;   r<   r=   r>   r?   r@   	__class__s
            S/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/groq/_client.pyrO   zGroq.__init__1       6 ?jjnn^4G? T  zz~~o6H-H##*&(C 	 		
    c                    ddl m}  ||       S )Nr
   )r,   )resources.chatr,   )rQ   r,   s     rS   r    z	Groq.chatd   s    (DzrU   c                    ddl m}  ||       S )Nr
   )r.   )resources.embeddingsr.   )rQ   r.   s     rS   r%   zGroq.embeddingsj   s    4$rU   c                    ddl m}  ||       S )Nr
   )r0   )resources.audior0   )rQ   r0   s     rS   r!   z
Groq.audiop       *T{rU   c                    ddl m}  ||       S )Nr
   )r(   )resources.modelsr(   )rQ   r(   s     rS   r#   zGroq.modelsv   s    ,d|rU   c                    ddl m}  ||       S )Nr
   )r*   )resources.batchesr*   )rQ   r*   s     rS   r$   zGroq.batches|   s    .t}rU   c                    ddl m}  ||       S )Nr
   )r&   )resources.filesr&   )rQ   r&   s     rS   r"   z
Groq.files   r\   rU   c                    t        |       S N)GroqWithRawResponserQ   s    rS   with_raw_responsezGroq.with_raw_response   s    "4((rU   c                    t        |       S rd   )GroqWithStreamedResponserf   s    rS   with_streaming_responsezGroq.with_streaming_response       '--rU   c                    t        d      S Ncomma)array_formatr   rf   s    rS   qszGroq.qs        00rU   c                (    | j                   }dd| iS NAuthorizationzBearer r8   rQ   r8   s     rS   auth_headerszGroq.auth_headers        ,,77)!455rU   c                <    i t         |   ddi| j                  S )NX-Stainless-Asyncfalse)rN   r=   _custom_headersrQ   rR   s    rS   r=   zGroq.default_headers   s4    
g%

 ""
 	
rU   
r8   r:   r;   r?   r<   r=   set_default_headersr>   set_default_query_extra_kwargsc       
           ||t        d      ||	t        d      | j                  }|i ||}n||}| j                  }|i ||}n|	|	}|xs | j                  } | j                  d|xs | j
                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d|
S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)r8   r:   r;   r?   r<   r=   r>    
ValueErrorr|   _custom_query_clientrR   r8   r:   
isinstancer   r;   r   r<   rQ   r8   r:   r;   r?   r<   r=   r   r>   r   r   headersparamss                rS   copyz	Groq.copy       " &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 	
+t||.$.w$ADLLw#'/'<$BRBR# 	
 	
 		
rU   c                  |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k\  rt        j                  |||      S t        |||      S 
Ni  )responsebodyi  i  i  i  i  i  i  status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   rQ   err_msgr   r   s       rS   _make_status_errorzGroq._make_status_error   0    3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDrU   )r8   
str | Noner:   str | httpx.URL | Noner;   %Union[float, Timeout, None, NotGiven]r<   intr=   Mapping[str, str] | Noner>   Mapping[str, object] | Noner?   httpx.Client | Noner@   boolreturnNone)r   r,   )r   r.   )r   r0   )r   r(   )r   r*   )r   r&   )r   re   )r   ri   r   r   r   zdict[str, str]r   zdict[str, str | Omit])r8   r   r:   r   r;   !float | Timeout | None | NotGivenr?   r   r<   int | NotGivenr=   r   r   r   r>   r   r   r   r   Mapping[str, Any]r   r   r   r7   r   objectr   zhttpx.Responser   r   __name__
__module____qualname____annotations__r   r   rO   r   r    r%   r!   r#   r$   r"   rg   rj   propertyr	   rp   rw   r=   r   with_optionsr   __classcell__rR   s   @rS   r2   r2   -   sS   L
 #+/9B.4859 ,0 -2+1
 1
 )	1

 71
 1
 21
 31
 )1
* &*+1
, 
-1
f  
    
  
  
  
  
 ) ) . . 1  1 6  6 
  
 #+/5>+/&/488<599=+--
 -
 )	-

 3-
 )-
 $-
 2-
 6-
 3-
 7-
 )-
 
-
b LEE 	E
 !E 
E ErU   r2   c                      e Zd ZU ded<   ddeeddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZedd       Zedd       Z	edd	       Z
edd
       Zedd       Zedd       Zedd       Zedd       Zeedd              Zeedd              Zeed  fd              Zddededdddi d
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!dZeZe	 	 	 	 	 	 	 	 d"d       Z xZS )#r3   r7   r8   NFr9   c          
         |t         j                  j                  d      }|t        d      || _        |t         j                  j                  d      }|d}t
        	|   t        |||||||       y)zConstruct a new async AsyncGroq client instance.

        This automatically infers the `api_key` argument from the `GROQ_API_KEY` environment variable if it is not provided.
        NrB   rC   rD   rE   rF   rJ   rP   s
            rS   rO   zAsyncGroq.__init__   rT   rU   c                    ddl m}  ||       S )Nr
   )r-   )rW   r-   )rQ   r-   s     rS   r    zAsyncGroq.chat0  s    -rU   c                    ddl m}  ||       S )Nr
   )r/   )rY   r/   )rQ   r/   s     rS   r%   zAsyncGroq.embeddings6  s    9t$$rU   c                    ddl m}  ||       S )Nr
   )r1   )r[   r1   )rQ   r1   s     rS   r!   zAsyncGroq.audio<      /$rU   c                    ddl m}  ||       S )Nr
   )r)   )r^   r)   )rQ   r)   s     rS   r#   zAsyncGroq.modelsB  s    14  rU   c                    ddl m}  ||       S )Nr
   )r+   )r`   r+   )rQ   r+   s     rS   r$   zAsyncGroq.batchesH  s    3D!!rU   c                    ddl m}  ||       S )Nr
   )r'   )rb   r'   )rQ   r'   s     rS   r"   zAsyncGroq.filesN  r   rU   c                    t        |       S rd   )AsyncGroqWithRawResponserf   s    rS   rg   zAsyncGroq.with_raw_responseT  rk   rU   c                    t        |       S rd   )AsyncGroqWithStreamedResponserf   s    rS   rj   z!AsyncGroq.with_streaming_responseX  s    ,T22rU   c                    t        d      S rm   r   rf   s    rS   rp   zAsyncGroq.qs\  rq   rU   c                (    | j                   }dd| iS rs   ru   rv   s     rS   rw   zAsyncGroq.auth_headersa  rx   rU   c                R    i t         |   ddt                i| j                  S )Nrz   zasync:)rN   r=   r   r|   r}   s    rS   r=   zAsyncGroq.default_headersg  s@    
g%
6*;*=)>!?
 ""
 	
rU   r~   c       
           ||t        d      ||	t        d      | j                  }|i ||}n||}| j                  }|i ||}n|	|	}|xs | j                  } | j                  d|xs | j
                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d|
S r   r   r   s                rS   r   zAsyncGroq.copyp  r   rU   c                  |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k\  rt        j                  |||      S t        |||      S r   r   r   s       rS   r   zAsyncGroq._make_status_error  r   rU   )r8   r   r:   r   r;   r   r<   r   r=   r   r>   r   r?   httpx.AsyncClient | Noner@   r   r   r   )r   r-   )r   r/   )r   r1   )r   r)   )r   r+   )r   r'   )r   r   )r   r   r   r   r   )r8   r   r:   r   r;   r   r?   r   r<   r   r=   r   r   r   r>   r   r   r   r   r   r   r   r   r   r   s   @rS   r3   r3      sS   L
 #+/9B.4859 15 -2+1
 1
 )	1

 71
 1
 21
 31
 .1
* &*+1
, 
-1
f  
 % %
    
 ! !
 " "
    
 . . 3 3 1  1 6  6 
  
 #+/5>04&/488<599=+--
 -
 )	-

 3-
 .-
 $-
 2-
 6-
 3-
 7-
 )-
 
-
b LEE 	E
 !E 
E ErU   r3   c                      e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	edd       Z
edd	       Zy
)re   r2   r   c                    || _         y rd   r   rQ   clients     rS   rO   zGroqWithRawResponse.__init__  	    rU   c                F    ddl m}  || j                  j                        S )Nr
   )ChatWithRawResponse)rW   r   r   r    )rQ   r   s     rS   r    zGroqWithRawResponse.chat  s    7"4<<#4#455rU   c                F    ddl m}  || j                  j                        S )Nr
   )EmbeddingsWithRawResponse)rY   r   r   r%   )rQ   r   s     rS   r%   zGroqWithRawResponse.embeddings  s    C()@)@AArU   c                F    ddl m}  || j                  j                        S )Nr
   )AudioWithRawResponse)r[   r   r   r!   )rQ   r   s     rS   r!   zGroqWithRawResponse.audio      9#DLL$6$677rU   c                F    ddl m}  || j                  j                        S )Nr
   )ModelsWithRawResponse)r^   r   r   r#   )rQ   r   s     rS   r#   zGroqWithRawResponse.models  s    ;$T\\%8%899rU   c                F    ddl m}  || j                  j                        S )Nr
   )BatchesWithRawResponse)r`   r   r   r$   )rQ   r   s     rS   r$   zGroqWithRawResponse.batches  s    =%dll&:&:;;rU   c                F    ddl m}  || j                  j                        S )Nr
   )FilesWithRawResponse)rb   r   r   r"   )rQ   r   s     rS   r"   zGroqWithRawResponse.files  r   rU   Nr   r2   r   r   )r   zchat.ChatWithRawResponse)r   z$embeddings.EmbeddingsWithRawResponse)r   zaudio.AudioWithRawResponse)r   zmodels.ModelsWithRawResponse)r   zbatches.BatchesWithRawResponse)r   zfiles.FilesWithRawResponser   r   r   r   rO   r   r    r%   r!   r#   r$   r"   r   rU   rS   re   re     s    M 6 6
 B B
 8 8
 : :
 < <
 8 8rU   re   c                      e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	edd       Z
edd	       Zy
)r   r3   r   c                    || _         y rd   r   r   s     rS   rO   z!AsyncGroqWithRawResponse.__init__  r   rU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncChatWithRawResponse)rW   r   r   r    )rQ   r   s     rS   r    zAsyncGroqWithRawResponse.chat  s    <'(9(9::rU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncEmbeddingsWithRawResponse)rY   r   r   r%   )rQ   r   s     rS   r%   z#AsyncGroqWithRawResponse.embeddings  s    H-dll.E.EFFrU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncAudioWithRawResponse)r[   r   r   r!   )rQ   r   s     rS   r!   zAsyncGroqWithRawResponse.audio      >(););<<rU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncModelsWithRawResponse)r^   r   r   r#   )rQ   r   s     rS   r#   zAsyncGroqWithRawResponse.models  s    @)$,,*=*=>>rU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncBatchesWithRawResponse)r`   r   r   r$   )rQ   r   s     rS   r$   z AsyncGroqWithRawResponse.batches  s    B*4<<+?+?@@rU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncFilesWithRawResponse)rb   r   r   r"   )rQ   r   s     rS   r"   zAsyncGroqWithRawResponse.files  r   rU   Nr   r3   r   r   )r   zchat.AsyncChatWithRawResponse)r   z)embeddings.AsyncEmbeddingsWithRawResponse)r   zaudio.AsyncAudioWithRawResponse)r   z!models.AsyncModelsWithRawResponse)r   z#batches.AsyncBatchesWithRawResponse)r   zfiles.AsyncFilesWithRawResponser   r   rU   rS   r   r     s     ; ;
 G G
 = =
 ? ?
 A A
 = =rU   r   c                      e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	edd       Z
edd	       Zy
)ri   r2   r   c                    || _         y rd   r   r   s     rS   rO   z!GroqWithStreamedResponse.__init__  r   rU   c                F    ddl m}  || j                  j                        S )Nr
   )ChatWithStreamingResponse)rW   r   r   r    )rQ   r   s     rS   r    zGroqWithStreamedResponse.chat!  s    =():):;;rU   c                F    ddl m}  || j                  j                        S )Nr
   )EmbeddingsWithStreamingResponse)rY   r   r   r%   )rQ   r   s     rS   r%   z#GroqWithStreamedResponse.embeddings'  s    I.t||/F/FGGrU   c                F    ddl m}  || j                  j                        S )Nr
   )AudioWithStreamingResponse)r[   r   r   r!   )rQ   r   s     rS   r!   zGroqWithStreamedResponse.audio-      ?)$,,*<*<==rU   c                F    ddl m}  || j                  j                        S )Nr
   )ModelsWithStreamingResponse)r^   r   r   r#   )rQ   r   s     rS   r#   zGroqWithStreamedResponse.models3  s    A*4<<+>+>??rU   c                F    ddl m}  || j                  j                        S )Nr
   )BatchesWithStreamingResponse)r`   r   r   r$   )rQ   r   s     rS   r$   z GroqWithStreamedResponse.batches9  s    C+DLL,@,@AArU   c                F    ddl m}  || j                  j                        S )Nr
   )FilesWithStreamingResponse)rb   r  r   r"   )rQ   r  s     rS   r"   zGroqWithStreamedResponse.files?  r   rU   Nr   )r   zchat.ChatWithStreamingResponse)r   z*embeddings.EmbeddingsWithStreamingResponse)r   z audio.AudioWithStreamingResponse)r   z"models.ModelsWithStreamingResponse)r   z$batches.BatchesWithStreamingResponse)r   z files.FilesWithStreamingResponser   r   rU   rS   ri   ri     s    M < <
 H H
 > >
 @ @
 B B
 > >rU   ri   c                      e Zd ZU ded<   ddZedd       Zedd       Zedd       Zedd       Z	edd       Z
edd	       Zy
)r   r3   r   c                    || _         y rd   r   r   s     rS   rO   z&AsyncGroqWithStreamedResponse.__init__I  r   rU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncChatWithStreamingResponse)rW   r  r   r    )rQ   r  s     rS   r    z"AsyncGroqWithStreamedResponse.chatL  s    B-dll.?.?@@rU   c                F    ddl m}  || j                  j                        S )Nr
   )$AsyncEmbeddingsWithStreamingResponse)rY   r  r   r%   )rQ   r  s     rS   r%   z(AsyncGroqWithStreamedResponse.embeddingsR  s    N3DLL4K4KLLrU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncAudioWithStreamingResponse)r[   r
  r   r!   )rQ   r
  s     rS   r!   z#AsyncGroqWithStreamedResponse.audioX      D.t||/A/ABBrU   c                F    ddl m}  || j                  j                        S )Nr
   ) AsyncModelsWithStreamingResponse)r^   r  r   r#   )rQ   r  s     rS   r#   z$AsyncGroqWithStreamedResponse.models^  s    F/0C0CDDrU   c                F    ddl m}  || j                  j                        S )Nr
   )!AsyncBatchesWithStreamingResponse)r`   r  r   r$   )rQ   r  s     rS   r$   z%AsyncGroqWithStreamedResponse.batchesd  s    H01E1EFFrU   c                F    ddl m}  || j                  j                        S )Nr
   )AsyncFilesWithStreamingResponse)rb   r  r   r"   )rQ   r  s     rS   r"   z#AsyncGroqWithStreamedResponse.filesj  r  rU   Nr   )r   z#chat.AsyncChatWithStreamingResponse)r   z/embeddings.AsyncEmbeddingsWithStreamingResponse)r   z%audio.AsyncAudioWithStreamingResponse)r   z'models.AsyncModelsWithStreamingResponse)r   z)batches.AsyncBatchesWithStreamingResponse)r   z%files.AsyncFilesWithStreamingResponser   r   rU   rS   r   r   F  s     A A
 M M
 C C
 E E
 G G
 C CrU   r   )J
__future__r   rK   typingr   r   r   r   typing_extensionsr   r	   httpx r   _qsr   _typesr   r   r   r   r   r   r   _utilsr   r   _compatr   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   	resourcesr    r!   r"   r#   r$   r%   rb   r&   r'   r^   r(   r)   r`   r*   r+   resources.chat.chatr,   r-   rY   r.   r/   resources.audio.audior0   r1   __all__r2   r3   re   r   ri   r   r4   r5   r   rU   rS   <module>r"     s    # 	 5 5 ,      0 $ ! D 2  JJ2584A8
rIE= IEXIE IEX(8 (8V(= (=V(> (>V(C (CV 
rU   