ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
12 lines (11 loc) • 590 B
JavaScript
import { nanoid as createId } from "nanoid";
import { embedTexts } from "../model-function/embed-text/embedText.js";
export async function upsertTextChunks({ vectorIndex, embeddingModel, generateId = createId, chunks, ids, }, options) {
// many embedding models support bulk embedding, so we first embed all texts:
const { embeddings } = await embedTexts(embeddingModel, chunks.map((chunk) => chunk.content), options);
await vectorIndex.upsertMany(chunks.map((chunk, i) => ({
id: ids?.[i] ?? generateId(),
vector: embeddings[i],
data: chunk,
})));
}