hnswsqlite
Version:
Vector search with HNSWlib and SQLite in TypeScript.
31 lines (26 loc) • 914 B
text/typescript
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);
}