mememo
v0.1.0
Published
On-device vector database
Downloads
7
Maintainers
Readme
MeMemo
A JavaScript library that brings vector search and RAG to your browser!
What is MeMemo?
MeMemo is JavaScript library that adapts the state-of-the-art approximate nearest neighbor search technique HNSW to browser environments. Developed with modern and native Web technologies, such as IndexedDB and Web Workers, our toolkit leverages client-side hardware capabilities to enable researchers and developers to efficiently search through millions of high-dimensional vectors in browsers. MeMemo enables exciting new design and research opportunities, such as private and personalized content creation and interactive prototyping, as demonstrated in our example application RAG Playground.✨
Getting Started
Installation
MeMemo supports both browser and Node.js environments. To install MeMemo, you can use npm
:
npm install mememo
Vector Search and Storage in Browsers
Then, you can create a vector index and do an approximate nearest neighbor search through two functions:
// Import the HNSW class from the MeMemo module
import { HNSW } from 'mememo';
// Creating a new index
const index = new HNSW({ distanceFunction: 'cosine' });
// Inserting elements into our index in batches
let keys: string[];
let values: number[][];
await index.bulkInsert(keys, values);
// Find k-nearest neighbors
let query: number[];
const { keys, distances } = await index.query(query, k);
Developing MeMemo
Clone or download this repository:
git clone [email protected]:poloclub/mememo.git
Install the dependencies:
npm install
Use Vitest for unit testing:
npm run test
Developing the RAG Playground Examples
Clone or download this repository:
git clone [email protected]:poloclub/mememo.git
Navigate to the example folder:
cd ./examples/rag-playground
Install the dependencies:
npm install
Then run Loan Explainer:
npm run dev
Navigate to localhost:3000. You should see three Explainers running in your browser :)
Credits
MeMemo is created by Jay Wang and Polo Chau.
License
The software is available under the MIT License.
Contact
If you have any questions, feel free to open an issue or contact Jay Wang.