lc_evaluation/lib.rs
1#![warn(missing_docs)]
2//! Evaluation module — LLM application evaluation
3//!
4//! Provides the `Evaluator` / `PairwiseEvaluator` traits, built-in evaluators, dataset loading,
5//! and a batch runner, for quantifying the effect of prompt/model changes.
6//!
7//! Core types:
8//! - `EvalError` / `Score` / `Example` / `Dataset` / `Evaluator` / `Predictor`
9//! - `PairwiseEvaluator` (pairwise comparison, a first-class citizen alongside pointwise, P1-1)
10//! - `EvalRunner` and the `Report` (with original text + stddev + failure list)
11//! - built-in evaluators: `ExactMatch` / `StringDistance` / `EmbeddingSimilarity` / `LLMAsJudge`
12//! - other evaluators: `Bleu` / `Faithfulness` / `PairwiseJudge` / `ContainsKeyword` / `RegexMatch`
13//!
14//! # Example
15//! ```ignore
16//! use lc_evaluation::{EvalRunner, ExactMatch, StringDistance, Dataset, Example};
17//! let dataset = Dataset::new(vec![Example::new("2+2?", "4")]);
18//! let runner = EvalRunner::new(vec![Box::new(ExactMatch), Box::new(StringDistance)]);
19//! // let report = runner.run(&dataset, &predictor).await?;
20//! ```
21
22mod bleu;
23mod criteria;
24mod faithfulness;
25mod pairwise;
26mod results;
27mod rules;
28mod runner;
29
30#[cfg(test)]
31mod test_support;
32
33pub use bleu::Bleu;
34pub use criteria::{Dataset, EvalError, Evaluator, Example, PairwiseEvaluator, Predictor, Score};
35pub use faithfulness::Faithfulness;
36pub use pairwise::{PairwiseJudge, Verdict};
37pub use results::{EmbeddingSimilarity, ExactMatch, LLMAsJudge, StringDistance};
38pub use rules::{ContainsKeyword, LengthCheck, RegexMatch};
39pub use runner::{EvalRunner, Report};
40
41#[cfg(test)]
42mod integration_tests;