跳到主要内容

LangChain 开箱即用评估器

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

注意

目前,LangChain 仅支持 Python 的开箱即用评估器。

注意

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

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

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

criterion 可以是以下默认实现的标准之一:conciseness(简洁性)、relevance(相关性)、correctness(正确性)、coherence(连贯性)、harmfulness(有害性)、maliciousness(恶意性)、helpfulness(有用性)、controversiality(争议性)、misogyny(厌女症)和 criminality(犯罪性)。

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

criterion 可以是以下默认实现的标准之一:conciseness(简洁性)、relevance(相关性)、correctness(正确性)、coherence(连贯性)、harmfulness(有害性)、maliciousness(恶意性)、helpfulness(有用性)、controversiality(争议性)、misogyny(厌女症)和 criminality(犯罪性)。

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

criterion 可以是以下默认实现的标准之一:conciseness(简洁性)、relevance(相关性)、correctness(正确性)、coherence(连贯性)、harmfulness(有害性)、maliciousness(恶意性)、helpfulness(有用性)、controversiality(争议性)、misogyny(厌女症)和 criminality(犯罪性)。

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

criterion 可以是以下默认实现的标准之一:conciseness(简洁性)、relevance(相关性)、correctness(正确性)、coherence(连贯性)、harmfulness(有害性)、maliciousness(恶意性)、helpfulness(有用性)、controversiality(争议性)、misogyny(厌女症)和 criminality(犯罪性)。

或者,您可以在自定义字典中定义自己的标准,如下所示
{ "criterion_key": "criterion description" }。分数满分为 10 分,因此 normalize_by 会将其转换为 0 到 1 之间的分数。
嵌入距离嵌入余弦距离LangChainStringEvaluator("embedding_distance")
字符串距离字符串距离LangChainStringEvaluator("string_distance", config={"distance": "damerau_levenshtein" })

distance 定义了要应用的字符串差异度量,例如 levenshteinjaro_winkler
精确匹配精确匹配LangChainStringEvaluator("exact_match")
正则表达式匹配正则表达式匹配LangChainStringEvaluator("regex_match")
JSON 有效性json_validityLangChainStringEvaluator("json_validity")
JSON 等价性json_equalityLangChainStringEvaluator("json_equality")
JSON 编辑距离json_edit_distanceLangChainStringEvaluator("json_edit_distance")
JSON 架构json_schemaLangChainStringEvaluator("json_schema")

此页面有帮助吗?


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