U
    &JjU                     @  s  d dl mZ d dlZd dl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.m/Z/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z? ddddddddgZ@G dd de%ZAG dd de&ZBG d d! d!ZCG d"d# d#ZDG d$d% d%ZEG d&d' d'ZFeAZGeBZHdS )(    )annotationsN)TYPE_CHECKINGAnyMapping)Selfoverride   )_exceptionsQuerystring)OmitTimeoutNotGiven	TransportProxiesTypesRequestOptions	not_given)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
AsyncAudior   r   r   r   Groq	AsyncGroqClientAsyncClientc                      s|  e Zd ZU ded< ddeeddddddddd	d
ddddd	 fddZeddddZeddddZ	eddddZ
eddddZeddd d!Zed"dd#d$Zed%dd&d'Zed(dd)d*Zeed+dd,d-Zeed.dd/d0Zeed1d fd2d3Zddededdddi d4
ddddd5d
d
ddd6d7d8d9d:ZeZedd;d<d=d>d?d@Z  ZS )Ar0   strapi_keyNFr5   base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validation
str | Nonestr | httpx.URL | None!float | Timeout | None | NotGivenintMapping[str, str] | NoneMapping[str, object] | Nonezhttpx.Client | NoneboolNone	r5   r7   r8   r9   r:   r;   r<   r=   returnc          	   
     sj   |dkrt jd}|dkr$td|| _|dkr>t jd}|dkrJd}t jt|||||||d dS )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versionr7   r9   r8   r<   Zcustom_headersZcustom_queryr=   osenvirongetr   r5   super__init__r   	selfr5   r7   r8   r9   r:   r;   r<   r=   	__class__ m/var/www/api.dyntland.com/public_html/python_social_comments/venv/lib/python3.8/site-packages/groq/_client.pyrS   1   s*    zGroq.__init__r*   rG   c                 C  s   ddl m} || S )Nr   )r*   )resources.chatr*   )rU   r*   rX   rX   rY   r   d   s    z	Groq.chatr,   c                 C  s   ddl m} || S )Nr   )r,   )resources.embeddingsr,   )rU   r,   rX   rX   rY   r#   j   s    zGroq.embeddingsr.   c                 C  s   ddl m} || S )Nr   )r.   )resources.audior.   )rU   r.   rX   rX   rY   r   p   s    z
Groq.audior&   c                 C  s   ddl m} || S )Nr   )r&   )resources.modelsr&   )rU   r&   rX   rX   rY   r!   v   s    zGroq.modelsr(   c                 C  s   ddl m} || S )Nr   )r(   )resources.batchesr(   )rU   r(   rX   rX   rY   r"   |   s    zGroq.batchesr$   c                 C  s   ddl m} || S )Nr   )r$   )resources.filesr$   )rU   r$   rX   rX   rY   r       s    z
Groq.filesGroqWithRawResponsec                 C  s   t | S N)ra   rU   rX   rX   rY   with_raw_response   s    zGroq.with_raw_responseGroqWithStreamedResponsec                 C  s   t | S rb   )re   rc   rX   rX   rY   with_streaming_response   s    zGroq.with_streaming_responser   c                 C  s
   t ddS Ncomma)Zarray_formatr
   rc   rX   rX   rY   qs   s    zGroq.qsdict[str, str]c                 C  s   | j }dd| iS NAuthorizationzBearer r5   rU   r5   rX   rX   rY   auth_headers   s    zGroq.auth_headersdict[str, str | Omit]c                   s   t  jddi| jS )NX-Stainless-Asyncfalse)rR   r:   _custom_headersrc   rV   rX   rY   r:      s     zGroq.default_headers
r5   r7   r8   r<   r9   r:   set_default_headersr;   set_default_query_extra_kwargsint | NotGivenMapping[str, Any]r   r5   r7   r8   r<   r9   r:   ru   r;   rv   rw   rG   c       
      
   C  s   |dk	r|dk	rt d|dk	r0|	dk	r0t d| j}|dk	rH||}n|dk	rT|}| j}|dk	rl||}n|	dk	rx|	}|p| j}| jf |p| j|p| 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.
        NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)r5   r7   r8   r<   r9   r:   r;   
