Skip to content

2.10.0

Choose a tag to compare

@Laurianti Laurianti released this 06 Oct 21:22
ff657da

Minor release of ChromaDotNet.Client and ChromaDotNet.Client.DependencyInjection: what an integration like Microsoft.Extensions.VectorData needs, done in the client.

dotnet add package ChromaDotNet.Client

Added

  • Collections by name: GetCollectionClient(name) follows the collection with that name, also after it is created again elsewhere. DeleteCollectionIfExistsAsync.
  • Updates and upserts: a null value or an empty list deletes the key, with the sparse vectors of its text. ChromaRecords.NullDocumentsDelete deletes the documents. WithDocumentCopyKey(key) copies each document into a metadata key, for a where filter on the whole text.
  • Filters: ChromaWhereOperator.Not, All and None, and ChromaWhereDocumentOperator.Not. ChromaWhereOperator also filters ids and documents.
  • BM25: ChromaCollectionSchema.WithBm25Index(sourceKey), FindBm25IndexAsync, and ChromaRank.HybridRrf for hybrid search on Chroma Cloud.
  • Also: ChromaQuery.Offset and ExpectedSpace, ChromaMetadataConvert, ChromaCloudQuotas.

Changed

  • In and NotIn without values no longer throw an ArgumentException: they are None and All.
  • GetOrCreateCollectionAsync throws when the collection exists with another space.
  • A query whose ids include some without a record leaves them out, as Chroma Cloud does, instead of failing on Chroma 1.x.

Tested

The whole suite on Chroma 1.5.9, 1.0.0, 0.6.3, 0.4.23 and Chroma Cloud, with the .NET 8 and .NET Standard 2.0 builds. The CI runs it against Chroma 0.4.10 to latest. See the compatibility table.