hnswsqlite
Version:
Vector search with HNSWlib and SQLite in TypeScript.
34 lines (33 loc) • 1.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.addDocument = addDocument;
const inquirer_1 = __importDefault(require("inquirer"));
async function addDocument(store, text, embedding) {
let vector = [];
// If embedding is not provided, ask if user wants to generate one
if (!embedding || embedding.length === 0) {
const { useDummy } = await inquirer_1.default.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);
}