UNPKG

hnswsqlite

Version:

Vector search with HNSWlib and SQLite in TypeScript.

31 lines (26 loc) 914 B
import { VectorStore } from '../../vectorStore'; import inquirer from 'inquirer'; export async function addDocument(store: VectorStore, text: string, embedding?: string[]): Promise<number> { let vector: number[] = []; // If embedding is not provided, ask if user wants to generate one if (!embedding || embedding.length === 0) { const { useDummy } = await inquirer.prompt([{ type: 'confirm', name: 'useDummy', message: 'No embedding provided. Use dummy embedding?', default: true }]); if (useDummy) { // Create a dummy embedding of the correct dimension const dim = store['dim']; vector = new Array(dim).fill(0.1); } else { throw new Error('Embedding is required'); } } else { // Parse the provided embedding vector = embedding.map(Number); } // Add the document to the store return store.addDocument(text, vector); }