code: def __init__(
      self,
      api_type: str,
      model: Callable,
      input_types: Optional[Union[List, str]] = None,
      output_types: Optional[Union[List, str]] = None,
      preprocess_fn: Callable = None,
      postprocess_fn: Callable = None,
      preprocess_conf: Optional[dict] = None,
      postprocess_conf: Optional[dict] = None,
      **kwargs,
  ):
      super(GradioApp, self).__init__(
          api_type, model, preprocess_fn, postprocess_fn, **kwargs
      )
      if not preprocess_conf:
          preprocess_conf = {}
      if not postprocess_conf:
          postprocess_conf = {}
  
      self.title = kwargs.get("title", "Chitra Server")
      self.desc = kwargs.get(
          "description",
          f"<a href={documentation_url}>Docs</a> 🔗",
      )
      self.input_types = input_types
      self.output_types = output_types
      self.api_type_func = {}
      self.preprocess_conf = preprocess_conf
      self.postprocess_conf = postprocess_conf
      self.setup(**kwargs)
  
file_path: chitra/chitra/serve/app.py
imports: from typing import Callable, List, Optional, Union
  import gradio
  import numpy
  from chitra.__about__ import documentation_url
  from chitra.serve import constants
  from chitra.serve.base import ModelServer
label_desc: Use image node_id 1 to create a new GradioApp object from inherited base classes: ModelServer with example: obj = GradioApp(api_type, model, input_types, output_types, preprocess_fn, postprocess_fn, preprocess_conf, postprocess_conf)