Releases: Build5Nines/SharpVector
Releases · Build5Nines/SharpVector
v2.2.1
v2.2.1
Add:
- Added
src/test.shhelper script to run the solution tests with XPlat code coverage and generate HTML, Markdown, and text coverage reports. - Added regression tests in
BugDiscoveryTestsandDiskVectorDatabaseTeststo cover paging metadata, empty database stream round-tripping, disk persistence reload behavior, immediate visibility of disk-backed writes, and immediate reopen-after-delete persistence. - Added
CoverageExpansionTeststo extend coverage across model types, exception hierarchy, ID generators,VectorTextResult,TextDataLoader,DatabaseFile, memory store branches, and obsolete serialization wrappers. - Added
DiskStoreRegressionTeststo validate disk-backed vocabulary and vector store serialization, deserialization, enumeration, and persistence behavior.
Fixed:
- Fixed
.Search()/.SearchAsync()result paging metadata soTotalPagesis calculated from the total result count instead of echoing the requested page size. - Fixed
MemoryVectorDatabase<TMetadata>deserialization from an empty binary stream so ID generation resets correctly instead of failing when no items exist. - Fixed
BasicDiskVectorStoreread-after-write behavior so added items are immediately visible toCount,GetIds(),ContainsKey(), enumeration, and search before the background disk flush completes. - Fixed
BasicDiskVectorStoredelete persistence to avoid WAL truncation races when a database is reopened immediately after delete operations. - Fixed reopened disk-backed databases to correctly expose persisted IDs and search results after checkpoint recovery.
- Fixed
BasicDiskVocabularyStore.DeserializeFromJsonStreamAsyncso deserialized vocabularies restore the in-memory lookup cache as well as the persisted vocabulary map. - Fixed
BasicDiskVectorStore.SerializeToJsonStreamAsyncto flush pending operations before serialization and persist actual vector items rather than only index offsets. - Fixed
BasicDiskVectorStore.DeserializeFromJsonStreamAsyncto rebuild item storage, index, visible IDs, and cache from serialized vector items. - Updated the package version to
2.2.1and refreshed the copyright year range to2024-2026.
Notes:
- Added
coveragereportto.gitignoreto keep generated coverage artifacts out of source control.
v2.2.0
Add:
- Added
BasicDiskVectorDatabaseto provide a basic automatically disk persistent vector database, and associatedBasicDiskVectorStoreandBasicDiskVocabularyStore.
v2.1.3
What's Changed
Add:
- Added
IBatchEmbeddingsGeneratorand.AddTextsAsyncto support batch adding of texts to database. - Added OpenAI support for
IBatchEmbeddingsGenerator - Added
IVectorTextResultItem.Similarityand markedIVectorTextResultItem.VectorComparisonobsolete.VectorComparisonwill be removed in the future. - Added more comment metadata to code
v2.1.2
What's Changed
Fixed:
- Fixed a bug when loading saved database from file/stream where
IntIdGeneratororNumericIdGeneratorlose max Id, resulting in adding new texts to database causes existing texts to be overwritten. This specifically affectedSharpVector.OpenAIandSharpVector.Ollamalibraries but the fix is implemented within the coreBuild5Nines.SharpVectorlibrary.
Nuget
dotnet add package Build5Nines.SharpVector --version 2.1.2v2.1.1
What's Changed
Added:
- Add optional
filterparameter to.Searchand.SearchAsyncmethods that is of typeFunc<TMetadata, bool>that is called for each text item in the database for more advanced filtering prior to performing vector similarity search and returning results. If undefined ornullit's ignored. - add Metadata documentation & LICENSE file reference change for future by @crpietschmann in #71
Full Changelog: v2.1.0...v2.1.1
Nuget
dotnet add package Build5Nines.SharpVector --version 2.1.1v2.1.0
What's Changed
Add:
- Added
VectorTextResultItem.Idproperty so it's easy to get the database ID for search results if necessary. IVectorDatabasenow inherits fromIEnumerableso you can easily look through the texts documents that have been added to the database.
Fixed:
- Fixed text tokenization to correctly remove special characters
- Update
BasicTextPreprocessorto support Emoji characters too - Refactorings for more Clean Code
Breaking Changes:
- The
.Searchand.SearchAsyncmethods now return aIVectorTextResultItem<TId, TDocument, TMetadata>instead ofVectorTextResultItem<TDocument, TMetadata>. If you're using things like the documentation shows, then you wont see any changes or have any issues with this update.
Full Changelog: v2.0.4...v2.1.0
Nuget
dotnet add package Build5Nines.SharpVector --version 2.1.0
dotnet add package Build5Nines.SharpVector.OpenAI --version 2.0.3
dotnet add package Build5Nines.SharpVector.Ollama --version 2.0.3v2.0.4
What's Changed
Add:
- Add Ollama support via
Build5Nines.SharpVector.Ollamanuget package - Added
Build5Nines.SharpVector.Embeddings.IEmbeddingsGeneratorto support creating external embeddings providers - Added
Build5Nines.OpenAI.IOpenAIMemoryVectorDatabaseinterface
Fixed:
- Internal refactoring of save/load database persistence file code to make more maintainable and reusable going forward.
- Implement some performance tweaks in the code; adding
const stringand other best practices to help overall performance for handling larger amounts of data.
Full Changelog: v2.0.2...v2.0.4
Nuget
dotnet add package Build5Nines.SharpVector --version 2.0.4
dotnet add package Build5Nines.SharpVector.OpenAI --version 2.0.3
dotnet add package Build5Nines.SharpVector.Ollama --version 2.0.3v2.0.2
What's Changed:
Add:
- Add
SerializeToBinaryStreamandDeserializeFromBinaryStreammethods to replace (and mark obselete)SerializeToJsonStreamandDeserializeFromJsonStreammethods. They read/write binary zip file data, not json, so they were named incorrectly.
Fixed:
- Fixed
.LoadFromFilemethod that was previously inaccessible.
Nuget
dotnet add package Build5Nines.SharpVector --version 2.0.2
dotnet add package Build5Nines.SharpVector.OpenAI --version 2.0.2v2.0.1
Added:
- Expose internal vector array of
VectorTextItemfromVectorTextResultItem.Vectorsproperty, to make vector array accessible for consuming code in cases where access is required. This is mostly for more flexible usage of the library. - Added Overlapping Window text chunking (
TextChunkingMethod.OverlappingWindow) toTextDataLoaderfor enhanced document segmentation with overlapping content, improving metadata extraction and search result relevance.
Fixed:
- When using
Data.TextDataLoaderwithTextChunkingMethod.FixedLengthit was splitting on a space character which wouldn't work correctly with Chinese text characters. This is now fixed to work correctly with Chinese characters too.
v2.0.0
What's Changed
Added:
- Add data persistence capability to save/load from a file or to/from a
Stream(Both SharpVector and SharpVector.OpenAI) - Add Chinese language/character support
Breaking Change:
- Refactor
IVocabularyStoreto be used withinMemoryDictionaryVectorStoreWithVocabulary. This simplifies implementation ofMemoryVectorDatabaseBase, and helps to enable data persistence capability.
Notes:
- The breaking change only applies if the base classes are being used. If the
BasicMemoryVectorDatabaseis being used, this will likely not break applications that depend on this library. However, in some instances where explicitly depending onVectorTextResultit's properties (without usingvarin consuming code) there might be minor code changes needed when migrating from previous versions of the library.
Nuget
dotnet add package Build5Nines.SharpVector --version 2.0.0
dotnet add package Build5Nines.SharpVector.OpenAI --version 2.0.0Full Changelog: v1.0.1...v2.0.0