o
    ưi
                     @   sZ   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 dZdS )    )TYPE_CHECKINGAnyOptionalUnionN)CustomStreamWrapper)ModelResponseTextCompletionResponsec                   @   s   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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dZdd Zdd Zdd Zdd Zdee fddZdefdd Zdefd!d"ZdS )#BaseLLMN_client_sessionmodelresponsemodel_responser   streamlogging_objoptional_paramsapi_keydatamessagesreturn)r   r   c                 C      |S z^
        Helper function to process the response across sync + async completion calls
         selfr   r   r   r   r   r   r   r   r   Zprint_verboseencodingr   r   H/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/base.pyprocess_response      zBaseLLM.process_responser   )r   r   c                 C   r   r   r   r   r   r   r    process_text_completion_response#   r   z(BaseLLM.process_text_completion_responsec                 C      t jrt j}|S t }|S N)litellmZclient_sessionhttpxClient)r   r
   r   r   r   create_client_session6   
   zBaseLLM.create_client_sessionc                 C   r   r    )r!   Zaclient_sessionr"   ZAsyncClient)r   _aclient_sessionr   r   r   create_aclient_session>   r%   zBaseLLM.create_aclient_sessionc                 C   s*   t | dr| jd ur| j  d S d S d S )Nr
   )hasattrr
   close)r   r   r   r   __exit__F   s   zBaseLLM.__exit__c                    s$   t | dr| j I d H  d S d S )Nr&   )r(   r&   aclose)r   exc_typeexc_valexc_tbr   r   r   	__aexit__J   s   
zBaseLLM.__aexit__c                 O      d S r    r   r   argskwargsr   r   r   validate_environmentN      zBaseLLM.validate_environmentc                 O   r0   r    r   r1   r   r   r   
completionS   r5   zBaseLLM.completionc                 O   r0   r    r   r1   r   r   r   	embeddingX   r5   zBaseLLM.embedding)__name__
__module____qualname__r
   r   r"   r#   __annotations__strResponseboolr   dictr   listr   r   r$   r'   r*   r/   r4   r6   r7   r   r   r   r   r	      sr   
 
	


	



r	   )typingr   r   r   r   r"   r!   Z,litellm.litellm_core_utils.streaming_handlerr   Zlitellm.types.utilsr   r   r	   r   r   r   r   <module>   s   