-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.Net: Bug: IVectorStore::GetCollection throws away HasNamedVectors #9520
Comments
@lilhoser, thanks for filing a bug, I've created a PR to fix the issue where HasNamedVectors was not passed from VectorStore To Collection. With regards to your design suggestion:
Since
While it is possible to make a request to Qdrant on first use, each time a collection object was created, to determine whether it is using named or unnamed vectors, it isn't good to subject all consumers to this overhead. This also doesn't address the scenario where a developer wants to use a specific mode, and are using SK to create the collection. In this case there isn't a way to know which mode the developer prefers without the developer specifying it. |
…ion in GetCollection. (#9523) ### Motivation and Context We allow users to provide a setting to indicate whether they are using a collection which has named vectors or not when using Qdrant. #9520 ### Description - Fixing a bug where the has named vectors setting wasn't passed from the vector store to the collection in GetCollection. ### Contribution Checklist <!-- Before submitting this PR, please make sure: --> - [x] The code builds clean without any errors or warnings - [x] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [x] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone 😄
Appreciate those details! It's unfortunate that to get a collection object out of Qdrant, you have to specify its configuration ( Perhaps the overload is the way to go (a generic |
Created a feature for adding concrete implementation overloads #9537 |
Describe the bug
When retrieving an existing collection, the
GetCollection
API creates a newQdrantVectorStoreRecordCollectionOptions
object that passes the caller'sVectorStoreRecordDefinition
parameter but does not considerHasNamedVectors
which is a crucial collection option for Qdrant:Source
This also throws away other options that might have been specified when the caller created the collection, such as
PointStructCustomMapper
.As a result, the default value of
HasNamedVectors
is used, which isfalse
. Later vector searches that try to search on a specific named vector causes an exception:To Reproduce
Steps to reproduce the behavior:
IVectorStore.GetCollection
to retrieve that collection - notice that the retrievedcollection
hasHasNamedVectors
set tofalse
even though it was created withtrue
:Expected behavior
GetCollection
should allow the caller to pass in theQdrantVectorStoreRecordCollectionOptions
it used to create the collection, or better yet, this should not be a required parameter at all and SK should figure out how to retrieve the collection instead of creating new parameters that alters the behavior of the collection.Platform
The text was updated successfully, but these errors were encountered: