Welcome to our new vector_database project and to the internet computer development community.
It is an open-source and fully on-chain vector database and vector similarity search engine, that helps AI applications on ICP.
This is released under the [open-source Apache License 2.0] in October 2024.
Here we using HNSW algorthm to index the vecotr embeddings. Instance Distance is a fast pure-Rust implementation of the Hierarchical Navigable Small Worlds paper by Malkov and Yashunin for finding approximate nearest neighbors (ANN).
- Variable Dimension Storage: Our VectorDB supports the storage of vectors with varying dimensions, allowing for flexible data management.
- Stable Memory Support: VectorDB ensures data persistence across upgrades. The data is stored in stable memory during the pre-upgrade hook and is reloaded into the heap after the canister upgrade, maintaining data integrity and continuity.
-
Super User and Admin Management:
-
Super User: Each vector canister has a designated super user who has full control over the canister.
-
Admin Management: The super user can add or remove admin users who have permissions to read or write in the VectorDB.
-
Stable Structure Support: The security structure is also stable, ensuring that the access control mechanisms persist through upgrades.
-
To learn more before you start working with vector_database, see the following documentation available online:
- Quick Start
- SDK Developer Tools
- Rust Canister Devlopment Guide
- ic-cdk
- ic-cdk-macros
- Candid Introduction
If you want to start working on your project right away, you might want to try the following commands:
cd vector_database/
dfx help
dfx canister --help
If you want to test your project locally, you can use the following commands:
# Starts the replica, running in the background
dfx start --background
# Deploys your canisters to the replica and generates your candid interface
dfx deploy
Once the job completes, your application will be available at http://localhost:4943?canisterId={asset_canister_id}
.