UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

66 lines (65 loc) • 2.33 kB
/** * @file BatchEvaluator - Supports batch evaluation of multiple responses. * Enables parallel evaluation with configurable concurrency and error handling. */ import type { AutoEvaluationConfig, BatchEvaluationConfig, BatchEvaluationItem, BatchEvaluationResult } from "../types/index.js"; /** * BatchEvaluator - Performs evaluation on multiple items in parallel. * Supports configurable concurrency, retry logic, and progress tracking. * * @example * ```typescript * const batchEvaluator = new BatchEvaluator({ * concurrency: 3, * continueOnError: true, * onProgress: (progress) => console.log(`${progress.percentComplete}% complete`) * }); * * const items = [ * { id: '1', options: opts1, result: result1 }, * { id: '2', options: opts2, result: result2 }, * ]; * * const batchResult = await batchEvaluator.evaluateBatch(items); * console.log(`Passing rate: ${batchResult.summary.passingRate}%`); * ``` */ export declare class BatchEvaluator { private config; constructor(config?: BatchEvaluationConfig); /** * Create a fresh Evaluator instance for each evaluation to avoid leaking state. */ private _createEvaluator; /** * Evaluates a batch of items in parallel with controlled concurrency. * * @param items - Array of items to evaluate * @param autoEvalConfig - Auto-evaluation configuration for thresholds * @returns Batch evaluation results with summary statistics */ evaluateBatch(items: BatchEvaluationItem[], autoEvalConfig?: AutoEvaluationConfig): Promise<BatchEvaluationResult>; /** * Evaluates items sequentially (one at a time). * Useful for debugging or when order matters. * * @param items - Array of items to evaluate * @param autoEvalConfig - Auto-evaluation configuration * @returns Batch evaluation results */ evaluateSequential(items: BatchEvaluationItem[], autoEvalConfig?: AutoEvaluationConfig): Promise<BatchEvaluationResult>; /** * Gets the current configuration. */ getConfig(): BatchEvaluationConfig; /** * Updates the configuration. * * @param config - New configuration values */ updateConfig(config: Partial<BatchEvaluationConfig>): void; /** * Helper to delay execution. */ private delay; }