code: def load_data(self):
      if self.client_type == "local":
          # Check if user dict file exists
          if os.path.isfile("user_cost.json"):
              # Load the user dict
              with open("user_cost.json", "r") as json_file:
                  self.user_dict = json.load(json_file)
          else:
              self.print_verbose("User Dictionary not found!")
              self.user_dict = {}
          self.print_verbose(f"user dict from local: {self.user_dict}")
      elif self.client_type == "hosted":
          # Load the user_dict from hosted db
          url = self.api_base + "/get_budget"
          headers = {"Content-Type": "application/json"}
          data = {"project_name": self.project_name}
          response = requests.post(url, headers=headers, json=data)
          response = response.json()
          if response["status"] == "error":
              self.user_dict = (
                  {}
              )  # assume this means the user dict hasn't been stored yet
          else:
              self.user_dict = response["data"]
  
imports: import os, json, time
  import litellm
  from litellm.utils import ModelResponse
  import requests, threading
  from typing import Optional, Union, Literal
label_desc: Use image node_id 3 for calling the BudgetManager obj's underlying member method code with example usage: obj.load_data() without return types