-
Notifications
You must be signed in to change notification settings - Fork 2.6k
feat: local vector store #5870
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
feat: local vector store #5870
Conversation
3baeab1 to
93cf79b
Compare
|
@daniel-lxs Is this solution feasible? I have always been troubled by the memory consumption problem of qdrant, especially when Docker is just started, it will load all the codebase into memory. And because of some features of WIndows11, the committed memory will occupy space and may not be released By referring to copilot, I use sqlite to complete the task. Of course, upgrading NodeJs is not all good, especially since node:sqlite is still an experimental feature. But this solution can really reduce my memory pressure. When not setting the storage path, the codebase index of each project is also managed together with the project |
|
@NaccOll Hey, it should be possible, but it will require a lot of testing. I do see there is an unit test that is failing can you take a look? |
|
I have fixed the unit test issue at the code level. The current error is because I am using NodeJs22, while the project is configured with 20. I did this because NodeJs22 has SQLite built in and does not require additional dependencies. If the project does not upgrade NodeJS, then I can achieve the goal by replacing the third-party SQLite dependency. |
0e566f8 to
589d72a
Compare
|
rebased on v3.23.15 and improve performance in larger codebase |
589d72a to
3f937dc
Compare
d541760 to
35d2540
Compare
…settings. - Updated WebviewMessage interface to include optional fields for local vector store provider and directory. - Implemented synchronous storage path retrieval for local vector store. - Enhanced CodeIndexPopover component to allow selection between Qdrant and local vector store providers. - Added new input fields for local vector store directory settings in the UI. - Updated validation tests to cover new vector store settings. - Translated new settings labels and descriptions into multiple languages.
35d2540 to
a922ad0
Compare
|
Redesign the DB to improve performance and save space. A new PR will be opened later. |
Related GitHub Issue
Closes: #5682
Description
Add Sqlite as a local vector storage tool, refer to vscode-copilot-chat
Qdrant is still used by default, but users can switch according to their own preferences
Need to upgrade the Node version
Test Procedure
Unit Test:
src\services\code-index\vector-store_tests_\local-vector-store.spec.ts
Integration test
Pre-Submission Checklist
Important
Adds SQLite as a local vector storage option, requiring a Node version upgrade and updating configurations and UI to support the new feature.
local-vector-store.ts, allowing users to switch from the default Qdrant.>=22.14.0in.nvmrcandpackage.json.codebase-index.tsandClineProvider.tsto includecodebaseIndexVectorStoreProviderandcodebaseIndexLocalVectorStoreDirectoryoptions.config-manager.tsto handle new vector store configurations.CodeIndexPopover.tsxto allow selection between Qdrant and local vector store.local-vector-store.spec.tsto validate local vector store functionality.This description was created by
for 3f937dc6ccf924c66e23ae0f50e0cbc4c4f3b036. You can customize this summary. It will automatically update as commits are pushed.