Releases: neon-sunset/Pinecone.NET
3.0.0
Changes
β¨ New Features
- This library now integrates the logging thanks to #126 by @maumar
GetIndex
now returnsIndex<RestTransport>
as a default. After analysis in light of current Pinecone's HTTP/2 stack configuration, it appears to be the better default choice. You can find detailed explanation here: https://github.com/neon-sunset/Pinecone.NET?tab=readme-ov-file#rest-vs-grpc-transport- (.NET 6+) In addition to previously added automatic batching of
Fetch
andUpsert
operations,Delete
is now batched too which is necessary for large deletes as Pinecone limits the request size to 1000 IDs at a time. Much likeFetch
andUpsert
, it is also parallelized. - (.NET 6+) Existing parallelized batching has been enhanced with automatic batch size selection according to vector size to ensure the requests are kept under Pinecone's 2MiB limit. The default parallelism was tuned to reduce heap size impact while retaining existing throughput.
- (.NET 6+) Rich aggregated exception types have been added to parallelized batched operations to allow recovery from partial failure (i.e. where only some of the batches have failed) that preserve successfully retrieved/processed data. Please find the usage example here: https://github.com/neon-sunset/Pinecone.NET?tab=readme-ov-file#advanced
- This update also adds
List
,ListAll
andListPaginated
operations for the recently introducedlist
API call to read or iterate through vector IDs in the PineconeIndex<T>
using specified arguments
π Bug Fixes
- fix: add missed trimmer annotation (f82b555)
π Enhancements
- The library was updated to remain in sync with latest API and official client changes by Pinecone
- The library has switched to using
ReadOnlyMemory<float>
as the abstraction for vector values in order to allow Semantic Kernel and other users reliant onROM<float>
to pass them directly instead of allocating large arrays GrpcTransport
is now configured to take advantage of client-side load balancing, which improves throughput and reduces latency under high concurrency scenarios. The users are still encouraged to useRestTransport
instead, as noted above.- refactor: improve UX of the constructor overload that accepts an HttpClient instance (beb28b7)
π¦ Dependencies
- chore(deps): bump Google.Protobuf from 3.27.1 to 3.27.2 in the nuget group (PR #121) by @dependabot (bot)
- chore(deps): bump the nuget group with 3 updates (PR #123) by @dependabot (bot)
- chore(deps): bump the nuget group with 3 updates (PR #125) by @dependabot (bot)
π§° Misc
- feat: add a convenience method for constructing MetadataValue (aa68e65)
- Disable pod-based index tests until the test environment is switched to a paid tier (c64d63d)
- test: disable remaining pod-based index tests (e384265)
- Further modernization effort (d125d26)
- Further refinement (56de307)
- test: make sure the vector values are compared by sequence (c11c916)
- perf!: switch to RestTransport as the default transport type for GetIndex (e00bfe4)
- test: see if bigger delay fixes the error (c7cc61a)
- test: handle the condition where the namespace is not present in the namespace list if there are no more vectors associated with it (feabe70)
- feat: align impl. with API changes, document collection types, make internal types non-record - there is no need to spend extra IL/AOT size on that (8276c3c)
- test: bump up the delay interval back - too flakey (8cd8b48)
- docs: update examples (edfb41d)
- misc: error message whitespace (7aa2b07)
- docs: add parallel failure recovery example, nudge users to cache client and index, and write detailed guidance on transport selection (e104210)
- docs: formatting (ac88382)
Full Changelog: 2.1.1...3.0.0
Published with dotnet-releaser
2.1.1
Changes
β¨ New Features
π¦ Dependencies
- chore(deps): bump Google.Protobuf from 3.27.0 to 3.27.1 in the nuget group (PR #115) by @dependabot (bot)
Full Changelog: 2.1.0...2.1.1
Published with dotnet-releaser
2.1.0
Changes
π Enhancements
- feat: automatically parallelize upsert and fetch operations (0fd32b6)
- refactor: split serializer contexts to avoid rooting RestTransport (and its deps) and negatively impacting AOT size when it's not referenced (e460772)
π¦ Dependencies
- chore(deps): bump the nuget group with 7 updates (PR #114) by @dependabot (bot)
π§° Misc
- docs: update readme (98bf599)
Full Changelog: 2.0.0...2.1.0
Published with dotnet-releaser
2.0.0
Changes
This release includes breaking changes to accommodate API changes on Pinecone's side.
It does so to introduce support for serverless indexes thanks to @maumar contribution (#108)
Generally, the changes required to make the projects updated to 2.0 build and work should be minimal and come down to replacing .CreateIndex
with .CreateServerlessIndex
or .CreatePodBasedIndex
.
There are also changes to how index details are exposed by Index<TTransport>
, as they are now flattened into Index<TTransport>
object, following Pinecone.
β¨ New Features
π¦ Dependencies
- chore(deps): bump Grpc.Tools from 2.62.0 to 2.63.0 (PR #106) by @dependabot (bot)
- chore(deps): bump Google.Protobuf from 3.26.0 to 3.26.1 (PR #103) by @dependabot (bot)
- chore(deps): bump Grpc.Net.Client from 2.61.0 to 2.62.0 (PR #105) by @dependabot (bot)
- chore(deps): bump Grpc.Net.ClientFactory from 2.61.0 to 2.62.0 (PR #110) by @dependabot (bot)
- chore(deps): bump the nuget group across 1 directory with 3 updates (PR #111) by @dependabot (bot)
π§° Misc
Full Changelog: 1.4.0...2.0.0
Published with dotnet-releaser
1.4.0
Changes
β¨ New Features
- Add F# sample (PR #82) by @kant2002
- [API] Add new
IndexState
enum variants - [API] Add new
CollectionDetails
properties - [API] Add Port to
IndexStatus
π Bug Fixes
- [API] Breaking: Move
MetadataConfig
fromIndex<T>
toIndexDetails
which is its correct location - [API] Breaking: change
Size
inCollectionDetails
tolong
since it's a collection size in bytes
π§° Misc
- [gRPC] Optimize private fields access for float vector serialization
- [Client] Breaking: Drop
IndexName
andCollectionName
value objects in favor of plain string - [Client] URL-encode index and collection names before constructing requests to Pinecone
- [Docs] Update README and description
- [Docs] Simplify example and drop Azure OpenAI dependency which is not necessary for demonstrating library usage
- [Chore] Drop custom enum converters in favor of new
JsonStringEnumConverter<T>
which is AOT-compatible too
π¦ Dependencies
- [Deps] Remove RangeExtensions reference because it was used only in one place
- chore(deps): bump PolySharp from 1.13.2 to 1.14.0 (PR #83) by @dependabot (bot)
- chore(deps): bump Grpc.Tools from 2.59.0 to 2.60.0 (PR #84) by @dependabot (bot)
Full Changelog: 1.3.2...1.4.0
Published with dotnet-releaser
1.3.2
Changes
This release addresses an issue where working with vector metadata may be counter-intuitive. The following code is now legal:
var vector = new Vector
{
Id = "new-vector",
Values = await EmbedText("Hello, World!"),
Metadata = new()
{
// Previously, this would either require .Select(v => (MetadataValue)v).ToArray()
// or new MetadataValue[] { "one", "two", ...}
["strings"] = new[] { "one", "two", "three" }
}
};
// Also works for filters
var years = new MetadataMap
{
["year"] = new MetadataMap { ["$in"] = new[] { 1984, 2007 } }
};
var matches = await index.Query(values, topK: 5, filter: years);
π¦ Dependencies
- chore(deps): bump Google.Protobuf from 3.25.0 to 3.25.1 (PR #78) by @dependabot (bot)
π§° Misc
- feat+chore: improve metadata UX, specify ConfigureAwait(false) on all async calls and update project to C# 12 (PR #81)
Full Changelog: 1.3.1...1.3.2
Published with dotnet-releaser
1.3.1
Changes
This version tracks the release of non-RC .NET 8 System.Text.Json
and System.Net.Http.Json
dependencies required to make this library work nicely with AOT and source generation. No more preview
refs in the dependency treeπ
π¦ Dependencies
- chore(deps): bump CommunityToolkit.Diagnostics from 8.2.1 to 8.2.2 (PR #70) by @dependabot (bot)
- chore(deps): bump Google.Protobuf from 3.24.4 to 3.25.0 (PR #71) by @dependabot (bot)
- chore(deps): bump Grpc.Net.ClientFactory from 2.58.0 to 2.59.0 (PR #74) by @dependabot (bot)
- chore(deps): bump Grpc.Net.Client from 2.58.0 to 2.59.0 (PR #75) by @dependabot (bot)
- chore(deps): bump System.Net.Http.Json from 8.0.0-rc.2.23479.6 to 8.0.0 (PR #76) by @dependabot (bot)
- chore(deps): bump System.Text.Json from 8.0.0-rc.2.23479.6 to 8.0.0 (PR #77) by @dependabot (bot)
- etc.
π§° Misc
- deps: track pinecone-client commits (50db315)
Full Changelog: 1.3.0...1.3.1
Published with dotnet-releaser
1.3.0
Changes
β¨ New Features
π¦ Dependencies
- chore(deps): bump System.Text.Json from 8.0.0-preview.6.23329.7 to 8.0.0-preview.7.23375.6 (PR #42) by @dependabot (bot)
- chore(deps): bump Google.Protobuf from 3.23.4 to 3.24.0 (PR #43) by @dependabot (bot)
- chore(deps): bump Grpc.Tools from 2.56.2 to 2.57.0 (PR #45) by @dependabot (bot)
Full Changelog: 1.2.2...1.3.0
Published with dotnet-releaser
1.2.2
Changes
π Bug Fixes
π¦ Dependencies
- chore(deps): bump System.Text.Json from 8.0.0-preview.5.23280.8 to 8.0.0-preview.6.23329.7 (PR #36) by @dependabot (bot)
- chore(deps): bump Grpc.Tools from 2.56.0 to 2.56.2 (PR #37) by @dependabot (bot)
- chore(deps): bump Azure.AI.OpenAI from 1.0.0-beta.5 to 1.0.0-beta.6 (PR #39) by @dependabot (bot)
Full Changelog: 1.2.1...1.2.2
Published with dotnet-releaser
Assets 2
1.2.1
Changes
π Bug Fixes
- fix: explicitly mark as AOT compatible (enables warnings) (7aabb73)
π¦ Dependencies
- chore(deps): bump PolySharp from 1.13.1 to 1.13.2 (PR #12) by @dependabot (bot)
- chore(deps): bump System.Text.Json to 8.0.0-preview.5.23280.8 (PR #22) by @dependabot (bot)]
- chore(deps): bump Grpc.Tools to 2.56.0 (PR #30) by @dependabot (bot)
- chore(deps): bump Grpc.Net.Client to 2.55.0 (PR #33) by @dependabot (bot)
- chore(deps): bump Grpc.Net.ClientFactory from to 2.55.0 (PR #32) by @dependabot (bot)
- chore(deps): bump CommunityToolkit.Diagnostics from 8.2.0 to 8.2.1 (PR #34) by @dependabot (bot)
- chore(deps): bump Google.Protobuf to 3.23.4 (PR #35) by @dependabot (bot)
π§° Misc
- chore: update readme and description
- docs: do not mention specifying transport type on .GetIndex to avoid confusion (b58b5c8)
- chore: update example (1225f14)
- chore(deps): make PolySharp and STJ 8 preview net7.0 only (54b6d18)
Full Changelog: 1.2.0...1.2.1
Published with dotnet-releaser