a
    ¾ÀhÅ  ã                   @   sL   d dl mZ d dlmZ ddlmZmZ e e¡Z	G dd„ deƒZ
dgZdS )é   )ÚPretrainedConfig)Úloggingé   )ÚCONFIG_MAPPINGÚ
AutoConfigc                       sJ   e Zd ZdZdZddddœZeedœZdeeeee	dœ‡ fdd„Z
‡  ZS )ÚShieldGemma2Configaá  
    This is the configuration class to store the configuration of a [`ShieldGemma2ForImageClassification`]. It is used to instantiate an
    ShieldGemma2ForImageClassification according to the specified arguments, defining the model architecture. Instantiating a configuration
    with the defaults will yield a similar configuration to that of the shieldgemma-2-4b-it.

    e.g. [google/gemma-3-4b](https://huggingface.co/google/gemma-3-4b)

    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
    documentation from [`PretrainedConfig`] for more information.

    Args:
        text_config (`Union[ShieldGemma2TextConfig, dict]`, *optional*):
            The config object of the text backbone.
        vision_config (`Union[AutoConfig, dict]`,  *optional*):
            Custom vision config or dict.
        mm_tokens_per_image (`int`, *optional*, defaults to 256):
            The number of tokens per image embedding.
        boi_token_index (`int`, *optional*, defaults to 255999):
            The begin-of-image token index to wrap the image prompt.
        eoi_token_index (`int`, *optional*, defaults to 256000):
            The end-of-image token index to wrap the image prompt.
        image_token_index (`int`, *optional*, defaults to 262144):
            The image token index to encode the image prompt.
        initializer_range (`float`, *optional*, defaults to 0.02):
            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.


    Example:

    ```python
    >>> from transformers import ShieldGemma2ForConditionalGeneration, ShieldGemma2Config, SiglipVisionConfig, ShieldGemma2TextConfig

    >>> # Initializing a Siglip-like vision config
    >>> vision_config = SiglipVisionConfig()

    >>> # Initializing a ShieldGemma2 Text config
    >>> text_config = ShieldGemma2TextConfig()

    >>> # Initializing a ShieldGemma2 gemma-3-4b style configuration
    >>> configuration = ShieldGemma2Config(vision_config, text_config)

    >>> # Initializing a model from the gemma-3-4b style configuration
    >>> model = ShieldGemma2TextConfig(configuration)

    >>> # Accessing the model configuration
    >>> configuration = model.config
    ```Zshieldgemma2Úimage_token_indexÚboi_token_indexÚeoi_token_index)Zimage_token_idZboi_token_idZeoi_token_id)Útext_configÚvision_configNé   éÿç é è é   ç{®Gáz”?)Úmm_tokens_per_imager	   r
   r   Úinitializer_rangec           	         sÎ   t |tƒr2| dd¡|d< t|d  f i |¤Ž}n|d u rDtd ƒ }|| _t |tƒr|| dd¡|d< t|d  f i |¤Ž}n|d u rŽtd ƒ }|| _|| _|| _|| _|| _|| _	|| _
tƒ jf i |¤Ž d S )NÚ
model_typeZsiglip_vision_modelZgemma3_text)Ú
isinstanceÚdictÚgetr   r   r   r   r	   r
   r   r   ÚsuperÚ__init__)	Úselfr   r   r   r	   r
   r   r   Úkwargs©Ú	__class__© úw/var/www/html/assistant/venv/lib/python3.9/site-packages/transformers/models/shieldgemma2/configuration_shieldgemma2.pyr   R   s&    



zShieldGemma2Config.__init__)NNr   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Zattribute_mapr   Zsub_configsÚintÚfloatr   Ú__classcell__r   r   r   r   r      s*   0ý
       øør   N)Zconfiguration_utilsr   Úutilsr   Úautor   r   Z
get_loggerr    Úloggerr   Ú__all__r   r   r   r   Ú<module>   s
   
]