UNPKG

@j-o-r/vdb

Version:

In-memory vector embeddings database using embeddings for efficient querying text documents

82 lines (57 loc) 2.54 kB
# In-Memory Vector Embeddings Database # BETA This project provides an in-memory vector embeddings database using embeddings for efficient querying and searching of text documents. ## Description The project allows you to create, query, and manage an in-memory vector embeddings database. It uses embeddings to represent text documents as vectors, enabling efficient similarity searches. ## Installation To install the package, use the following command: ```bash npm install @j-o-r/vdb ``` ## Usage Here is an example of how to use the `Vdb` class to create a database, perform searches, and manage the database: ```javascript import path from 'path'; import Vdb from '@j-o-r/vdb'; const db = new Vdb('path/to/storage'); // Create a database from a text document // You only have to do this ones. // It may take some time if (!db.list().includes('readme')) { const file = path.resolve('README.md'); await db.create(file, 'readme'); } // Perform a search in the database let str = await db.search('readme', 'How to create a database', { treshhold: 0.86, results: 4, preRead: 1, postRead: 10 }); console.log(str); // -- Delete a database // db.delete('readme'); ``` ## API ### Vdb Class #### Constructor ```javascript new Vdb(storagePath) ``` - `storagePath` (string): Path to the storage folder. #### Methods - `list()`: Returns a list of available databases. - `delete(dbName)`: Deletes the specified database. - `dbName` (string): Name of the database to delete. - `create(file, dbName, batchSize)`: Creates or overwrites an embeddings database from a text document. - `file` (string): Path to the text document. - `dbName` (string): Name of the database. - `batchSize` (number, optional): Batch size for processing (default is 256). - `search(dbName, query, selector)`: Searches the database and returns formatted results. - `dbName` (string): Name of the database. - `query` (string): Search query. - `selector` (object, optional): Selector options. - `results` (number): Number of results to return. - `preRead` (number): Number of lines to return before the found index. - `postRead` (number): Number of lines to return after the found index. - `getResult(dbName, query, results)`: Gets raw search results from the database. - `dbName` (string): Name of the database. - `query` (string): Search query. - `results` (number, optional): Number of results to return (default is 5). ## License This project is licensed under the APACHE 2.0 License. See the LICENSE file for details.