code: from llama_index.core.tools import FunctionTool
  import os
  
  note_file = os.path.join("data", "notes.txt")
  
  
  def save_note(note):
      if not os.path.exists(note_file):
          open(note_file, "w")
  
      with open(note_file, "a") as f:
          f.writelines([note + "\n"])
  
      return "note saved"
  
  
  note_engine = FunctionTool.from_defaults(
      fn=save_note,
      name="note_saver",
      description="this tool can save a text based note to a file for the user",
  )
apis: llama_index.core.tools.FunctionTool.from_defaults
extract_api: [((71, 104), 'os.path.join', 'os.path.join', (['"""data"""', '"""notes.txt"""'], {}), "('data', 'notes.txt')\n", (83, 104), False, 'import os\n'), ((309, 448), 'llama_index.core.tools.FunctionTool.from_defaults', 'FunctionTool.from_defaults', ([], {'fn': 'save_note', 'name': '"""note_saver"""', 'description': '"""this tool can save a text based note to a file for the user"""'}), "(fn=save_note, name='note_saver', description=\n    'this tool can save a text based note to a file for the user')\n", (335, 448), False, 'from llama_index.core.tools import FunctionTool\n'), ((139, 164), 'os.path.exists', 'os.path.exists', (['note_file'], {}), '(note_file)\n', (153, 164), False, 'import os\n')]