ValueErrorrs   Z_custom_query_clientrW   r5   r7   
isinstancer   r8   r   r9   rU   r5   r7   r8   r<   r9   r:   ru   r;   rv   rw   headersparamsrX   rX   rY   copy   s4    


z	Groq.copyobjecthttpx.Responser   err_msgbodyresponserG   c                C  s   |j dkrtj|||dS |j dkr4tj|||dS |j dkrNtj|||dS |j dkrhtj|||dS |j dkrtj|||dS |j dkrtj|||dS |j dkrtj|||dS |j d	krtj	|||dS t
|||dS 
Ni  )r   r   i  i  i  i  i  i  i  status_coder	   ZBadRequestErrorAuthenticationErrorZPermissionDeniedErrorZNotFoundErrorZConflictErrorZUnprocessableEntityErrorZRateLimitErrorZInternalServerErrorr   rU   r   r   r   rX   rX   rY   _make_status_error   s"    







zGroq._make_status_error__name__
__module____qualname____annotations__r   r   rS   r   r   r#   r   r!   r"   r    rd   rf   propertyr   ri   ro   r:   r   Zwith_optionsr   __classcell__rX   rX   rV   rY   r0   -   sb   
	&3
&1c                      s|  e Zd ZU ded< ddeeddddddddd	d
ddddd	 fddZeddddZeddddZ	eddddZ
eddddZeddd d!Zed"dd#d$Zed%dd&d'Zed(dd)d*Zeed+dd,d-Zeed.dd/d0Zeed1d fd2d3Zddededdddi d4
ddddd5d
d
ddd6d7d8d9d:ZeZedd;d<d=d>d?d@Z  ZS )Ar1   r4   r5   NFr6   r>   r?   r@   rA   rB   rC   zhttpx.AsyncClient | NonerD   rE   rF   c          	   
     sj   |dkrt jd}|dkr$td|| _|dkr>t jd}|dkrJd}t jt|||||||d dS )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.
        NrH   rI   rJ   rK   rL   rN   rT   rV   rX   rY   rS      s*    zAsyncGroq.__init__r+   rZ   c                 C  s   ddl m} || S )Nr   )r+   )r[   r+   )rU   r+   rX   rX   rY   r   0  s    zAsyncGroq.chatr-   c                 C  s   ddl m} || S )Nr   )r-   )r\   r-   )rU   r-   rX   rX   rY   r#   6  s    zAsyncGroq.embeddingsr/   c                 C  s   ddl m} || S )Nr   )r/   )r]   r/   )rU   r/   rX   rX   rY   r   <  s    zAsyncGroq.audior'   c                 C  s   ddl m} || S )Nr   )r'   )r^   r'   )rU   r'   rX   rX   rY   r!   B  s    zAsyncGroq.modelsr)   c                 C  s   ddl m} || S )Nr   )r)   )r_   r)   )rU   r)   rX   rX   rY   r"   H  s    zAsyncGroq.batchesr%   c                 C  s   ddl m} || S )Nr   )r%   )r`   r%   )rU   r%   rX   rX   rY   r    N  s    zAsyncGroq.filesAsyncGroqWithRawResponsec                 C  s   t | S rb   )r   rc   rX   rX   rY   rd   T  s    zAsyncGroq.with_raw_responseAsyncGroqWithStreamedResponsec                 C  s   t | S rb   )r   rc   rX   rX   rY   rf   X  s    z!AsyncGroq.with_streaming_responser   c                 C  s
   t ddS rg   r
   rc   rX   rX   rY   ri   \  s    zAsyncGroq.qsrj   c                 C  s   | j }dd| iS rk   rm   rn   rX   rX   rY   ro   a  s    zAsyncGroq.auth_headersrp   c                   s   t  jddt  i| jS )Nrq   zasync:)rR   r:   r   rs   rc   rV   rX   rY   r:   g  s     
zAsyncGroq.default_headersrt   rx   ry   r   rz   c       
      
   C  s   |dk	r|dk	rt d|dk	r0|	dk	r0t d| j}|dk	rH||}n|dk	rT|}| j}|dk	rl||}n|	dk	rx|	}|p| j}| jf |p| j|p| jt|tr| j	n||t
