





"""simple docstring"""




import requests
def 					_A	(		SCREAMING_SNAKE_CASE					:       str	,	SCREAMING_SNAKE_CASE					:       str						):





  """simple docstring"""



  a__     : Optional[int]  ={"Content-Type": "application/json"}
  a__     : Optional[int]  =requests.post(_lowercase	,	json={"text": message_body}	,	headers=_lowercase						)
  if response.status_code != 200:
    a__     : str  =(
        "Request to slack returned an error "
        f'''{response.status_code}, the response is:\n{response.text}'''
    )
    raise ValueError(_lowercase						)


if __name__ == "__main__":
     # Set the slack url to the one provided by Slack when you create the webhook at
     # https://my.slack.com/services/new/incoming-webhook/
     send_slack_message("""<YOUR MESSAGE BODY>""", """<SLACK CHANNEL URL>""")













import copy
import os
from typing import Union

from ...configuration_utils import PretrainedConfig
from ...models.auto.modeling_auto import MODEL_FOR_CAUSAL_LM_MAPPING_NAMES
from ...utils import logging
from ..auto import CONFIG_MAPPING


UpperCAmelCase     :     List[Any]							=	logging.get_logger(__name__)

UpperCAmelCase     :     Tuple							=	{
    """Salesforce/instruct-blip-flan-t5""": """https://huggingface.co/Salesforce/instruct-blip-flan-t5/resolve/main/config.json""",
}







class     __lowerCAmelCase	(   UpperCamelCase__):
      _lowercase    : Dict            =      """instructblip_vision_model"""







      def __init__(   self		,				lowerCAmelCase__=1_4_0_8		,				lowerCAmelCase__=6_1_4_4		,				lowerCAmelCase__=3_9		,				lowerCAmelCase__=1_6		,				lowerCAmelCase__=2_2_4		,				lowerCAmelCase__=1_4		,				lowerCAmelCase__="gelu"		,				lowerCAmelCase__=1E-6		,				lowerCAmelCase__=0.0		,				lowerCAmelCase__=1E-10		,				lowerCAmelCase__=True		,				**lowerCAmelCase__		,				)       ->						Optional[Any]:



        '''simple docstring'''




        super().__init__(**lowerCAmelCase__							)

        a__     : Tuple  =hidden_size
        a__     : Any  =intermediate_size
        a__     : Union[str, Any]  =num_hidden_layers
        a__     : Optional[Any]  =num_attention_heads
        a__     : List[str]  =patch_size
        a__     : int  =image_size
        a__     : Tuple  =initializer_range
        a__     : Any  =attention_dropout
        a__     : List[Any]  =layer_norm_eps
        a__     : Optional[Any]  =hidden_act
        a__     : Optional[Any]  =qkv_bias







      @classmethod
      def        _lowercase  (   cls		,				lowerCAmelCase__		,				**lowerCAmelCase__							)       ->						"PretrainedConfig":



        '''simple docstring'''




        cls._set_token_in_kwargs(lowerCAmelCase__							)

        a__ ,							a__     : Optional[Any]  =cls.get_config_dict(lowerCAmelCase__		,				**lowerCAmelCase__							)

        # get the vision config dict if we are loading from InstructBlipConfig
        if config_dict.get("model_type"							) == "instructblip":
          a__     : Any  =config_dict["vision_config"]

        if "model_type" in config_dict and hasattr(cls		,				"model_type"							) and config_dict["model_type"] != cls.model_type:
          logger.warning(
              F'''You are using a model of type {config_dict["model_type"]} to instantiate a model of type '''
              F'''{cls.model_type}. This is not supported for all configurations of models and can yield errors.'''							)

        return cls.from_dict(lowerCAmelCase__		,				**lowerCAmelCase__							)







