code: def config_update(self, cur_dir, model_name, config, config_filename):
      config = json.loads(config)
      all_models = exchange_format_to_original_format(config)
      model_dir = os.path.join(os.path.abspath(cur_dir), model_name)
      filtered_config = validate_data(all_models[model_name])
      text_proto = json2pbtxt(json.dumps(filtered_config))
      # backup user's config data first, when data corrupted by front-end, we still can recovery data
      # backup config filename: {original_name}_vdlbackup_{datetime}.pbtxt
      # backup config can only used to restore config.pbtxt
      if "vdlbackup" in config_filename:
          raise RuntimeError(
              "Backup config file is not permitted to update."
          )
      basename = os.path.splitext(config_filename)[0]
      shutil.copy(
          os.path.join(model_dir, config_filename),
          os.path.join(
              model_dir,
              "{}_vdlbackup_{}.pbtxt".format(
                  basename, datetime.datetime.now().isoformat()
              ),
          ),
      )
      with open(os.path.join(model_dir, config_filename), "w") as f:
          f.write(text_proto)
      return
  
imports: import datetime
  import json
  import os
  import re
  import shutil
  import socket
  import time
  from multiprocessing import Process
  from pathlib import Path
  import requests
  from .fastdeploy_client.client_app import create_gradio_client_app
  from .fastdeploy_client.client_app import create_gradio_client_app_en
  from .fastdeploy_lib import analyse_config
  from .fastdeploy_lib import check_process_zombie
  from .fastdeploy_lib import copy_config_file_to_default_config
  from .fastdeploy_lib import delete_files_for_process
  from .fastdeploy_lib import exchange_format_to_original_format
  from .fastdeploy_lib import generate_metric_table
  from .fastdeploy_lib import get_alive_fastdeploy_servers
  from .fastdeploy_lib import get_config_filenames_for_one_model
  from .fastdeploy_lib import get_config_for_one_model
  from .fastdeploy_lib import get_process_model_configuration
  from .fastdeploy_lib import get_process_output
  from .fastdeploy_lib import get_start_arguments
  from .fastdeploy_lib import json2pbtxt
  from .fastdeploy_lib import kill_process
  from .fastdeploy_lib import launch_process
  from .fastdeploy_lib import mark_pid_for_dead_process
  from .fastdeploy_lib import original_format_to_exchange_format
  from .fastdeploy_lib import validate_data
  from visualdl.server.api import gen_result
  from visualdl.server.api import result
  from visualdl.utils.dir import FASTDEPLOYSERVER_PATH
label_desc: Use image node_id 4 for calling the FastDeployServerApi obj's underlying member method code with example usage: obj.config_update(cur_dir, model_name, config, config_filename) without return types