All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
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
IVocabularyStore
to 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
BasicMemoryVectorDatabase
is being used, this will likely not break applications that depend on this library. However, in some instances where explicitly depending onVectorTextResult
it's properties (without usingvar
in consuming code) there might be minor code changes needed when migrating from previous versions of the library.
- Upgrade to .NET 8 or higher
Added:
- Simplify object model by combining Async and non-Async classes,
BasicMemoryVectorDatabase
now support both synchronous and asynchronous operations. - Refactored to remove unnecessary classes where the
Async
versions will work just fine. - Improve async/await and multi-threading use
Added:
- Added
Async
version of classes to support multi-threading - Metadata is no longer required when calling
.AddText()
and.AddTextAsync()
- Refactor
IVectorSimilarityCalculator
toIVectorComparer
andCosineVectorSimilarityCalculatorAsync
toCosineSimilarityVectorComparerAsync
- Add new
EuclideanDistanceVectorComparerAsync
- Fix
MemoryVectorDatabase
to no longer requird unusedTId
generic type - Rename
VectorSimilarity
andSimilarity
properties toVectorComparison
Added:
- Add
TextDataLoader
class to provide support for different methods of text chunking when loading documents into the vector database.
Added:
- Introduced the
BasicMemoryVectorDatabase
class as the basic Vector Database implementations that uses a Bag of Words vectorization strategy, with Cosine similarity, a dictionary vocabulary store, and a basic text preprocessor. - Add more C# Generics use, so the library is more customizable when used, and custom vector databases can be implemented if desired.
- Added
VectorTextResultItem.Similarity
so consuming code can inspect similarity of the Text in the vector search results. - Update
.Search
method to support search result paging and threshold support for similarity comparison - Add some basic Unit Tests
Added:
- Initial release - let's do this!