rchroma provides a clean interface to ChromaDB, a modern vector database for storing and querying embeddings.
You can install rchroma from GitHub:
# install.packages("remotes")
::install_github("cynkra/rchroma") remotes
You also need a running ChromaDB instance. The easiest way to get started is using Docker:
docker pull chromadb/chroma
docker run -p 8000:8000 chromadb/chroma
See the ChromaDB documentation for other installation methods.
library(rchroma)
# Connect to ChromaDB
<- chroma_connect()
client
# Create a collection and add documents with embeddings
create_collection(client, "my_collection")
add_documents(
client,"my_collection",
documents = c("apple", "banana"),
ids = c("doc1", "doc2"),
embeddings = list(
c(1.0, 0.0), # apple
c(0.8, 0.2) # banana (similar to apple)
)
)
# Query similar documents using embeddings
query(
client,"my_collection",
query_embeddings = list(c(1.0, 0.0)), # should match apple best
n_results = 2
)