Skip to main content

lc_evaluation/
lib.rs

1//! Evaluation 模块 - LLM 应用评测
2//!
3//! 提供 `Evaluator` / `PairwiseEvaluator` trait、内置评测器、数据集加载与批量运行器,
4//! 用于量化 prompt/模型改动的效果。
5//!
6//! 核心类型:
7//! - `EvalError` / `Score` / `Example` / `Dataset` / `Evaluator` / `Predictor`
8//! - `PairwiseEvaluator`(成对比较,P1-1 与单点并列的一等公民)
9//! - `EvalRunner` 与报告 `Report`(含原文 + 标准差 + 失败清单)
10//! - 内置评测器: `ExactMatch` / `StringDistance` / `EmbeddingSimilarity` / `LLMAsJudge`
11//! - 其它评测器: `Bleu` / `Faithfulness` / `PairwiseJudge` / `ContainsKeyword` / `RegexMatch`
12//!
13//! # 示例
14//! ```ignore
15//! use lc_evaluation::{EvalRunner, ExactMatch, StringDistance, Dataset, Example};
16//! let dataset = Dataset::new(vec![Example::new("2+2?", "4")]);
17//! let runner = EvalRunner::new(vec![Box::new(ExactMatch), Box::new(StringDistance)]);
18//! // let report = runner.run(&dataset, &predictor).await?;
19//! ```
20
21mod bleu;
22mod criteria;
23mod faithfulness;
24mod pairwise;
25mod results;
26mod rules;
27mod runner;
28
29#[cfg(test)]
30mod test_support;
31
32pub use bleu::Bleu;
33pub use criteria::{Dataset, EvalError, Evaluator, Example, PairwiseEvaluator, Predictor, Score};
34pub use faithfulness::Faithfulness;
35pub use pairwise::{PairwiseJudge, Verdict};
36pub use results::{EmbeddingSimilarity, ExactMatch, LLMAsJudge, StringDistance};
37pub use rules::{ContainsKeyword, LengthCheck, RegexMatch};
38pub use runner::{EvalRunner, Report};
39
40#[cfg(test)]
41mod integration_tests;