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