code: def launch_process(kwargs: dict):
      """
      Launch a fastdeploy server according to specified arguments.
      """
      cmd = ["fastdeployserver"]
      launch_env = os.environ.copy()
      start_args = {}
      for key, value in kwargs.items():
          if (
              key == "default_model_name"
          ):  # Used to fill client model_name automatically
              start_args[key] = value
              continue
          if (
              key == "server-name" or key == "ensemble-img"
          ):  # extra information
              start_args[key] = value
              continue
          if key == "gpus":
              if value:
                  launch_env["CUDA_VISIBLE_DEVICES"] = value
                  start_args[key] = value
              continue
          cmd.append("--{}".format(key))
          cmd.append("{}".format(value))
          start_args[key] = value
      if start_args["server-name"] and start_args[
          "server-name"
      ] in os.listdir(FASTDEPLOYSERVER_PATH):
          raise RuntimeError(
              "Failed to launch server，server name {} has been used，please write a different server name.".format(
                  start_args["server-name"]
              )
          )
      all_model_configs, all_model_versions = analyse_config(
          start_args["model-repository"]
      )
      model_repo_config = original_format_to_exchange_format(
          all_model_configs, all_model_versions
      )
      model_repo_config["ensemble-img"] = start_args["ensemble-img"]
      logfilename = "logfile-{}".format(get_random_string(8))
      while os.path.exists(
          os.path.join(FASTDEPLOYSERVER_PATH, logfilename)
      ):
          logfilename = "logfile-{}".format(get_random_string(8))
      try:
          p = Popen(
              cmd,
              stdout=open(
                  os.path.join(FASTDEPLOYSERVER_PATH, logfilename),
                  "w",
                  buffering=1,
              ),
              stderr=STDOUT,
              universal_newlines=True,
              env=launch_env,
          )
      except Exception:
          raise RuntimeError(
              "Failed to launch fastdeployserver，please check fastdeployserver is installed in environment."
          )
      server_name = (
          start_args["server-name"]
          if start_args["server-name"]
          else p.pid
      )
      with open(
          os.path.join(FASTDEPLOYSERVER_PATH, "{}".format(server_name)),
          "w",
      ) as f:
          # filename ${server_name} contain 4 lines:
          # line1 : the real log filename ${logfilename}
          # line2 : pid
          # line3 : launch arguments
          # line4 : model-repository configuration
          f.write(
              logfilename
              + "\n"
              + str(p.pid)
              + "\n"
              + json.dumps(start_args)
              + "\n"
              + json.dumps(model_repo_config)
          )
      return p
  
imports: import copy
  import json
  import os
  import random
  import re
  import signal
  import string
  from collections import defaultdict
  from subprocess import Popen
  from subprocess import STDOUT
  import google.protobuf.json_format
  import google.protobuf.text_format
  import psutil
  import requests
  from .proto.model_config_pb2 import ModelConfig
  from visualdl.utils.dir import FASTDEPLOYSERVER_PATH
label_desc: Use image node_id 12 for calling a global function with example usage: launch_process(kwargs) and returns: p