What is CloseVector?
CloseVector is fundamentally a vector database. We have made dedicated libraries available for both browsers and node.js, aiming for easy integration no matter your platform. One feature we've been working on is its potential for scalability. Instead of being bound by server limitations, CloseVector's vector index operates directly on the user's machine, aiming for more efficient performance.
The foundation of CloseVector is built on the HNSW algorithm. We've integrated the hnswlib to ensure compatibility across various platforms, from browsers to node.js. We're continuously looking to enhance and expand the capabilities of CloseVector.
How it works
CloseVector is built on hnswlib to compile it as a WASM and Node.js module. The WASM module is then loaded into the browser using WebAssembly. Since the original C code of hnswlib is not compatible with Emscripten and Node-Gyp (the files cannot be loaded interchangeably), we had to make some changes to the original code to make it work.
Starting with CloseVector
For those interested, we've put together a tutorial. This guide provides a step-by-step overview on using
closevector-node for text embeddings and vector storage. Some of the tutorial highlights include:
- How to install
- Generating your first access key for authentication.
- TypeScript code samples for various tasks.
- An overview of fetching Hacker News stories, formatting them, and initializing a vector store.
- Creating an index.
You can access the detailed tutorial here.
Demo and Source Code
To provide a glimpse of CloseVector in action, we have a demo. This integrates
docusaurus to create a document website using CloseVector's capabilities.
The demo includes:
- Injecting a document into the CloseVector index using
- Experiencing the search function with
If you're keen to see the behind-the-scenes, the source code for this demo is available at closevector-doc. You can also interact with the demo by using the search button on the top right.