Skip to content

Commit

Permalink
[RELEASE] 0.5.11 (#2869)
Browse files Browse the repository at this point in the history
Release 0.5.11
  • Loading branch information
itaismith authored Sep 26, 2024
1 parent bb00e37 commit 63a2ed4
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 5 deletions.
2 changes: 1 addition & 1 deletion chromadb/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

__settings = Settings()

__version__ = "0.5.10"
__version__ = "0.5.11"


# Workaround to deal with Colab's old sqlite3 version
Expand Down
7 changes: 3 additions & 4 deletions docs/docs.trychroma.com/pages/deployment/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,15 @@ We will aim to provide:

## Migration Log

### v0.5.10
### v0.5.11

The results returned by `collection.get()` is now ordered by internal ids. Whereas previously, the results were ordered by user provided ids, although this behavior was not explicitly documented. We would like to make the change because using user provided ids may not be ideal for performance in hosted Chroma, and we hope to propagate the change to local Chroma for consistency of behavior. In general, newer documents in Chroma has larger internal ids.

A subsequent change in behavior is `limit` and `offset`, which depends on the order of returned results. For example, if you have a collection named `coll` of documents with ids `["3", "2", "1", "0"]` inserted in this order, then previously `coll.get(limit=2, offset=2)["ids"]` gives you `["2", "3"]`, while currently this will give you `["1", "0"]`.

We have also modified the behavior of `Client.get_or_create`. Previously, if a collection already existed and the `metadata` argument was provided, the existing collection's metadata would be overwritten with the new values. This has now changed. If the collection already exists, get_or_create will simply return the existing collection with the specified name, and any additional arguments—including `metadata`—will be ignored.

The embeddings returned in `collection.get()`, `collection.query()`, and `collection.peek()` are now represented by a 2-d numpy array instead of a Python list. We made this change because we are moving towards increasing performance on Local Chroma by internally representing embeddings with numpy arrays. You can still provide either a Python list or numpy array when submitting embeddings in a request. If your request returns multiple embeddings, like in `.query()`, it will be a python list of 2-d numpy arrays.
We have also modified the behavior of `client.get_or_create`. Previously, if a collection already existed and the `metadata` argument was provided, the existing collection's metadata would be overwritten with the new values. This has now changed. If the collection already exists, get_or_create will simply return the existing collection with the specified name, and any additional arguments—including `metadata`—will be ignored.

Finally, the embeddings returned from `collection.get()`, `collection.query()`, and `collection.peek()` are now represented as 2-dimensional NumPy arrays instead of Python lists. When adding embeddings, you can still use either a Python list or a NumPy array. If your request returns multiple embeddings, the result will be a Python list containing 2-dimensional NumPy arrays. This change is part of our effort to enhance performance in Local Chroma by using NumPy arrays for internal representation of embeddings.

### v0.5.6

Expand Down

0 comments on commit 63a2ed4

Please sign in to comment.