

from ... import PretrainedConfig


__lowercase     : Union[str, Any]       =						{
    '''sijunhe/nezha-cn-base''': '''https://huggingface.co/sijunhe/nezha-cn-base/resolve/main/config.json''',
}



class 						_A     (				snake_case				):





  '''simple docstring'''



  __lowerCamelCase			:      Union[str, Any]					=   NEZHA_PRETRAINED_CONFIG_ARCHIVE_MAP
  __lowerCamelCase			:      int					=   '''nezha'''





  def __init__(  self   ,SCREAMING_SNAKE_CASE_=21128   ,SCREAMING_SNAKE_CASE_=768   ,SCREAMING_SNAKE_CASE_=12   ,SCREAMING_SNAKE_CASE_=12   ,SCREAMING_SNAKE_CASE_=3072   ,SCREAMING_SNAKE_CASE_="gelu"   ,SCREAMING_SNAKE_CASE_=0.1   ,SCREAMING_SNAKE_CASE_=0.1   ,SCREAMING_SNAKE_CASE_=512   ,SCREAMING_SNAKE_CASE_=64   ,SCREAMING_SNAKE_CASE_=2   ,SCREAMING_SNAKE_CASE_=0.02   ,SCREAMING_SNAKE_CASE_=1E-12   ,SCREAMING_SNAKE_CASE_=0.1   ,SCREAMING_SNAKE_CASE_=0   ,SCREAMING_SNAKE_CASE_=2   ,SCREAMING_SNAKE_CASE_=3   ,SCREAMING_SNAKE_CASE_=True   ,**SCREAMING_SNAKE_CASE_   ,):

      '''simple docstring'''
      super().__init__(pad_token_id=SCREAMING_SNAKE_CASE_   ,bos_token_id=SCREAMING_SNAKE_CASE_   ,eos_token_id=SCREAMING_SNAKE_CASE_   ,**SCREAMING_SNAKE_CASE_    )

      snake_case							:		int        =		vocab_size
      snake_case							:		str        =		hidden_size
      snake_case							:		Tuple        =		num_hidden_layers
      snake_case							:		Optional[Any]        =		num_attention_heads
      snake_case							:		int        =		hidden_act
      snake_case							:		str        =		intermediate_size
      snake_case							:		Tuple        =		hidden_dropout_prob
      snake_case							:		Tuple        =		attention_probs_dropout_prob
      snake_case							:		Union[str, Any]        =		max_position_embeddings
      snake_case							:		Tuple        =		max_relative_position
      snake_case							:		List[Any]        =		type_vocab_size
      snake_case							:		Union[str, Any]        =		initializer_range
      snake_case							:		Optional[int]        =		layer_norm_eps
      snake_case							:		Optional[int]        =		classifier_dropout
      snake_case							:		Optional[int]        =		use_cache






"""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.
from typing import TYPE_CHECKING

from ..models.auto import AutoModelForVisionaSeq
from ..utils import requires_backends
from .base import PipelineTool


if TYPE_CHECKING:
							from PIL import Image







class 							SCREAMING_SNAKE_CASE   (						a_			):






					"""simple docstring"""



					lowercase__												=			"Salesforce/blip-image-captioning-base"
					lowercase__												=			(
					    "This is a tool that generates a description of an image. It takes an input named `image` which should be the "
					    "image to caption, and returns a text that contains the description in English."
					)
					lowercase__												=			"image_captioner"
					lowercase__												=			AutoModelForVisionaSeq

					lowercase__												=			["image"]
					lowercase__												=			["text"]







					def __init__(			self     :							int  ,*lowercase_     :							int  ,**lowercase_     :							List[str]						):
						requires_backends(self  ,['''vision''']						)
						super().__init__(*lowercase_  ,**lowercase_						)







					def 			__lowerCAmelCase					(			self     :							List[str]  ,lowercase_     :							"Image"						):
						return self.pre_processor(images=lowercase_  ,return_tensors='''pt'''						)







					def 			__lowerCAmelCase					(			self     :							List[Any]  ,lowercase_     :							Any						):
						return self.model.generate(**lowercase_						)







					def 			__lowerCAmelCase					(			self     :							Dict  ,lowercase_     :							Union[str, Any]						):
						return self.pre_processor.batch_decode(lowercase_  ,skip_special_tokens=lowercase_						)[0].strip()




