跳到主要内容

LangChain 开箱即用评估器

LangChain 的评估模块提供了您可以直接使用的评估器,用于常见的评估场景。要了解如何使用这些评估器,请参阅以下指南

注意

我们目前仅在 LangChain 的 Python 版本中支持开箱即用评估器。

注意

这些评估器大多数都很有用,但并非完美!我们建议不要盲目信任任何单一的自动化指标,而应始终将它们作为整体测试和评估策略的一部分。许多基于 LLM 的评估器会为给定的数据点返回一个二元分数,因此,衡量 prompt 或模型性能的差异在更大的数据集上总体而言最可靠。

下表列出了 LangSmith 中提供的开箱即用评估器,以及它们的输出键和一个简单的代码示例。

评估器名称输出键简单代码示例
问答正确性LangChainStringEvaluator("qa")
上下文问答上下文准确性LangChainStringEvaluator("context_qa")
思维链问答cot 上下文准确性LangChainStringEvaluator("cot_qa")
标准取决于标准键LangChainStringEvaluator("criteria", config={ "criteria": <criterion> })

criterion 可以是默认实现的 criteria 之一:concisenessrelevancecorrectnesscoherenceharmfulnessmaliciousnesshelpfulnesscontroversialitymisogynycriminality

或者,您可以按如下所示在自定义 dict 中定义自己的 criteria
{ "criterion_key": "criterion description" }
标记标准取决于标准键LangChainStringEvaluator("labeled_criteria", config={ "criteria": <criterion> })

criterion 可以是默认实现的 criteria 之一:concisenessrelevancecorrectnesscoherenceharmfulnessmaliciousnesshelpfulnesscontroversialitymisogynycriminality

或者,您可以按如下所示在自定义 dict 中定义自己的 criteria
{ "criterion_key": "criterion description" }
评分取决于标准键LangChainStringEvaluator("score_string", config={ "criteria": <criterion>, "normalize_by": 10 })

criterion 可以是默认实现的 criteria 之一:concisenessrelevancecorrectnesscoherenceharmfulnessmaliciousnesshelpfulnesscontroversialitymisogynycriminality

或者,您可以按如下所示在自定义 dict 中定义自己的 criteria
{ "criterion_key": "criterion description" }。分数是 10 分制,因此 normalize_by 会将其转换为 0 到 1 的分数。
标记评分取决于标准键LangChainStringEvaluator("labeled_score_string", config={ "criteria": <criterion>, "normalize_by": 10 })

criterion 可以是默认实现的 criteria 之一:concisenessrelevancecorrectnesscoherenceharmfulnessmaliciousnesshelpfulnesscontroversialitymisogynycriminality

或者,您可以按如下所示在自定义 dict 中定义自己的 criteria
{ "criterion_key": "criterion description" }。分数是 10 分制,因此 normalize_by 会将其转换为 0 到 1 的分数。
Embedding 距离embedding_cosine_distanceLangChainStringEvaluator("embedding_distance")
字符串距离string_distanceLangChainStringEvaluator("string_distance", config={"distance": "damerau_levenshtein" })

distance 定义了要应用的字符串差异度量标准,例如 levenshteinjaro_winkler
精确匹配exact_matchLangChainStringEvaluator("exact_match")
Regex 匹配regex_matchLangChainStringEvaluator("regex_match")
Json 有效性json_validityLangChainStringEvaluator("json_validity")
Json 相等性json_equalityLangChainStringEvaluator("json_equality")
Json 编辑距离json_edit_distanceLangChainStringEvaluator("json_edit_distance")
Json Schemajson_schemaLangChainStringEvaluator("json_schema")

此页面对您有帮助吗?


您可以留下详细的反馈 在 GitHub 上.