code: def save(self):
      savedata = {
          "unsaved": self.unsaved,
          "fixed_prompt": self.fixed_prompt.get_dict(),
          "participants": self.participants,
          "keep_fixed_prompt": self.keep_fixed_prompt,
          "history": [node.get_dict() for node in self.history],
          "temperature": generator.settings.temperature,
          "top_p": generator.settings.top_p,
          "min_p": generator.settings.min_p,
          "top_k": generator.settings.top_k,
          "typical": generator.settings.typical,
          "break_on_newline": self.break_on_newline,
          "max_response_tokens": self.max_response_tokens,
          "chunk_size": self.chunk_size,
          "token_repetition_penalty_max": generator.settings.token_repetition_penalty_max,
          "token_repetition_penalty_sustain": generator.settings.token_repetition_penalty_sustain,
          "token_repetition_penalty_decay": generator.settings.token_repetition_penalty_decay,
      }
  
      json_object = json.dumps(savedata, indent=4)
      with open(self.filename, "w") as outfile:
          outfile.write(json_object)
  
      # Remember active session
  
      last_session_file = _sessions_dir("_last_session")
      with open(last_session_file, "w") as f:
          f.write(self.filename)
  
imports: from model import ExLlama, ExLlamaCache, ExLlamaConfig
  from tokenizer import ExLlamaTokenizer
  from generator import ExLlamaGenerator
  import time
  import torch
  import os
  import json
  import uuid
label_desc: Use image node_id 2 for calling the Session obj's underlying member method code with example usage: obj.save() without return types