Robustify search and delete on qdrant_db#115
Open
lisa-lthorrold wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unlike other vector db implementations where the client creates the collection in the constructor, this one creates it on first add (it checks to see if the collection/kb exists first). This means that calling delete or search will throw an exception if the knowledge base doesn't exist.
I do feel a graceful failure is better from a user experience but it could mask bugs, depending on how the library is integrated with other systems. Other option is to make it consistent with our other vector db implementations deal with this issue, and initialise the kb if it doesn't exist in the constructor - but there is further complications there. In the local .db version, you can only have 1 client per process (which covers all knowledge bases), so if you tie the first (and only instantiation) of the client - then multiple knowledge bases cannot be supported.