|r|n| j||d|
S r{   r|   r   rX   rX   rY   r   p  s4    


zAsyncGroq.copyr   r   r   r   c                C  s   |j dkrtj|||dS |j dkr4tj|||dS |j dkrNtj|||dS |j dkrhtj|||dS |j dkrtj|||dS |j dkrtj|||dS |j dkrtj|||dS |j d	krtj	|||dS t
|||dS r   r   r   rX   rX   rY   r     s"    







zAsyncGroq._make_status_errorr   rX   rX   rV   rY   r1      sb   
	&3
&1c                   @  s   e Zd ZU ded< dddddZeddd	d
ZeddddZeddddZeddddZ	eddddZ
eddddZdS )ra   r0   r~   rE   clientrG   c                 C  s
   || _ d S rb   r~   rU   r   rX   rX   rY   rS     s    zGroqWithRawResponse.__init__zchat.ChatWithRawResponserZ   c                 C  s   ddl m} || jjS )Nr   )ChatWithRawResponse)r[   r   r~   r   )rU   r   rX   rX   rY   r     s    zGroqWithRawResponse.chatz$embeddings.EmbeddingsWithRawResponsec                 C  s   ddl m} || jjS )Nr   )EmbeddingsWithRawResponse)r\   r   r~   r#   )rU   r   rX   rX   rY   r#     s    zGroqWithRawResponse.embeddingszaudio.AudioWithRawResponsec                 C  s   ddl m} || jjS )Nr   )AudioWithRawResponse)r]   r   r~   r   )rU   r   rX   rX   rY   r     s    zGroqWithRawResponse.audiozmodels.ModelsWithRawResponsec                 C  s   ddl m} || jjS )Nr   )ModelsWithRawResponse)r^   r   r~   r!   )rU   r   rX   rX   rY   r!     s    zGroqWithRawResponse.modelszbatches.BatchesWithRawResponsec                 C  s   ddl m} || jjS )Nr   )BatchesWithRawResponse)r_   r   r~   r"   )rU   r   rX   rX   rY   r"     s    zGroqWithRawResponse.batcheszfiles.FilesWithRawResponsec                 C  s   ddl m} || jjS )Nr   )FilesWithRawResponse)r`   r   r~   r    )rU   r   rX   rX   rY   r      s    zGroqWithRawResponse.filesNr   r   r   r   rS   r   r   r#   r   r!   r"   r    rX   rX   rX   rY   ra     s   
ra   c                   @  s   e Zd ZU ded< dddddZeddd	d
ZeddddZeddddZeddddZ	eddddZ
eddddZdS )r   r1   r~   rE   r   c                 C  s
   || _ d S rb   r   r   rX   rX   rY   rS     s    z!AsyncGroqWithRawResponse.__init__zchat.AsyncChatWithRawResponserZ   c                 C  s   ddl m} || jjS )Nr   )AsyncChatWithRawResponse)r[   r   r~   r   )rU   r   rX   rX   rY   r     s    zAsyncGroqWithRawResponse.chatz)embeddings.AsyncEmbeddingsWithRawResponsec                 C  s   ddl m} || jjS )Nr   )AsyncEmbeddingsWithRawResponse)r\   r   r~   r#   )rU   r   rX   rX   rY   r#     s    z#AsyncGroqWithRawResponse.embeddingszaudio.AsyncAudioWithRawResponsec                 C  s   ddl m} || jjS )Nr   )AsyncAudioWithRawResponse)r]   r   r~   r   )rU   r   rX   rX   rY   r     s    zAsyncGroqWithRawResponse.audioz!models.AsyncModelsWithRawResponsec                 C  s   ddl m} || jjS )Nr   )AsyncModelsWithRawResponse)r^   r   r~   r!   )rU   r   rX   rX   rY   r!     s    zAsyncGroqWithRawResponse.modelsz#batches.AsyncBatchesWithRawResponsec                 C  s   ddl m} || jjS )Nr   )AsyncBatchesWithRawResponse)r_   r   r~   r"   )rU   r   rX   rX   rY   r"     s    z AsyncGroqWithRawResponse.batcheszfiles.AsyncFilesWithRawResponsec                 C  s   ddl m} || jjS )Nr   )AsyncFilesWithRawResponse)r`   r   r~   r    )rU   r   rX   rX   rY   r      s    zAsyncGroqWithRawResponse.filesNr   rX   rX   rX   rY   r     s   
