Skip to main content
Chroma is a vector database for building AI applications with embeddings.
In the notebook, we’ll demo the SelfQueryRetriever wrapped around a Chroma vector store.

Creating a Chroma vector store

First we’ll want to create a Chroma vector store and seed it with some data. We’ve created a small demo set of documents that contain summaries of movies. Note: The self-query retriever requires you to have lark installed (pip install lark). We also need the langchain-chroma package.
We want to use OpenAIEmbeddings so we have to get the OpenAI API Key.

Creating our self-querying retriever

Now we can instantiate our retriever. To do this we’ll need to provide some information upfront about the metadata fields that our documents support and a short description of the document contents.

Testing it out

And now we can try actually using our retriever!

Filter k

We can also use the self query retriever to specify k: the number of documents to fetch. We can do this by passing enable_limit=True to the constructor.