/** * LLM Evaluation Framework for LLMS SDK * Based on industry best practices from DeepEval and OWASP Top 10 for LLMs */ import type { ChatClient, AskOptions } from "../types.js"; /** * Test case for LLM evaluation */ export interface LLMTestCase { input: string; expectedOutput?: string; actualOutput?: string; context?: string[]; metadata?: Record; } /** * Evaluation metric result */ export interface MetricResult { name: string; score: number; passed: boolean; reason?: string; details?: Record; } /** * Base evaluation metric */ export declare abstract class EvaluationMetric { name: string; threshold: number; constructor(name: string, threshold?: number); abstract evaluate(testCase: LLMTestCase): Promise; } /** * Correctness metric - evaluates if output matches expected */ export declare class CorrectnessMetric extends EvaluationMetric { constructor(threshold?: number); evaluate(testCase: LLMTestCase): Promise; private calculateSimilarity; } /** * Security metric - checks for prompt injection attempts */ export declare class PromptInjectionMetric extends EvaluationMetric { private injectionPatterns; constructor(); evaluate(testCase: LLMTestCase): Promise; } /** * Data leakage metric - checks for sensitive information exposure */ export declare class DataLeakageMetric extends EvaluationMetric { private sensitivePatterns; constructor(); evaluate(testCase: LLMTestCase): Promise; } /** * LLM Test Suite for running evaluations */ export declare class LLMTestSuite { private client; private metrics; constructor(client: ChatClient); addMetric(metric: EvaluationMetric): this; runTest(testCase: LLMTestCase, options?: AskOptions): Promise<{ testCase: LLMTestCase; results: MetricResult[]; passed: boolean; }>; runTestSuite(testCases: LLMTestCase[], options?: AskOptions): Promise<{ total: number; passed: number; failed: number; results: Array<{ testCase: LLMTestCase; results: MetricResult[]; passed: boolean; }>; }>; } /** * Vitest integration helpers */ export declare function createLLMTest(client: ChatClient, metrics?: EvaluationMetric[]): LLMTestSuite; export declare function expectLLMResponse(suite: LLMTestSuite, testCase: LLMTestCase, options?: AskOptions): { toPass(): Promise; toScore(threshold: number): Promise; }; //# sourceMappingURL=evaluation.d.ts.map