
from ...configuration_utils import PretrainedConfig
from ...utils import logging


_snake_case      = logging.get_logger(__name__)

_snake_case      = {
    '''tiiuae/falcon-40b''': '''https://huggingface.co/tiiuae/falcon-40b/resolve/main/config.json''',
    '''tiiuae/falcon-7b''': '''https://huggingface.co/tiiuae/falcon-7b/resolve/main/config.json''',
}
class       _lowerCAmelCase  (		__magic_name__							):

 """simple docstring"""
 SCREAMING_SNAKE_CASE_				:					List[str]       						="falcon"
 SCREAMING_SNAKE_CASE_				:					str       						=["past_key_values"]

 def __init__(						self			:			Any					, SCREAMING_SNAKE_CASE__			:			List[str]=6_50_24					, SCREAMING_SNAKE_CASE__			:			int=45_44					, SCREAMING_SNAKE_CASE__			:			Union[str, Any]=32					, SCREAMING_SNAKE_CASE__			:			Optional[int]=71					, SCREAMING_SNAKE_CASE__			:			Union[str, Any]=1e-5					, SCREAMING_SNAKE_CASE__			:			List[str]=0.02					, SCREAMING_SNAKE_CASE__			:			List[Any]=True					, SCREAMING_SNAKE_CASE__			:			Dict=0.0					, SCREAMING_SNAKE_CASE__			:			Union[str, Any]=0.0					, SCREAMING_SNAKE_CASE__			:			Optional[Any]=None					, SCREAMING_SNAKE_CASE__			:			str=False					, SCREAMING_SNAKE_CASE__			:			Optional[int]=False					, SCREAMING_SNAKE_CASE__			:			Optional[Any]=True					, SCREAMING_SNAKE_CASE__			:			int=True					, SCREAMING_SNAKE_CASE__			:			Optional[int]=False					, SCREAMING_SNAKE_CASE__			:			List[Any]=11					, SCREAMING_SNAKE_CASE__			:			List[Any]=11					, **SCREAMING_SNAKE_CASE__			:			Any					, ):






      """simple docstring"""



      UpperCamelCase						    =					vocab_size
      # Backward compatibility with n_embed kwarg
      UpperCamelCase						    =					kwargs.pop('n_embed'					, SCREAMING_SNAKE_CASE__   )
      UpperCamelCase						    =					hidden_size if n_embed is None else n_embed
      UpperCamelCase						    =					num_hidden_layers
      UpperCamelCase						    =					num_attention_heads
      UpperCamelCase						    =					layer_norm_epsilon
      UpperCamelCase						    =					initializer_range
      UpperCamelCase						    =					use_cache
      UpperCamelCase						    =					hidden_dropout
      UpperCamelCase						    =					attention_dropout

      UpperCamelCase						    =					bos_token_id
      UpperCamelCase						    =					eos_token_id
      UpperCamelCase						    =					num_attention_heads if num_kv_heads is None else num_kv_heads
      UpperCamelCase						    =					alibi
      UpperCamelCase						    =					new_decoder_architecture
      UpperCamelCase						    =					multi_query  # Ignored when new_decoder_architecture is True
      UpperCamelCase						    =					parallel_attn
      UpperCamelCase						    =					bias

      super().__init__(bos_token_id=SCREAMING_SNAKE_CASE__					, eos_token_id=SCREAMING_SNAKE_CASE__					, **SCREAMING_SNAKE_CASE__   )

 @property
 def      __lowerCAmelCase  (						self			:			Optional[int]   ):






      """simple docstring"""



      return self.hidden_size // self.num_attention_heads






 @property
 def      __lowerCAmelCase  (						self			:			Optional[int]   ):






      """simple docstring"""



      return not self.alibi




# 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.
from ..models.whisper import WhisperForConditionalGeneration, WhisperProcessor
from .base import PipelineTool
class       _lowerCAmelCase  (		__magic_name__							):

 """simple docstring"""
 SCREAMING_SNAKE_CASE_				:					Tuple       						="openai/whisper-base"
 SCREAMING_SNAKE_CASE_				:					List[str]       						=(
     "This is a tool that transcribes an audio into text. It takes an input named `audio` and returns the "
     "transcribed text."
 )
 SCREAMING_SNAKE_CASE_				:					int       						="transcriber"
 SCREAMING_SNAKE_CASE_				:					Tuple       						=WhisperProcessor
 SCREAMING_SNAKE_CASE_				:					List[Any]       						=WhisperForConditionalGeneration

 SCREAMING_SNAKE_CASE_				:					Union[str, Any]       						=["audio"]
 SCREAMING_SNAKE_CASE_				:					Any       						=["text"]

 def      __lowerCAmelCase  (						self			:			List[Any]					, SCREAMING_SNAKE_CASE__			:			List[Any]   ):






      """simple docstring"""



      return self.pre_processor(SCREAMING_SNAKE_CASE__					, return_tensors='pt'   ).input_features

 def      __lowerCAmelCase  (						self			:			Tuple					, SCREAMING_SNAKE_CASE__			:			Union[str, Any]   ):






      """simple docstring"""



      return self.model.generate(inputs=SCREAMING_SNAKE_CASE__   )






 def      __lowerCAmelCase  (						self			:			List[str]					, SCREAMING_SNAKE_CASE__			:			List[str]   ):






      """simple docstring"""



      return self.pre_processor.batch_decode(SCREAMING_SNAKE_CASE__					, skip_special_tokens=SCREAMING_SNAKE_CASE__   )[0]


