UNPKG

convokit

Version:

A flexible TypeScript framework for ingesting, processing, and exporting chat/conversation data for LLM training and analysis.

22 lines 1 kB
import { ConvoKitLogging as ckl } from "../../../index.js"; export async function CKWeightedSample(CKTurnListConversations, Samples) { ckl.time("CKWeightedSample", "Creating weighted sample"); // Calculate weights (sum of importance for each conversation) const weights = CKTurnListConversations.map(CKTurnListConversation => CKTurnListConversation.reduce((s, m) => s + m.importance, 0)); const total = weights.reduce((a, b) => a + b, 0); function pickOne() { let r = Math.random() * total; for (let i = 0; i < CKTurnListConversations.length; i++) { r -= weights[i]; if (r <= 0) return CKTurnListConversations[i]; } return CKTurnListConversations[CKTurnListConversations.length - 1]; } const result = []; for (let i = 0; i < Samples; i++) result.push(pickOne()); ckl.timeEnd("CKWeightedSample", "Creating weighted sample"); return result; } //# sourceMappingURL=CKWeightedSample.js.map