Skip to content

ChromaDB

Ecoact CDA team uses ChromaDB as its vector store.

Contrary to relational database, NoSQL systems can handle non tabular data. For a brief overview of the differences, see this.
One kind of NoSQL databases are vector stores. As its names implies, a vector store is used to store vectors with associated metadata.
It also provides the ability to efficiently apply similarity search on vectors and is therefore really useful when working with text embeddings, especially for semantic search applications using dense representations.

Setting up the chroma-db stack

All relevant information can be found in the docker-compose.chroma.yml file (here).

Production mode

Remember that you need to setup traefik when in production before launching this stack. Go read the traefik page if not already done.

To start the stack in production, you can make use of the Makefile provided in the repo (make help) to list available commands.

you will need to create a .env file and setting

  • chroma_username: the user authorized to connect to the database
  • chroma_password: the password associated with chroma_username
  • chroma_db_path: the folder in the host where the database will be stored

You can then safely launch

make chroma-launch