r   c                   @  s   e Zd ZU ded< dddddZeddd	d
ZeddddZeddddZeddddZ	eddddZ
eddddZdS )re   r0   r~   rE   r   c                 C  s
   || _ d S rb   r   r   rX   rX   rY   rS     s    z!GroqWithStreamedResponse.__init__zchat.ChatWithStreamingResponserZ   c                 C  s   ddl m} || jjS )Nr   )ChatWithStreamingResponse)r[   r   r~   r   )rU   r   rX   rX   rY   r   !  s    zGroqWithStreamedResponse.chatz*embeddings.EmbeddingsWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )EmbeddingsWithStreamingResponse)r\   r   r~   r#   )rU   r   rX   rX   rY   r#   '  s    z#GroqWithStreamedResponse.embeddingsz audio.AudioWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )AudioWithStreamingResponse)r]   r   r~   r   )rU   r   rX   rX   rY   r   -  s    zGroqWithStreamedResponse.audioz"models.ModelsWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )ModelsWithStreamingResponse)r^   r   r~   r!   )rU   r   rX   rX   rY   r!   3  s    zGroqWithStreamedResponse.modelsz$batches.BatchesWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )BatchesWithStreamingResponse)r_   r   r~   r"   )rU   r   rX   rX   rY   r"   9  s    z GroqWithStreamedResponse.batchesz files.FilesWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )FilesWithStreamingResponse)r`   r   r~   r    )rU   r   rX   rX   rY   r    ?  s    zGroqWithStreamedResponse.filesNr   rX   rX   rX   rY   re     s   
re   c                   @  s   e Zd ZU ded< dddddZeddd	d
ZeddddZeddddZeddddZ	eddddZ
eddddZdS )r   r1   r~   rE   r   c                 C  s
   || _ d S rb   r   r   rX   rX   rY   rS   I  s    z&AsyncGroqWithStreamedResponse.__init__z#chat.AsyncChatWithStreamingResponserZ   c                 C  s   ddl m} || jjS )Nr   )AsyncChatWithStreamingResponse)r[   r   r~   r   )rU   r   rX   rX   rY   r   L  s    z"AsyncGroqWithStreamedResponse.chatz/embeddings.AsyncEmbeddingsWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )$AsyncEmbeddingsWithStreamingResponse)r\   r   r~   r#   )rU   r   rX   rX   rY   r#   R  s    z(AsyncGroqWithStreamedResponse.embeddingsz%audio.AsyncAudioWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )AsyncAudioWithStreamingResponse)r]   r   r~   r   )rU   r   rX   rX   rY   r   X  s    z#AsyncGroqWithStreamedResponse.audioz'models.AsyncModelsWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   ) AsyncModelsWithStreamingResponse)r^   r   r~   r!   )rU   r   rX   rX   rY   r!   ^  s    z$AsyncGroqWithStreamedResponse.modelsz)batches.AsyncBatchesWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )!AsyncBatchesWithStreamingResponse)r_   r   r~   r"   )rU   r   rX   rX   rY   r"   d  s    z%AsyncGroqWithStreamedResponse.batchesz%files.AsyncFilesWithStreamingResponsec                 C  s   ddl m} || jjS )Nr   )AsyncFilesWithStreamingResponse)r`   r   r~   r    )rU   r   rX   rX   rY   r    j  s    z#AsyncGroqWithStreamedResponse.filesNr   rX   rX   rX   rY   r   F  s   
r   )I
__future__r   rO   typingr   r   r   typing_extensionsr   r   Zhttpx r	   Z_qsr   _typesr   r   r   r   r   r   r   Z_utilsr   r   Z_compatr   _versionr   Z
_streamingr   r   r   r   Z_base_clientr   r   r   	resourcesr   r   r    r!   r"   r#   r`   r$   r%   r^   r&   r'   r_   r(   r)   Zresources.chat.chatr*   r+   r\   r,   r-   Zresources.audio.audior.   r/   __all__r0   r1   ra   r   re   r   r2   r3   rX   rX   rX   rY   <module>   s@   $	  M M++++