
    rh|                         d dl mZ d dlmZ ddlmZ ddlmZ ddlm	Z	  ej                  e      Z G d d	e      Zd	gZy
)    )deepcopy)Any   )PretrainedConfig)logging   )CONFIG_MAPPINGc                   d     e Zd ZU dZdZdeiZeee	f   e
d<   	 	 	 d
dedef fdZddefd	Z xZS )ColQwen2Configac  
    Configuration class to store the configuration of a [`ColQ2en2ForRetrieval`]. It is used to instantiate an instance
    of `ColQwen2ForRetrieval` according to the specified arguments, defining the model architecture following the methodology
    from the "ColPali: Efficient Document Retrieval with Vision Language Models" paper.

    Instantiating a configuration with the defaults will yield a similar configuration to the vision encoder used by the pre-trained
    ColQwen2-v1.0 model, e.g. [vidore/colqwen2-v1.0-hf](https://huggingface.co/vidore/colqwen2-v1.0-hf).

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

    Args:
        vlm_config (`PretrainedConfig`, *optional*):
            Configuration of the VLM backbone model.
        embedding_dim (`int`, *optional*, defaults to 128):
            Dimension of the multi-vector embeddings produced by the model.
        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.models.colqwen2 import ColQwen2Config, ColQwen2ForRetrieval

    config = ColQwen2Config()
    model = ColQwen2ForRetrieval(config)
    ```
    colqwen2
vlm_configsub_configsembedding_diminitializer_rangec                 f   |#t        d          }t        j                  d       ngt        |t              r,t        |      }d|vrt        d      t        |d      di |}n+t        |t              r|}nt        dt        |       d      || _
        || _        || _        t        | 8  di | y )Nqwen2_vlz_`vlm_config` is `None`. Initializing `vlm_config` with the `Qwen2VLConfig` with default values.
model_typez^The `model_type` key is missing in the `vlm_config` dictionary. Please provide the model type.zWInvalid type for `vlm_config`. Expected `PretrainedConfig`, `dict`, or `None`, but got . )r	   loggerinfo
isinstancedictr   KeyErrorr   	TypeErrortyper   r   r   super__init__)selfr   r   r   kwargs	__class__s        /var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/transformers/models/colqwen2/configuration_colqwen2.pyr   zColQwen2Config.__init__;   s     '
35JKKq 
D)!*-J:-t  (
<(@AOJOJ
$45#Jijnoyjzi{{|}  %*!2"6"    returnc                 :    | j                   j                  |      S )N)decoder)r   get_text_config)r   r&   s     r"   r'   zColQwen2Config.get_text_configZ   s    ..w.??r#   )N   g{Gz?)F)__name__
__module____qualname____doc__r   r   r   r   strr   __annotations__intfloatr   r'   __classcell__)r!   s   @r"   r   r      sZ    8 J#/1A"BKc3hB  #'	# # !	#>@0@ @r#   r   N)copyr   typingr   configuration_utilsr   utilsr   autor	   
get_loggerr)   r   r   __all__r   r#   r"   <module>r9      sF       3  ! 
		H	%@@% @@F 
r#   