@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
82 lines (81 loc) • 2.37 kB
TypeScript
/**
* @file Content Similarity Scorer
* Evaluates text similarity using various metrics (Jaccard, cosine, Levenshtein)
*/
import type { ContentSimilarityConfig, ScoreResult, ScorerInput } from "../../../types/index.js";
import { BaseScorer } from "../baseScorer.js";
/**
* ContentSimilarityScorer evaluates how similar the response is to a reference text
*/
export declare class ContentSimilarityScorer extends BaseScorer {
private _similarityConfig;
constructor(config?: ContentSimilarityConfig);
/**
* Get similarity-specific configuration
*/
get similarityConfig(): ContentSimilarityConfig;
/**
* Get reference text based on configuration
*/
private _getReferenceText;
/**
* Calculate similarity between two texts
*/
private _calculateSimilarity;
/**
* Normalize text for comparison
*/
private _normalizeText;
/**
* Tokenize text based on configuration
*/
private _tokenize;
/**
* Calculate Jaccard similarity coefficient
* J(A,B) = |A ∩ B| / |A ∪ B|
*/
private _jaccardSimilarity;
/**
* Calculate cosine similarity using term frequency vectors
*/
private _cosineSimilarity;
/**
* Get term frequency map
*/
private _getTermFrequency;
/**
* Calculate normalized Levenshtein similarity
* Returns 1 - (edit_distance / max_length)
*/
private _levenshteinSimilarity;
/**
* Calculate Levenshtein edit distance using space-optimized two-row DP
*/
private _levenshteinDistance;
/**
* Calculate Dice coefficient (Sorensen-Dice)
* DSC(A,B) = 2|A ∩ B| / (|A| + |B|)
*/
private _diceSimilarity;
/**
* Calculate overlap coefficient
* O(A,B) = |A ∩ B| / min(|A|, |B|)
*/
private _overlapCoefficient;
/**
* Override score to add detailed similarity metrics
*/
score(input: ScorerInput): Promise<ScoreResult>;
/**
* Combine multiple metric scores
*/
private _combineMetricScores;
/**
* Generate reasoning from similarity details
*/
private _generateSimilarityReasoning;
}
/**
* Factory function for creating ContentSimilarityScorer instances
*/
export declare function createContentSimilarityScorer(config?: ContentSimilarityConfig): Promise<ContentSimilarityScorer>;