code: def update_pb(
      self, version=__version__, md5_code=md5(str(DESCRIPTOR))
  ):
      payload = {
          "data": {
              "version": version,
              "md5": md5_code,
              "product": self.product,
          }
      }
      url = "https://paddlepaddle.org.cn/paddlehub/stat?from=vdl"
      try:
          r = requests.post(url=url, json=payload)
          if r.json().get("update_flag", 0) == 1:
              pb_bin = r.json().get("pb_bin")
              with open(
                  "/visualdl/proto/record_pb2.py", mode="wb"
              ) as fp:
                  fp.write(pb_bin)
                  print("Update pb file successfully.")
      except Exception:
          pass
  
file_path: VisualDL/visualdl/utils/update_util.py
imports: import threading
  import hashlib
  import requests
  from visualdl import __version__
  from visualdl.proto.record_pb2 import DESCRIPTOR
label_desc: Use image node_id 2 for calling the PbUpdater obj's underlying member method code with example usage: obj.update_pb(version, md5_code) without return types