class_docstr: Cache class for caching queries. It is used to cache queries
  to save time and money.
  
  Args:
      filename (str): filename to store the cache.
code: def __init__(self, filename="cache_db_0.9", abs_path=None):
      # Define cache directory and create directory if it does not exist
      if abs_path:
          cache_dir = abs_path
      else:
          try:
              cache_dir = os.path.join(find_project_root(), "cache")
          except ValueError:
              cache_dir = os.path.join(os.getcwd(), "cache")
  
      os.makedirs(
          cache_dir, mode=DEFAULT_FILE_PERMISSIONS, exist_ok=True
      )
  
      self.filepath = os.path.join(cache_dir, f"{filename}.db")
      self.connection = duckdb.connect(self.filepath)
      self.connection.execute(
          "CREATE TABLE IF NOT EXISTS cache (key STRING, value STRING)"
      )
  
file_path: pandas-ai/pandasai/helpers/cache.py
imports: import os
  import glob
  from typing import Any
  import duckdb
  from .path import find_project_root
  from ..constants import DEFAULT_FILE_PERMISSIONS, CACHE_TOKEN
label_desc: Use image node_id 1 to create a new Cache object  with example: obj = Cache(filename, abs_path)