class_docstr: Chroma wrapper
class_docstr_tok: ["Chroma","wrapper"]
code: def get_collection(
      self, name, embedding_function=None, embedding_model=None
  ):
      if embedding_function is not None:
          return ChromaCollection(
              self.client.get_collection(
                  name, embedding_function=embedding_function
              ),
              embedding_function,
          )
      # Read embedding meta information from the collection
      collection = self.client.get_collection(name, lambda x: None)
      if embedding_model is None and collection.metadata:
          embedding_model = collection.metadata.get(
              "embedding_model", None
          )
          if embedding_model is None:
              # If embedding_model is not found in the metadata,
              # use `models/embedding-gecko-001` by default.
              logging.info(
                  "Embedding model is not specified in the metadata of "
                  "the collection %s. Using the default PaLM embedding model.",
                  name,
              )
              embedding_model = "models/embedding-gecko-001"
  
      if embedding_model == "local/all-mpnet-base-v2":
          base_dir = os.path.dirname(os.path.abspath(__file__))
          local_model_dir = os.path.join(
              base_dir, "models/all-mpnet-base-v2"
          )
          embedding_function = (
              embedding_functions.SentenceTransformerEmbeddingFunction(
                  model_name=local_model_dir
              )
          )
      else:
          try:
              palm = PaLM(
                  embed_model=embedding_model, find_models=False
              )
              # We cannot redefine embedding_function with def and
              # have to assign a lambda to it
              # pylint: disable-next=unnecessary-lambda-assignment
              embedding_function = lambda texts: [
                  palm.embed(text) for text in texts
              ]
          except:
              raise ChromaEmbeddingModelNotSupportedError(
                  f"Embedding model {embedding_model} specified by collection {name} "
                  "is not supported."
              )
  
      return ChromaCollection(
          self.client.get_collection(
              name, embedding_function=embedding_function
          ),
          embedding_function,
      )
  
imports: from enum import auto, Enum
  import os
  import string
  from absl import logging
  import chromadb
  from chromadb.config import Settings
  from chromadb.utils import embedding_functions
  from chromadb.api.models import Collection
  from chromadb.api.types import QueryResult
  from palm import PaLM
label_desc: Use image node_id 3 for calling the Chroma obj's underlying member method code with example usage: obj.get_collection(name, embedding_function, embedding_model) and returns: ChromaCollection, ChromaCollection