


'''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__       (			SCREAMING_SNAKE_CASE_						):



     """simple docstring"""






     __magic_name__           =     "facebook/bart-large-mnli"
     __magic_name__           =     (
         "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."
     )
     __magic_name__           =     "text_classifier"
     __magic_name__           =     AutoTokenizer
     __magic_name__           =     AutoModelForSequenceClassification

     __magic_name__           =     ["text", ["text"]]
     __magic_name__           =     ["text"]







     def a						(			self ):

            '''simple docstring'''

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







     def a						(			self   ,						snake_case__   ,						snake_case__ ):

            '''simple docstring'''

            _lowerCAmelCase     :				Union[str, Any]       =							labels
            return self.pre_processor(
                [text] * len(snake_case__ )   ,						[F'This example is {label}' for label in labels]   ,						return_tensors='pt'   ,						padding='max_length'   ,						)







     def a						(			self   ,						snake_case__ ):

            '''simple docstring'''

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





'''simple docstring'''







import unittest

from transformers import RoFormerTokenizer, RoFormerTokenizerFast
from transformers.testing_utils import require_rjieba, require_tokenizers

from ...test_tokenization_common import TokenizerTesterMixin
@require_rjieba
@require_tokenizers
class 						UpperCamelCase__       (			SCREAMING_SNAKE_CASE_     ,       unittest.TestCase						):



     """simple docstring"""






     __magic_name__           =     RoFormerTokenizer
     __magic_name__           =     RoFormerTokenizerFast
     __magic_name__           =     True
     __magic_name__           =     True







     def a						(			self ):

            '''simple docstring'''

            super().setUp()







     def a						(			self   ,						**snake_case__ ):

            '''simple docstring'''

            return self.tokenizer_class.from_pretrained('junnyu/roformer_chinese_base'   ,						**snake_case__ )







     def a						(			self   ,						**snake_case__ ):

            '''simple docstring'''

            return self.rust_tokenizer_class.from_pretrained('junnyu/roformer_chinese_base'   ,						**snake_case__ )







     def a						(			self ):

            '''simple docstring'''

            _lowerCAmelCase     :				List[Any]       =							'永和服装饰品有限公司,今天天气非常好'
            _lowerCAmelCase     :				str       =							'永和 服装 饰品 有限公司 , 今 天 天 气 非常 好'
            return input_text, output_text







     def a						(			self ):

            '''simple docstring'''

            _lowerCAmelCase     :				Optional[int]       =							self.get_tokenizer()
            _lowerCAmelCase      ,  _lowerCAmelCase     :				int       =							self.get_chinese_input_output_texts()
            _lowerCAmelCase     :				List[Any]       =							tokenizer.tokenize(snake_case__ )

            self.assertListEqual(snake_case__   ,						output_text.split() )

            _lowerCAmelCase     :				Optional[Any]       =							tokens + [tokenizer.unk_token]
            _lowerCAmelCase     :				List[str]       =							[2_2943, 2_1332, 3_4431, 4_5904, 117, 306, 1231, 1231, 2653, 3_3994, 1266, 100]
            self.assertListEqual(tokenizer.convert_tokens_to_ids(snake_case__ )   ,						snake_case__ )







     def a						(			self ):

            '''simple docstring'''

            _lowerCAmelCase     :				List[Any]       =							self.get_rust_tokenizer()
            _lowerCAmelCase      ,  _lowerCAmelCase     :				Any       =							self.get_chinese_input_output_texts()
            _lowerCAmelCase     :				Optional[int]       =							tokenizer.tokenize(snake_case__ )
            self.assertListEqual(snake_case__   ,						output_text.split() )
            _lowerCAmelCase     :				Tuple       =							tokens + [tokenizer.unk_token]
            _lowerCAmelCase     :				List[Any]       =							[2_2943, 2_1332, 3_4431, 4_5904, 117, 306, 1231, 1231, 2653, 3_3994, 1266, 100]
            self.assertListEqual(tokenizer.convert_tokens_to_ids(snake_case__ )   ,						snake_case__ )







     def a						(			self ):

            '''simple docstring'''

            pass







     def a						(			self ):

            '''simple docstring'''

            pass







     def a						(			self ):

            '''simple docstring'''

            pass

