
    g{
                     X    d dl mZmZmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
  G d d      Zy)    )AnyOptionalUnionN)CustomStreamWrapper)ModelResponseTextCompletionResponsec                   (   e Zd ZU dZeej                     ed<   dedej                  de
dededed	ed
eeef   dedee
ef   fdZdedej                  dedededed	ed
eeef   dedeeef   fdZd Zd Zd Zd Zdee   fdZdefdZdefdZy)BaseLLMN_client_sessionmodelresponsemodel_responsestreamlogging_objoptional_paramsapi_keydatamessagesreturnc                     |S z^
        Helper function to process the response across sync + async completion calls
         selfr   r   r   r   r   r   r   r   r   print_verboseencodings               F/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/base.pyprocess_responsezBaseLLM.process_response   
    "     c                     |S r   r   r   s               r    process_text_completion_responsez(BaseLLM.process_text_completion_response"   r   r    c                 r    t         j                  rt         j                  }|S t        j                         }|S N)litellmclient_sessionhttpxClient)r   r   s     r   create_client_sessionzBaseLLM.create_client_session5   s1    !!%44O  $llnOr    c                 r    t         j                  rt         j                  }|S t        j                         }|S r$   )r%   aclient_sessionr'   AsyncClient)r   _aclient_sessions     r   create_aclient_sessionzBaseLLM.create_aclient_session=   s6    ""&66    %002r    c                 l    t        | d      r(| j                  | j                  j                          y y y )Nr   )hasattrr   close)r   s    r   __exit__zBaseLLM.__exit__E   s3    4*+0D0D0P  &&( 1Q+r    c                 n   K   t        | d      r#| j                  j                          d {    y y 7 w)Nr-   )r0   r-   aclose)r   exc_typeexc_valexc_tbs       r   	__aexit__zBaseLLM.__aexit__I   s1     4+,''..000 -0s   *535c                      y r$   r   r   argskwargss      r   validate_environmentzBaseLLM.validate_environmentM        r    c                      y r$   r   r:   s      r   
completionzBaseLLM.completionR   r>   r    c                      y r$   r   r:   s      r   	embeddingzBaseLLM.embeddingW   r>   r    )__name__
__module____qualname__r   r   r'   r(   __annotations__strResponser   boolr   dictr   listr   r   r   r"   r)   r.   r2   r8   r=   r@   rB   r   r    r   r
   r
      sS   .2OXell+2 .. &	
     D#I  
}11	2& .. /	
     D#I  
%'::	;& )1	#
	
	r    r
   )typingr   r   r   r'   r%   ,litellm.litellm_core_utils.streaming_handlerr   litellm.types.utilsr   r   r
   r   r    r   <module>rO      s#    ' '   L EO Or    