




'''simple docstring'''




# Copyright 2023 The HuggingFace Inc. team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import torch

from ..models.auto import AutoModelForSequenceClassification, AutoTokenizer
from .base import PipelineTool


class   __UpperCamelCase       ( lowerCamelCase__				):
       lowercase	:    Optional[int]      						='facebook/bart-large-mnli'
       lowercase	:    List[Any]      						=(
           'This is a tool that classifies an English text using provided labels. It takes two inputs: `text`, which '
           'should be the text to classify, and `labels`, which should be the list of labels to use for classification. '
           'It returns the most likely label in the list of provided `labels` for the input text.'
       )
       lowercase	:    Optional[int]      						='text_classifier'
       lowercase	:    List[Any]      						=AutoTokenizer
       lowercase	:    Optional[int]      						=AutoModelForSequenceClassification

       lowercase	:    Union[str, Any]      						=['text', ['text']]
       lowercase	:    int      						=['text']






       def      lowercase__     (							self  ):



              """simple docstring"""







              super().setup()
              lowerCamelCase_							=self.model.config
              lowerCamelCase_							=-1
              for idx, label in config.idalabel.items():
                     if label.lower().startswith('''entail'''  ):
                            lowerCamelCase_							=int(lowerCAmelCase  )
              if self.entailment_id == -1:
                     raise ValueError('''Could not determine the entailment ID from the model config, please pass it at init.'''  )






       def      lowercase__     (							self,		lowerCAmelCase,		lowerCAmelCase  ):



              """simple docstring"""







              lowerCamelCase_							=labels
              return self.pre_processor(
                  [text] * len(lowerCAmelCase  ),		[f'''This example is {label}''' for label in labels],		return_tensors='''pt''',		padding='''max_length''',		)






       def      lowercase__     (							self,		lowerCAmelCase  ):



              """simple docstring"""







              lowerCamelCase_							=outputs.logits
              lowerCamelCase_							=torch.argmax(logits[:, 2]  ).item()
              return self._labels[label_id]








import warnings

from ...utils import logging
from .image_processing_dpt import DPTImageProcessor


_snake_case             =     logging.get_logger(__name__)
class 	UpperCAmelCase_					(					UpperCamelCase    ):

   '''simple docstring'''




   def __init__(		self						,				*__A						,				**__A ):






     """simple docstring"""





     warnings.warn(
         "The class DPTFeatureExtractor is deprecated and will be removed in version 5 of Transformers. Please"
         " use DPTImageProcessor instead."						,				__A						,				)
     super().__init__(*__A						,				**__A )



