langchain icon indicating copy to clipboard operation
langchain copied to clipboard

Adding shared chromaDB client option

Open matthieu-perso opened this issue 1 year ago • 0 comments

This pull request addresses the need to share a single chromadb.Client instance across multiple instances of the Chroma class. By implementing a shared client, we can maintain consistency and reduce resource usage when multiple instances of the Chroma classes are created. This is especially relevant in a web app, where having multiple Chroma instances with a persist_directory leads to these clients not being synced.

This PR implements this option while keeping the rest of the architecture unchanged.

Changes:

  1. Add a client attribute to the Chroma class to store the shared chromadb.Client instance.
  2. Modify the from_documents method to accept an optional client parameter.
  3. Update the from_documents method to use the shared client if provided or create a new client if not provided.

Let me know if anything needs to be modified - thanks again for your work on this incredible repo

matthieu-perso avatar Apr 14 '23 09:04 matthieu-perso