-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
In an effort to make MEVD's APIs easier to use, I'd like to propose removing Record from many of the type names in MEVD, so have IVectorStoreCollection instead of IVectorStoreRecordCollection. This also cascades to lots of other types (VectorStoreKeyProperty and friends, [VectorStoreKey] instead of [VectorStoreRecordKey]).
I think one of the original motivators for the current naming is that the store itself can be considered a collection of collections (e.g. IVectorStore has the ListCollectionsAsync API). However, we haven't seen any other actual collection-like operations appear on IVectorStore, and there seems to be very little ambiguity at this point that IVectorStoreCollection just refers to a collection within the vector database; so IMHO we may as well make the dev experience better here and remove that word.
It's worth noting that we sometimes have quite long names, e.g. AzureCosmosDBMongoDBVectorStoreRecordCollection. If we remove Record and also apply the simplifications proposed in #10631, we end up with CosmosMongoVectorStoreCollection, which starts to be a bit more manageable!
- The old type names can stay with an
[Obsolete("...", error=true], meaning that users will get a very clear build error on the rename and a note telling them exactly what they need to do. - We're already implementing more impactful breaking changes which users would have to react to anyway... We're adding a mandatory Top parameter to the search API (.Net MEVD: Consider making Top a mandatory parameter #10193), we're about to obsolete/remove VectorizedSearchAsync with SearchEmbeddingAsync and SearchAsync, and some other stuff. In other words, given the breaking changes being done, removing Record from the type names seems really minor-impact.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status