
    rh                        d dl mZ d dlmZ 	 d dlmZ d dlmZm	Z	 d dl
mZ d dlmZmZ  G d de      Zy	# e$ r	 d dlmZ Y /w xY w)
    )annotations)Callable)Self)Tensornn)Module)fullnameimport_from_stringc                       e Zd ZU dZg dZded<   d ej                         ddf	 	 	 	 	 	 	 	 	 	 	 d fdZddZ	dd	Z
d
 ZddddZd Ze	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z xZS )Densea0  
    Feed-forward function with activation function.

    This layer takes a fixed-sized sentence embedding and passes it through a feed-forward layer. Can be used to generate deep averaging networks (DAN).

    Args:
        in_features: Size of the input dimension
        out_features: Output size
        bias: Add a bias vector
        activation_function: Pytorch activation function applied on
            output
        init_weight: Initial value for the matrix of the linear layer
        init_bias: Initial value for the bias of the linear layer
    in_featuresout_featuresbiasactivation_functionz	list[str]config_keysTNc                Z   t         |           || _        || _        || _        |t        j                         n|| _        t        j                  |||      | _	        |$t        j                  |      | j                  _        |%t        j                  |      | j                  _        y y )N)r   )super__init__r   r   r   r   Identityr   Linearlinear	Parameterweight)selfr   r   r   r   init_weight	init_bias	__class__s          u/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/sentence_transformers/models/Dense.pyr   zDense.__init__'   s     	&(	4G4O2;;=Uh ii\E"!#k!:DKK !||I6DKK !    c           	     n    |j                  d| j                  | j                  |d               i       |S )Nsentence_embedding)updater   r   )r   featuress     r   forwardzDense.forward=   s4    -t/G/GT\]qTrHs/tuvr    c                    | j                   S )N)r   r   s    r    get_sentence_embedding_dimensionz&Dense.get_sentence_embedding_dimensionA   s       r    c                r    | j                   | j                  | j                  t        | j                        dS )Nr   )r   r   r   r	   r   r'   s    r   get_config_dictzDense.get_config_dictD   s3    ++ --II#+D,D,D#E	
 	
r    safe_serializationc               L    | j                  |       | j                  ||       y )Nr+   )save_configsave_torch_weights)r   output_pathr,   argskwargss        r   savez
Dense.saveL   s$    %@RSr    c                *    d| j                          dS )NzDense())r*   r'   s    r   __repr__zDense.__repr__P   s    ,,./q11r    c                    |||||d} | j                   dd|i|}	 t        |	d                |	d<    | di |	}
 | j                  d||
d|}
|
S )N)	subfoldertokencache_folderrevisionlocal_files_onlymodel_name_or_pathr   )r=   model )load_configr
   load_torch_weights)clsr=   r8   r9   r:   r;   r<   r2   
hub_kwargsconfigr>   s              r   loadz
Dense.loadS   s     #(  0

 !U4FU*U(Y(:6BW;X(Y([$%f&&&h:LTYh]ghr    )r   intr   rF   r   boolr   z!Callable[[Tensor], Tensor] | Noner   Tensor | Noner   rH   )r$   zdict[str, Tensor])returnrF   )r0   strr,   rG   rI   None) NNNF)r=   rJ   r8   rJ   r9   zbool | str | Noner:   
str | Noner;   rM   r<   rG   rI   r   )__name__
__module____qualname____doc__r   __annotations__r   Tanhr   r%   r(   r*   r3   r6   classmethodrE   __classcell__)r   s   @r   r   r      s    K  AH%)#'77 7 	7
 ?7 #7 !7,!
 HL T2  #'#'#!&  !	
 !   
 r    r   N)
__future__r   typingr   r   ImportErrortyping_extensionstorchr   r   #sentence_transformers.models.Moduler   sentence_transformers.utilr	   r
   r   r?   r    r   <module>r]      s@    " '  6 CYF Y  '&'s   6 AA