langchain.evaluation.parsing.json_distance.JsonEditDistanceEvaluator

class langchain.evaluation.parsing.json_distance.JsonEditDistanceEvaluator(string_distance: Optional[Callable[[str, str], float]] = None, canonicalize: Optional[Callable[[Any], Any]] = None, **kwargs: Any)[source]

一个计算JSON字符串之间编辑距离的评估器。

该评估器在解析并将两个JSON字符串转换为规范格式(即,空格和键的顺序被规范化)之后,计算两个JSON字符串之间的标准化Damerau-Levenshtein距离。它可以通过替代距离和规范化函数进行定制。

参数:
string_distance(可选[Callable[[str, str], float]]):计算两个字符串之间距离的可调用函数。

如果未提供,则将使用`rapidfuzz`包中的Damerau-Levenshtein距离。

canonicalize(可选[Callable[[Any], Any]]):将解析的JSON对象转换为其规范字符串形式的可调用函数。

如果未提供,默认行为是使用排序后的键和没有额外空格序列化JSON。

**kwargs(Any):额外的关键字参数。

属性:

_string_distance(Callable[[str, str], float]):内部距离计算函数。 _canonicalize(Callable[[Any], Any]):内部规范化函数。

示例:
>>> evaluator = JsonEditDistanceEvaluator()
>>> result = evaluator.evaluate_strings(prediction='{"a": 1, "b": 2}', reference='{"a": 1, "b": 3}')
>>> assert result["score"] is not None
引发:

ImportError:如果未安装`rapidfuzz`并且未提供替代的`string_distance`函数。

Attributes

evaluation_name

评估的名称。

requires_input

评估器是否需要输入字符串。

requires_reference

评估器是否需要参考标签。

Methods

__init__([string_distance, canonicalize])

aevaluate_strings(*, prediction[, ...])

异步评估Chain或LLM输出,基于可选的输入和标签。

evaluate_strings(*, prediction[, reference, ...])

评估链式或LLM输出,基于可选输入和标签。

Parameters
  • string_distance (Optional[Callable[[str, str], float]]) –

  • canonicalize (Optional[Callable[[Any], Any]]) –

  • kwargs (Any) –

Return type

None

__init__(string_distance: Optional[Callable[[str, str], float]] = None, canonicalize: Optional[Callable[[Any], Any]] = None, **kwargs: Any) None[source]
Parameters
  • string_distance (Optional[Callable[[str, str], float]]) –

  • canonicalize (Optional[Callable[[Any], Any]]) –

  • kwargs (Any) –

Return type

None

async aevaluate_strings(*, prediction: str, reference: Optional[str] = None, input: Optional[str] = None, **kwargs: Any) dict

异步评估Chain或LLM输出,基于可选的输入和标签。

参数:

prediction (str): 要评估的LLM或chain预测。 reference (Optional[str], optional): 要评估的参考标签。 input (Optional[str], optional): 评估过程中要考虑的输入。 **kwargs: 其他关键字参数,包括回调函数、标签等。

返回:

dict: 包含得分或值的评估结果。

Parameters
  • prediction (str) –

  • reference (Optional[str]) –

  • input (Optional[str]) –

  • kwargs (Any) –

Return type

dict

evaluate_strings(*, prediction: str, reference: Optional[str] = None, input: Optional[str] = None, **kwargs: Any) dict

评估链式或LLM输出,基于可选输入和标签。

参数:

prediction (str): 要评估的LLM或链预测。 reference (Optional[str], optional): 要评估的参考标签。 input (Optional[str], optional): 在评估过程中要考虑的输入。 **kwargs: 其他关键字参数,包括回调函数、标签等。

返回:

dict: 包含得分或值的评估结果。

Parameters
  • prediction (str) –

  • reference (Optional[str]) –

  • input (Optional[str]) –

  • kwargs (Any) –

Return type

dict

Examples using JsonEditDistanceEvaluator