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