
    rh                     r    d dl mZmZ ddlmZ ddlmZmZmZ  e edd      d	       G d
 de             Z	y)    )AnyUnion   )add_end_docstrings   )GenericTensorPipelinebuild_pipeline_init_argsTF)has_tokenizersupports_binary_outputa  
        tokenize_kwargs (`dict`, *optional*):
                Additional dictionary of keyword arguments passed along to the tokenizer.
        return_tensors (`bool`, *optional*):
            If `True`, returns a tensor according to the specified framework, otherwise returns a list.c            	            e Zd ZdZdZdZdZdZddZde	e
ef   fdZd ZddZd	ee
ee
   f   d
edeeee   f   f fdZ xZS )FeatureExtractionPipelinea  
    Feature extraction pipeline uses no model head. This pipeline extracts the hidden states from the base
    transformer, which can be used as features in downstream tasks.

    Example:

    ```python
    >>> from transformers import pipeline

    >>> extractor = pipeline(model="google-bert/bert-base-uncased", task="feature-extraction")
    >>> result = extractor("This is a simple test.", return_tensors=True)
    >>> result.shape  # This is a tensor of shape [1, sequence_length, hidden_dimension] representing the input string.
    torch.Size([1, 8, 768])
    ```

    Learn more about the basics of using a pipeline in the [pipeline tutorial](../pipeline_tutorial)

    This feature extraction pipeline can currently be loaded from [`pipeline`] using the task identifier:
    `"feature-extraction"`.

    All models may be used for this pipeline. See a list of all models, including community-contributed models on
    [huggingface.co/models](https://huggingface.co/models).
    FTc                 V    |i }|d|v rt        d      ||d<   |}i }|||d<   |i |fS )N
truncationz\truncation parameter defined twice (given as keyword argument as well as in tokenize_kwargs)return_tensors)
ValueError)selfr   tokenize_kwargsr   kwargspreprocess_paramspostprocess_paramss          |/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/transformers/pipelines/feature_extraction.py_sanitize_parametersz.FeatureExtractionPipeline._sanitize_parameters-   sc    " O!. r  -7OL)+%3A/0 "&888    returnc                 D     | j                   |fd| j                  i|}|S )Nr   )	tokenizer	framework)r   inputsr   model_inputss       r   
preprocessz$FeatureExtractionPipeline.preprocess@   s&    %t~~f_T^^__r   c                 *     | j                   di |}|S )N )model)r   r    model_outputss      r   _forwardz"FeatureExtractionPipeline._forwardD   s    "

2\2r   c                     |r|d   S | j                   dk(  r|d   j                         S | j                   dk(  r!|d   j                         j                         S y )Nr   pttf)r   tolistnumpy)r   r%   r   s      r   postprocessz%FeatureExtractionPipeline.postprocessH   s^     ##>>T! #**,,^^t# #))+2244 $r   argsr   c                 "    t        |   |i |S )a  
        Extract the features of the input(s) text.

        Args:
            args (`str` or `list[str]`): One or several texts (or one list of texts) to get the features of.

        Return:
            A nested list of `float`: The features computed by the model.
        )super__call__)r   r-   r   	__class__s      r   r0   z"FeatureExtractionPipeline.__call__Q   s     w000r   )NNN)F)__name__
__module____qualname____doc___load_processor_load_image_processor_load_feature_extractor_load_tokenizerr   dictstrr   r!   r&   r,   r   listr   r0   __classcell__)r1   s   @r   r   r      s    0 O!#O9&tC<N7O 5
1eCcN3 
1s 
1uSRVWZR[^G\ 
1 
1r   r   N)
typingr   r   utilsr   baser   r	   r
   r   r#   r   r   <module>rA      sD     & C C 4NkL1 L1L1r   