Ë
    uPêj>  ã                   ó¤   — d dl Z d dl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
mZ d dlmZmZ erd dlmZ dd	lmZ eZeZneZeZ G d
„ de«      Zy)é    N)ÚABCÚabstractmethod)ÚTYPE_CHECKINGÚAny)ÚHeaders)ÚAllMessageValuesÚCreateBatchRequest)ÚLiteLLMBatchÚLlmProviders)ÚLoggingé   )ÚBaseLLMExceptionc                   óæ  — e Zd ZdZd„ Zeedefd„«       «       Ze	d„ «       Z
e	 	 ddeded	ee   d
edededz  dedz  defd„«       Zededz  dedz  ded
edededefd„«       Zededed
ededeez  eeef   z  f
d„«       Zededz  dej,                  dededef
d„«       Zeded
ededeez  eeef   z  fd„«       Zededz  dej,                  dededef
d„«       Zedededeez  ddfd„«       Zy)ÚBaseBatchesConfiga  
    Abstract base class for batch processing configurations across different LLM providers.

    This class defines the interface that all provider-specific batch configurations
    must implement to work with LiteLLM's unified batch processing system.
    c                  ó   — y )N© ©Úselfs    úq/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/batches/transformation.pyÚ__init__zBaseBatchesConfig.__init__"   s   € Øó    Úreturnc                  ó   — y)z4Return the LLM provider type for this configuration.Nr   r   s    r   Úcustom_llm_providerz%BaseBatchesConfig.custom_llm_provider%   ó   � r   c                 ó  — | j                   j                  «       D ��ci c]`  \  }}|j                  d«      sJ|j                  d«      s9t        |t        j
                  t        j                  t        t        f«      s|�||“Œb c}}S c c}}w )z,Get configuration dictionary for this class.Ú__Ú_abc)	Ú__dict__ÚitemsÚ
startswithÚ
isinstanceÚtypesÚFunctionTypeÚBuiltinFunctionTypeÚclassmethodÚstaticmethod)ÚclsÚkÚvs      r   Ú
get_configzBaseBatchesConfig.get_config*   s€   € ð
 Ÿ™×*Ñ*Ó,÷
á��1Ø—<‘< Ô%Ø—L‘L Ô(ÜØä×&Ñ&Ü×-Ñ-ÜÜ ð	ôð �ð ˆq‰Dó
ð 	
ùó 
s   žA%BNÚheadersÚmodelÚmessagesÚoptional_paramsÚlitellm_paramsÚapi_keyÚapi_basec                  ó   — y)a­  
        Validate and prepare environment-specific headers and parameters.

        Args:
            headers: HTTP headers dictionary
            model: Model name
            messages: List of messages
            optional_params: Optional parameters
            litellm_params: LiteLLM parameters
            api_key: API key
            api_base: API base URL

        Returns:
            Updated headers dictionary
        Nr   )r   r,   r-   r.   r/   r0   r1   r2   s           r   Úvalidate_environmentz&BaseBatchesConfig.validate_environment>   r   r   Údatac                  ó   — y)a~  
        Get the complete URL for batch creation request.

        Args:
            api_base: Base API URL
            api_key: API key
            model: Model name
            optional_params: Optional parameters
            litellm_params: LiteLLM parameters
            data: Batch creation request data

        Returns:
            Complete URL for the batch request
        Nr   )r   r2   r1   r-   r/   r0   r5   s          r   Úget_complete_batch_urlz(BaseBatchesConfig.get_complete_batch_urlY   r   r   Úcreate_batch_datac                  ó   — y)aR  
        Transform the batch creation request to provider-specific format.

        Args:
            model: Model name
            create_batch_data: Batch creation request data
            optional_params: Optional parameters
            litellm_params: LiteLLM parameters

        Returns:
            Transformed request data
        Nr   )r   r-   r8   r/   r0   s        r   Útransform_create_batch_requestz0BaseBatchesConfig.transform_create_batch_requestr   r   r   Úraw_responseÚlogging_objc                  ó   — y)a2  
        Transform provider-specific batch response to LiteLLM format.

        Args:
            model: Model name
            raw_response: Raw HTTP response
            logging_obj: Logging object
            litellm_params: LiteLLM parameters

        Returns:
            LiteLLM batch object
        Nr   ©r   r-   r;   r<   r0   s        r   Útransform_create_batch_responsez1BaseBatchesConfig.transform_create_batch_response‡   r   r   Úbatch_idc                  ó   — y)a%  
        Transform the batch retrieval request to provider-specific format.

        Args:
            batch_id: Batch ID to retrieve
            optional_params: Optional parameters
            litellm_params: LiteLLM parameters

        Returns:
            Transformed request data
        Nr   )r   r@   r/   r0   s       r   Ú transform_retrieve_batch_requestz2BaseBatchesConfig.transform_retrieve_batch_requestœ   r   r   c                  ó   — y)a<  
        Transform provider-specific batch retrieval response to LiteLLM format.

        Args:
            model: Model name
            raw_response: Raw HTTP response
            logging_obj: Logging object
            litellm_params: LiteLLM parameters

        Returns:
            LiteLLM batch object
        Nr   r>   s        r   Ú!transform_retrieve_batch_responsez3BaseBatchesConfig.transform_retrieve_batch_response¯   r   r   Úerror_messageÚstatus_coder   c                  ó   — y)a  
        Get the appropriate error class for this provider.

        Args:
            error_message: Error message
            status_code: HTTP status code
            headers: Response headers

        Returns:
            Provider-specific exception class
        Nr   )r   rE   rF   r,   s       r   Úget_error_classz!BaseBatchesConfig.get_error_classÄ   r   r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r   r&   r+   ÚdictÚstrÚlistr   r4   r	   r7   Úbytesr   r:   ÚhttpxÚResponseÚLiteLLMLoggingObjr
   r?   rB   rD   Úintr   rH   r   r   r   r   r      sŒ  „ ñòð ØðC \ò Có ó ðCð ñ
ó ð
ð& ð #Ø#ñàðð ðð Ð'Ñ(ð	ð
 ðð ðð �t‘ðð ˜‘*ðð 
òó ðð4 ðà˜‘*ðð �t‘ðð ð	ð
 ðð ðð !ðð 
òó ðð0 ðàðð .ðð ð	ð
 ðð 
�‰�t˜C ˜H‘~Ñ	%òó ðð( ðà�T‰zðð —n‘nðð 'ð	ð
 ðð 
òó ðð( ðàðð ðð ð	ð
 
�‰�t˜C ˜H‘~Ñ	%òó ðð$ ðà�T‰zðð —n‘nðð 'ð	ð
 ðð 
òó ðð( ð¨Sð ¸sð ÈTÐT[É^ð Ð`rò ó ñr   r   )r#   Úabcr   r   Útypingr   r   rR   r   Úlitellm.types.llms.openair   r	   Úlitellm.types.utilsr
   r   Ú*litellm.litellm_core_utils.litellm_loggingr   Ú_LiteLLMLoggingObjÚchat.transformationr   Ú_BaseLLMExceptionrT   r   r   r   r   ú<module>r^      sM   ðÛ ß #ß %ã Ý ÷÷ ;áÝXåKà*ÐØ(ÑàÐØÐôv˜õ vr   