code: def find(self, df, mode, param):
      self.available_columns = available_columns = list(df.columns)
      original_variables = [
          col for col in df.columns if "_impact" in col
      ]
      self.impact_variables = [
          col for col in original_variables if not "_rescaled" in col
      ]
      self.y_variable = param["y_variable"]
      self.y_variable_predict = param["y_variable_predict"]
      self.param = param
      self.instance_id = self.random_string_generator()
      self.create_dir("data_storage")
      self.create_dir("data_storage/user")
      self.user_id = None
      self.df = df
  
      self.analytics = Analytics()
      self.analytics["ip"] = self.analytics.finding_ip()
      self.analytics["mac"] = self.analytics.finding_address()
      self.analytics["instance_id"] = self.instance_id
      self.analytics["time"] = str(datetime.datetime.now())
      self.analytics["total_columns"] = len(self.available_columns)
      self.analytics["total_rows"] = len(self.df)
      self.analytics["os"] = self.analytics.finding_system()
      self.analytics["model_name"] = self.param["model_name"]
      self.analytics["function"] = "explainx.ai"
      self.analytics["query"] = "all"
      self.analytics["finish_time"] = ""
  
      self.callback_input = [
          Input(f + "_slider", "value") for f in self.param["columns"]
      ]
      self.callback_input.append(
          Input("submit-button-state", "n_clicks")
      )
  
      # self.callback_input_prototype = [Input(f + '-slider', 'value') for f in self.param["columns"]]
      # self.callback_input_prototype.append(Input('btn-nclicks-1', 'n_clicks'))
  
      self.prototype_array = []
      for f in self.param["columns"]:
          self.prototype_array.append([f + "_slider", "value"])
      self.prototype_array.append(["btn-nclicks-1", "n_clicks"])
      try:
          user_id = pd.read_csv("data_storage/user/user_id.csv")
          user_id.drop_duplicates(["id"], keep="first", inplace=True)
          user_id = user_id["id"].iloc[0]
          self.user_id = user_id
      except Exception as e:
          # print("inside user track" )
          user_id_val = self.random_string_generator()
          user_id_csv = pd.DataFrame(data={"id": [user_id_val]})
          user_id_csv.to_csv(
              "data_storage/user/user_id.csv", index=False
          )
          self.user_id = user_id_val
  
      self.analytics["user_id"] = self.user_id
      self.analytics.insert_data()
      self.insights = insights(self.param)
      d = self.dash(df, mode)
      return True
  
imports: from imports import *
  from plotly_graphs import *
  from protodash import *
  from insights import *
  from plotly_css import *
  import pandasql
  import string
  import random
  import os
  from apps import global_explanation, local_explanation, distribution, feature_interaction, cohort
  from app import app
  from what_if import *
  from calculate_shap import *
  from analytics import Analytics
  from cohort_analysis import *
label_desc: Use image node_id 10 for calling the dashboard obj's underlying member method code with example usage: obj.find(df, mode, param) and returns: True