
    rh                     l    d dl mZ d dlmZ ddlmZmZ  ej                  e      Z	 G d de      Z
dgZy)   )PretrainedConfig)logging   )CONFIG_MAPPING
AutoConfigc                   b     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
Z
 x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
    ```shieldgemma2image_token_indexboi_token_indexeoi_token_index)image_token_idboi_token_ideoi_token_id)text_configvision_configmm_tokens_per_imageinitializer_rangec                    t        |t              r'|j                  dd      |d<   t        |d      di |}n|t        d          }|| _        t        |t              r'|j                  dd      |d<   t        |d      di |}n|t        d          }|| _        || _        || _        || _        || _        || _	        || _
        t        	| 0  di | y )N
model_typesiglip_vision_modelgemma3_text )
isinstancedictgetr   r   r   r   r   r   r   r   super__init__)
selfr   r   r   r   r   r   r   kwargs	__class__s
            /var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/transformers/models/shieldgemma2/configuration_shieldgemma2.pyr   zShieldGemma2Config.__init__R   s     mT**7*;*;LJ_*`M,'*=+FGX-XM"*+@ACM*k4((3m(TK%(\)BCRkRK (79K&*#6 ..!2!2"6"    )NN   i i  i   g{Gz?)__name__
__module____qualname____doc__r   attribute_mapr   sub_configsintfloatr   __classcell__)r!   s   @r"   r	   r	      s    .`  J-))M
 #-zJK #&&&!(#'!# !	!#
 !# !# !# !!# !#r#   r	   N)configuration_utilsr   utilsr   autor   r   
get_loggerr%   loggerr	   __all__r   r#   r"   <module>r4      s>   " 4  - 
		H	%Z#) Z#z  
 r#   