o
    Th0)                  
   @  s  U d dl mZ d dl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 ddlmZ ddlmZmZmZmZmZmZmZmZ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' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z> ddl?m@Z@ g dZAejBsddlCmDZD ddlEmFZGmHZH ddlImJZJ ddlKmLZLmMZM ddlNT ddlOmPZPmQZQ e>  eR ZSeAD ]ZTeTUdszdeSeT _VW q eWeXfy   Y qw qd dlZd dlZYd dlZZ[ddl9m%Z%m&Z& da\de]d< da^de]d< da_de]d< dZ`de]d < e%aad!e]d"< e&abd#e]d$< dacd%e]d&< dadd'e]d(< daed)e]d*< eYjfd+ Zgehegejijd,akd-e]d.< ejijd/alde]d0< ejijd1amde]d2< ejijd3ande]d4< dZod5e]d6< G d7d8 d8eZpG d9d: d:epeLZqG d;d< d<e*ZrdNd?d@ZsdNdAdBZtdNdCdDZudadEe]dF< dOdHdIZvdPdKdLZwddMlxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZ dS )Q    )annotationsN)override   )types)	NOT_GIVENOmitNoneTypeNotGiven	TransportProxiesTypes)file_from_path)	ClientOpenAIStreamTimeoutr
   AsyncClientAsyncOpenAIAsyncStreamRequestOptions)	BaseModel)	__title____version__)APIResponseAsyncAPIResponse)DEFAULT_TIMEOUTDEFAULT_MAX_RETRIESDEFAULT_CONNECTION_LIMITS)APIErrorOpenAIErrorConflictErrorNotFoundErrorAPIStatusErrorRateLimitErrorAPITimeoutErrorBadRequestErrorAPIConnectionErrorAuthenticationErrorInternalServerErrorPermissionDeniedErrorLengthFinishReasonErrorUnprocessableEntityErrorAPIResponseValidationErrorContentFilterFinishReasonError)DefaultHttpxClientDefaultAsyncHttpxClient)setup_logging)HttpxBinaryResponseContent)(r   r   r   r   r
   r   r	   r   r   r   r   r!   r#   r%   r+   r$   r&   r(   r    r   r*   r"   r'   r)   r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r.   )	resources)azurepydantic_function_tool)VERSION)AzureOpenAIAsyncAzureOpenAI)*)AssistantEventHandlerAsyncAssistantEventHandler__openai)r   r   
str | Noneapi_keyorganizationprojectzstr | _httpx.URL | Nonebase_urlfloat | Timeout | Nonetimeoutintmax_retries_t.Mapping[str, str] | Nonedefault_headers_t.Mapping[str, object] | Nonedefault_queryz_httpx.Client | Nonehttp_client)r;   r2   OPENAI_API_TYPEz_ApiType | Noneapi_typeOPENAI_API_VERSIONapi_versionAZURE_OPENAI_ENDPOINTazure_endpointAZURE_OPENAI_AD_TOKENazure_ad_tokenz"_azure.AzureADTokenProvider | Noneazure_ad_token_providerc                      sN  e Zd Zeed(ddZejd)ddZeed(dd	Zejd)d
d	Zeed(ddZejd)ddZeed* fddZ	e	jd+ fddZ	eed,ddZ
e
jd-ddZ
eed.ddZejd/ddZeed0ddZejd1ddZeed2d!d"Zejd3d#d"Zeed4 fd%d&Zejd5d'd&Z  ZS )6_ModuleClientreturnr<   c                 C     t S Nr=   self rZ   P/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/openai/__init__.pyr=         z_ModuleClient.api_keyvalueNonec                 C     |a d S rV   rW   rY   r]   rZ   rZ   r[   r=         c                 C  rU   rV   r>   rX   rZ   rZ   r[   r>      r\   z_ModuleClient.organizationc                 C  r_   rV   rb   r`   rZ   rZ   r[   r>      ra   c                 C  rU   rV   r?   rX   rZ   rZ   r[   r?      r\   z_ModuleClient.projectc                 C  r_   rV   rc   r`   rZ   rZ   r[   r?      ra   
_httpx.URLc                   s   t d ur	tt S t j S rV   )r@   _httpxURLsuperrX   	__class__rZ   r[   r@      s   
z_ModuleClient.base_urlurl_httpx.URL | strc                   s   |t  _d S rV   )rg   r@   )rY   rj   rh   rZ   r[   r@      s   rA   c                 C  rU   rV   rB   rX   rZ   rZ   r[   rB      r\   z_ModuleClient.timeoutc                 C  r_   rV   rl   r`   rZ   rZ   r[   rB      ra   rC   c                 C  rU   rV   rD   rX   rZ   rZ   r[   rD      r\   z_ModuleClient.max_retriesc                 C  r_   rV   rm   r`   rZ   rZ   r[   rD      ra   rE   c                 C  rU   rV   rF   rX   rZ   rZ   r[   _custom_headers   r\   z_ModuleClient._custom_headersc                 C  r_   rV   rn   r`   rZ   rZ   r[   ro      ra   rG   c                 C  rU   rV   rH   rX   rZ   rZ   r[   _custom_query   r\   z_ModuleClient._custom_queryc                 C  r_   rV   rp   r`   rZ   rZ   r[   rq      ra   _httpx.Clientc                   s   t pt jS rV   )rI   rg   _clientrX   rh   rZ   r[   rs      s   z_ModuleClient._clientc                 C  r_   rV   )rI   r`   rZ   rZ   r[   rs      ra   )rT   r<   )r]   r<   rT   r^   )rT   rd   )rj   rk   rT   r^   )rT   rA   )r]   rA   rT   r^   )rT   rC   )r]   rC   rT   r^   )rT   rE   )r]   rE   rT   r^   )rT   rG   )r]   rG   rT   r^   )rT   rr   )r]   rr   rT   r^   )__name__
__module____qualname__propertyr   r=   setterr>   r?   r@   rB   rD   ro   rq   rs   __classcell__rZ   rZ   rh   r[   rS      s\    rS   c                   @  s   e Zd ZdS )_AzureModuleClientN)rt   ru   rv   rZ   rZ   rZ   r[   rz      s    rz   c                      s   e Zd Zd fddZ  ZS ) _AmbiguousModuleClientUsageErrorrT   r^   c                   s   t  d d S )NzAmbiguous use of module client; please set `openai.api_type` or the `OPENAI_API_TYPE` environment variable to `openai` or `azure`)rg   __init__rX   rh   rZ   r[   r|     s   z)_AmbiguousModuleClientUsageError.__init__rT   r^   )rt   ru   rv   r|   ry   rZ   rZ   rh   r[   r{     s    r{   rT   boolc                   C  s   t jdd uS )NOPENAI_API_KEY)_osenvirongetrZ   rZ   rZ   r[   _has_openai_credentials  s   r   c                   C  s   t d uptjdd uS )NAZURE_OPENAI_API_KEY)rO   r   r   r   rZ   rZ   rZ   r[   _has_azure_credentials  s   r   c                   C  s    t jdd uptd uptd uS )NrP   )r   r   r   rQ   rR   rZ   rZ   rZ   r[   _has_azure_ad_credentials  s
   r   zOpenAI | Noners   r   c                  C  s   t d u rytd u rtjdatd u rtjdatd u r"tjdatd u rTt } t	 }t
 }| r8|s5|r8t td us@td urKtjdd urKt |sO|rRdandatdkrjtttttttttttttda t S ttttttttttd	a t S t S )	NrN   rP   rL   r   r2   r;   )rM   rO   r=   rQ   rR   r>   r@   rB   rD   rF   rH   rI   )	r=   r>   r?   r@   rB   rD   rF   rH   rI   )rs   rO   r   r   r   rQ   rM   rK   r   r   r   r{   rR   rz   r=   r>   r@   rB   rD   rF   rH   rI   rS   r?   )
has_openai	has_azurehas_azure_adrZ   rZ   r[   _load_client  sf   r   r^   c                   C  s   d a d S rV   )rs   rZ   rZ   rZ   r[   _reset_client]  s   r   )betachataudioevalsfilesimagesmodelsbatchesuploads	responses
containers
embeddingscompletionsfine_tuningmoderationsvector_stores)rT   r~   )rT   r   r}   )
__future__r   osr   typing_ttyping_extensionsr    r   _typesr   r   r   r	   r
   r   _utilsr   rs   r   r   r   r   r   r   r   r   _modelsr   _versionr   r   	_responser   r   
_constantsr   r   r   _exceptionsr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   _base_clientr-   r.   _utils._logsr/   _setup_logging_legacy_responser0   __all__TYPE_CHECKING_utils._resources_proxyr1   libr2   _azurer3   versionr4   	lib.azurer5   r6   lib._old_apilib.streamingr8   r9   locals__locals__name
startswithru   	TypeErrorAttributeError_tehttpxre   r=   __annotations__r>   r?   r@   rB   rD   rF   rH   rI   Literal_ApiTypecastr   r   rK   rM   rO   rQ   rR   rS   rz   r{   r   r   r   r   r   _module_clientr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rZ   rZ   rZ   r[   <module>   s~    ,H+

i




BL