
    h
                     `    d dl mZmZmZmZ d dlZd dlZerd dlmZ d dl	m
Z
mZ  G d d      Zy)    )TYPE_CHECKINGAnyOptionalUnionN)CustomStreamWrapper)ModelResponseTextCompletionResponsec                       e Zd ZU dZeej                     ed<   dedej                  ddde
ded	ed
edeeef   deded   fdZdedej                  ddde
ded	ed
edeeef   deded   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_responser   streamlogging_objoptional_paramsapi_keydatamessagesreturn)r   r   c                     |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               M/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/base.pyprocess_responsezBaseLLM.process_response   
    "     r	   )r	   r   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_session6   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__F   s3    4*+0D0D0P  &&( 1Q+r!   c                 n   K   t        | d      r#| j                  j                          d {    y y 7 w)Nr.   )r1   r.   aclose)r   exc_typeexc_valexc_tbs       r   	__aexit__zBaseLLM.__aexit__J   s1     4+,''..000 -0s   *535c                      y r%   r   r   argskwargss      r   validate_environmentzBaseLLM.validate_environmentN        r!   c                      y r%   r   r;   s      r   
completionzBaseLLM.completionS   r?   r!   c                      y r%   r   r;   s      r   	embeddingzBaseLLM.embeddingX   r?   r!   )__name__
__module____qualname__r   r   r(   r)   __annotations__strResponseboolr   dictr   listr   r#   r*   r/   r3   r9   r>   rA   rC   r   r!   r   r   r      sH   .2OXell+2 .. (	
     D#I  
5	6& .. 1	
     D#I  
>	?& )1	#
	
	r!   r   )typingr   r   r   r   r(   r&   ,litellm.litellm_core_utils.streaming_handlerr   litellm.types.utilsr   r	   r   r   r!   r   <module>rP      s&    6 6  PIN Nr!   