class     __lowerCAmelCase	(   UpperCamelCase__):
      _lowercase    : Dict            =      """instructblip_qformer"""







      def __init__(   self		,				lowerCAmelCase__=3_0_5_2_2		,				lowerCAmelCase__=7_6_8		,				lowerCAmelCase__=1_2		,				lowerCAmelCase__=1_2		,				lowerCAmelCase__=3_0_7_2		,				lowerCAmelCase__="gelu"		,				lowerCAmelCase__=0.1		,				lowerCAmelCase__=0.1		,				lowerCAmelCase__=5_1_2		,				lowerCAmelCase__=0.02		,				lowerCAmelCase__=1E-12		,				lowerCAmelCase__=0		,				lowerCAmelCase__="absolute"		,				lowerCAmelCase__=2		,				lowerCAmelCase__=1_4_0_8		,				**lowerCAmelCase__		,				)       ->						Dict:



        '''simple docstring'''




        super().__init__(pad_token_id=lowerCAmelCase__		,				**lowerCAmelCase__							)

        a__     : Optional[int]  =vocab_size
        a__     : Optional[Any]  =hidden_size
        a__     : str  =num_hidden_layers
        a__     : Optional[int]  =num_attention_heads
        a__     : Dict  =hidden_act
        a__     : Optional[int]  =intermediate_size
        a__     : Union[str, Any]  =hidden_dropout_prob
        a__     : Optional[int]  =attention_probs_dropout_prob
        a__     : List[Any]  =max_position_embeddings
        a__     : Union[str, Any]  =initializer_range
        a__     : Optional[int]  =layer_norm_eps
        a__     : int  =position_embedding_type
        a__     : int  =cross_attention_frequency
        a__     : Tuple  =encoder_hidden_size







      @classmethod
      def        _lowercase  (   cls		,				lowerCAmelCase__		,				**lowerCAmelCase__							)       ->						"PretrainedConfig":



        '''simple docstring'''




        cls._set_token_in_kwargs(lowerCAmelCase__							)

        a__ ,							a__     : str  =cls.get_config_dict(lowerCAmelCase__		,				**lowerCAmelCase__							)

        # get the qformer config dict if we are loading from InstructBlipConfig
        if config_dict.get("model_type"							) == "instructblip":
          a__     : Optional[int]  =config_dict["qformer_config"]

        if "model_type" in config_dict and hasattr(cls		,				"model_type"							) and config_dict["model_type"] != cls.model_type:
          logger.warning(
              F'''You are using a model of type {config_dict["model_type"]} to instantiate a model of type '''
              F'''{cls.model_type}. This is not supported for all configurations of models and can yield errors.'''							)

        return cls.from_dict(lowerCAmelCase__		,				**lowerCAmelCase__							)







class     __lowerCAmelCase	(   UpperCamelCase__):
      _lowercase    : Dict            =      """instructblip"""
      _lowercase    : List[Any]            =      True







      def __init__(   self		,				lowerCAmelCase__=None		,				lowerCAmelCase__=None		,				lowerCAmelCase__=None		,				lowerCAmelCase__=3_2		,				**lowerCAmelCase__							)       ->						str:



        '''simple docstring'''




        super().__init__(**lowerCAmelCase__							)

        if vision_config is None:
          a__     : List[Any]  ={}
          logger.info("vision_config is None. initializing the InstructBlipVisionConfig with default values."							)

        if qformer_config is None:
          a__     : Tuple  ={}
          logger.info("qformer_config is None. Initializing the InstructBlipQFormerConfig with default values."							)

        if text_config is None:
          a__     : Dict  ={}
          logger.info("text_config is None. Initializing the text config with default values (`OPTConfig`)."							)

        a__     : Dict  =InstructBlipVisionConfig(**lowerCAmelCase__							)
        a__     : Union[str, Any]  =InstructBlipQFormerConfig(**lowerCAmelCase__							)
        a__     : Tuple  =text_config["model_type"] if "model_type" in text_config else "opt"
        a__     : List[str]  =CONFIG_MAPPING[text_model_type](**lowerCAmelCase__							)

        a__     : Union[str, Any]  =self.text_config.tie_word_embeddings
        a__     : Optional[Any]  =self.text_config.is_encoder_decoder

        a__     : str  =num_query_tokens
        a__     : List[Any]  =self.vision_config.hidden_size
        a__     : str  =self.text_config.model_type in MODEL_FOR_CAUSAL_LM_MAPPING_NAMES
        a__     : List[Any]  =1.0
        a__     : List[str]  =0.02







      @classmethod
      def        _lowercase  (   cls		,				lowerCAmelCase__		,				lowerCAmelCase__		,				lowerCAmelCase__		,				**lowerCAmelCase__		,				)       ->						int:



        '''simple docstring'''




        return cls(
            vision_config=vision_config.to_dict()		,				qformer_config=qformer_config.to_dict()		,				text_config=text_config.to_dict()		,				**lowerCAmelCase__		,				)







      def        _lowercase  (   self							)       ->						Union[str, Any]:



        '''simple docstring'''




        a__     : int  =copy.deepcopy(self.__dict__							)
        a__     : int  =self.vision_config.to_dict()
        a__     : str  =self.qformer_config.to_dict()
        a__     : str  =self.text_config.to_dict()
        a__     : List[str]  =self.__class__.model_type
        return output






