class_docstr: Provides memory storage and retrieval for a teachable agent, using a vector database.
  Each DB entry (called a memo) is a pair of strings: an input text and an output text.
  The input text might be a question, or a task to perform.
  The output text might be an answer to the question, or advice on how to perform the task.
  Vector embeddings are currently supplied by Chroma's default Sentence Transformers.
class_docstr_tok: ["Provides","memory","storage","and","retrieval","for","a","teachable","agent",",","using","a","vector","database",".","Each","DB","entry","(","called","a","memo",")","is","a","pair","of","strings",":","an","input","text","and","an","output","text",".","The","input","text","might","be","a","question",",","or","a","task","to","perform",".","The","output","text","might","be","an","answer","to","the","question",",","or","advice","on","how","to","perform","the","task",".","Vector","embeddings","are","currently","supplied","by","Chroma","'s","default","Sentence","Transformers","."]
docstr: Args:
      - verbosity (Optional, int): 1 to print memory operations, 0 to omit them. 3+ to print memo lists.
      - path_to_db_dir (Optional, str): path to the directory where the DB is stored.
docstr_tok: ["Args",":","-","verbosity","(","Optional",",","int",")",":","1","to","print","memory","operations",",","0","to","omit","them",".","3+","to","print","memo","lists",".","-","path_to_db_dir","(","Optional",",","str",")",":","path","to","the","directory","where","the","DB","is","stored","."]
code: def __init__(self, verbosity, reset, path_to_db_dir):
      """
      Args:
          - verbosity (Optional, int): 1 to print memory operations, 0 to omit them. 3+ to print memo lists.
          - path_to_db_dir (Optional, str): path to the directory where the DB is stored.
      """
      self.verbosity = verbosity
      self.path_to_db_dir = path_to_db_dir
  
      # Load or create the vector DB on disk.
      settings = Settings(
          anonymized_telemetry=False,
          allow_reset=True,
          is_persistent=True,
          persist_directory=path_to_db_dir,
      )
      self.db_client = chromadb.Client(settings)
      self.vec_db = self.db_client.create_collection(
          "memos", get_or_create=True
      )  # The collection is the DB.
  
      # Load or create the associated memo dict on disk.
      self.path_to_dict = os.path.join(
          path_to_db_dir, "uid_text_dict.pkl"
      )
      self.uid_text_dict = {}
      self.last_memo_id = 0
      if (not reset) and os.path.exists(self.path_to_dict):
          print(colored("\nLOADING MEMORY FROM DISK", "light_green"))
          print(
              colored(
                  "    Location = {}".format(self.path_to_dict),
                  "light_green",
              )
          )
          with open(self.path_to_dict, "rb") as f:
              self.uid_text_dict = pickle.load(f)
              self.last_memo_id = len(self.uid_text_dict)
              if self.verbosity >= 3:
                  self.list_memos()
  
      # Clear the DB if requested.
      if reset:
          self.reset_db()
  
imports: import os
  from autogen.agentchat.assistant_agent import ConversableAgent
  from autogen.agentchat.contrib.capabilities.agent_capability import AgentCapability
  from autogen.agentchat.contrib.text_analyzer_agent import TextAnalyzerAgent
  from typing import Dict, Optional, Union, List, Tuple, Any
  import chromadb
  from chromadb.config import Settings
  import pickle
label_desc: Use image node_id 1 to create a new MemoStore object  with example: obj = MemoStore(verbosity, reset, path_to_db_dir)