o
    Zh%                     @   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                       s`   e Zd ZdZdZddddZeedZ					
			ddedededede	f
 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         {Gz?mm_tokens_per_imageinitializer_rangec           	         s   t |trd|v r|d nd|d< t|d  di |}n	|d u r&td  }|| _t |trFd|v r6|d nd|d< t|d  di |}n	|d u rOtd  }|| _|| _|| _|| _|| _|| _|| _	t
 jdi | d S )N
model_typeZsiglip_vision_modelZgemma3_text )
isinstancedictr   r   r   r   r	   r
   r   r   super__init__)	selfr   r   r   r	   r
   r   r   kwargs	__class__r   j/var/www/auris/lib/python3.10/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      s4    0
r   N)Zconfiguration_utilsr   utilsr   autor   r   Z
get_loggerr   loggerr   __all__r   r   r   r   <module>   s   

_