taolib.harness.eval.metrics#
指标收集器 - 评估指标的协议、预置实现、注册表与聚合工具。
本模块提供可扩展的指标体系:
MetricProtocol 定义统一接口;预置
ExactMatch/ContainsMatch/LatencyMetric/TokenUsageMetric/CostMetric;MetricRegistry支持自定义指标注册;MetricAggregator提供分布统计(均值、P50/P95/P99、标准差);CompositeMetric支持多指标加权组合。
Classes#
组合指标 - 对若干子指标按权重线性加权求总分。 |
|
包含匹配指标 - 期望文本是否被实际文本包含。 |
|
成本估算指标 - 按 prompt/completion 单价折算总成本(美元)。 |
|
精确匹配指标 - 字符串完全一致返回 1.0,否则 0.0。 |
|
延迟测量指标 - 直接读取 |
|
指标接口 - 任意可计算评估指标的最小契约。 |
|
指标聚合器 - 对一系列样本计算均值、分位、标准差。 |
|
指标注册表 - 支持按名称登记/查询/批量装配。 |
|
单个指标在一组样本上的统计摘要。 |
|
Token 用量指标 - 读取 |
Module Contents#
- class taolib.harness.eval.metrics.CompositeMetric(name: str, components: collections.abc.Sequence[tuple[Metric, float]])#
组合指标 - 对若干子指标按权重线性加权求总分。
- compute(predicted: Any, expected: Any, /, **kwargs: Any) MetricValue#
- name#
- class taolib.harness.eval.metrics.ContainsMatch(*, case_sensitive: bool = False)#
包含匹配指标 - 期望文本是否被实际文本包含。
- compute(predicted: Any, expected: Any, /, **_: Any) MetricValue#
- name = 'contains_match'#
- class taolib.harness.eval.metrics.CostMetric(*, prompt_price_per_1k: float = 0.0, completion_price_per_1k: float = 0.0)#
成本估算指标 - 按 prompt/completion 单价折算总成本(美元)。
- compute(predicted: Any, expected: Any, /, **kwargs: Any) MetricValue#
- name = 'cost'#
- class taolib.harness.eval.metrics.ExactMatch(*, case_sensitive: bool = True, strip: bool = True)#
精确匹配指标 - 字符串完全一致返回 1.0,否则 0.0。
- compute(predicted: Any, expected: Any, /, **_: Any) MetricValue#
- name = 'exact_match'#
- class taolib.harness.eval.metrics.LatencyMetric#
延迟测量指标 - 直接读取
kwargs['latency'](秒)。- compute(predicted: Any, expected: Any, /, **kwargs: Any) MetricValue#
- name = 'latency'#
- class taolib.harness.eval.metrics.Metric#
Bases:
Protocol指标接口 - 任意可计算评估指标的最小契约。
- compute(predicted: Any, expected: Any, /, **kwargs: Any) MetricValue#
计算单次指标得分。
- 参数:
predicted -- Agent 实际输出。
expected -- 期望输出(可选,部分指标如延迟无需期望值)。
**kwargs -- 额外上下文(如 latency、tokens)。
- class taolib.harness.eval.metrics.MetricAggregator#
指标聚合器 - 对一系列样本计算均值、分位、标准差。
- static aggregate(name: str, values: collections.abc.Iterable[float]) MetricSummary#
聚合指定名称下的一组样本。
- static aggregate_many(rows: collections.abc.Iterable[collections.abc.Mapping[str, float]]) dict[str, MetricSummary]#
对每个指标列分别聚合,返回
{metric_name: summary}映射。
- class taolib.harness.eval.metrics.MetricRegistry#
指标注册表 - 支持按名称登记/查询/批量装配。
- resolve(names: collections.abc.Iterable[str]) list[Metric]#
按名称批量解析指标实例列表。
- classmethod with_defaults() MetricRegistry#
构造内置默认指标的注册表。