Skip to content

v0.3.5

Choose a tag to compare

@Laurianti Laurianti released this 06 Oct 02:31
· 29 commits to main since this release

Patch release of ChromaDotNet.VectorData: an upsert replaces a record that exists, within the limits of Chroma Cloud, and filters compare dates as C# does. Built on ChromaDotNet.Client 2.9.1.

dotnet add package ChromaDotNet.VectorData

Fixes

  • Upsert replaces a record that exists: Chroma merges the metadata of an upsert into the record that exists. Before, a value that was now null, or an empty list, kept its old value, and the filters, like the namespaces of the TextSearchStore of Semantic Kernel, still found it. Now the provider deletes the keys that the record has stored and that are now null or empty, the old document of a null text, and the BM25 vectors of a text that is now null. To know which keys a record has, it reads the record first, only when the upsert has null values.
  • Limits of Chroma Cloud: a new record gets no null keys, which Chroma Cloud counts in its 32 keys per record, and a BM25 key is deleted only where the record has it. A text of the property stored as the document longer than 8,182 bytes, the limit of a metadata value, is stored in the document only, up to the 16,384 bytes of a document: Contains finds it, == does not. The BM25 index of that property takes its text from the document.
  • Dates: a DateTimeOffset is stored in UTC, and comes back as the same instant with offset zero. ==, != and Contains compare a DateTimeOffset as an instant and a DateTime by its ticks, whatever its kind. A DateTimeOffset stored by an earlier version with another offset is found with that offset.
  • Numbers: with ChromaDotNet.Client 2.9.1 a double with an integer value is written as a double, so that D < 2.2 finds 2.0 and Ds.Contains(1.0) finds [1.0, 2.5].
  • README: the limits of Chroma Cloud, the dates, and that CreateBm25Indexes makes creating a collection fail on a single Chroma server.

Tested

The Microsoft.Extensions.VectorData conformance tests pass against Chroma 1.5.0, 1.5.9 and the latest release, with new tests for the upsert, the limits of Chroma Cloud and the dates, and on Chroma Cloud the upsert, metadata, document, hybrid search and TextSearchStore tests pass.

Package: ChromaDotNet.VectorData 0.3.5