RunEvalConfig#

class langchain.smith.evaluation.config.RunEvalConfig[source]#

Bases: BaseModel

Configuration for a run evaluation.

Parameters:
  • evaluators (List[Union[EvaluatorType, EvalConfig, RunEvaluator, Callable]]) – Configurations for which evaluators to apply to the dataset run. Each can be the string of an EvaluatorType, such as EvaluatorType.QA, the evaluator type string (“qa”), or a configuration for a given evaluator (e.g., RunEvalConfig.QA).

  • custom_evaluators (Optional[List[Union[RunEvaluator, StringEvaluator]]]) – Custom evaluators to apply to the dataset run.

  • reference_key (Optional[str]) – The key in the dataset run to use as the reference string. If not provided, it will be inferred automatically.

  • prediction_key (Optional[str]) – The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

  • input_key (Optional[str]) – The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

  • eval_llm (Optional[BaseLanguageModel]) – The language model to pass to any evaluators that use a language model.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param batch_evaluators: List[Callable[[Sequence[Run], Sequence[Example] | None], EvaluationResult | EvaluationResults | dict]] | None = None#

Evaluators that run on an aggregate/batch level.

These generate 1 or more metrics that are assigned to the full test run. As a result, they are not associated with individual traces.

param custom_evaluators: List[Callable[[Run, Example | None], EvaluationResult | EvaluationResults | dict] | RunEvaluator | StringEvaluator] | None = None#

Custom evaluators to apply to the dataset run.

param eval_llm: BaseLanguageModel | None = None#

The language model to pass to any evaluators that require one.

param evaluators: List[EvaluatorType | str | EvalConfig | Callable[[Run, Example | None], EvaluationResult | EvaluationResults | dict] | RunEvaluator | StringEvaluator] [Optional]#

Configurations for which evaluators to apply to the dataset run. Each can be the string of an EvaluatorType, such as EvaluatorType.QA, the evaluator type string (“qa”), or a configuration for a given evaluator (e.g., RunEvalConfig.QA).

param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

class CoTQA[source]#

Bases: SingleKeyEvalConfig

Configuration for a context-based QA evaluator.

Parameters:
  • prompt (Optional[BasePromptTemplate]) – The prompt template to use for generating the question.

  • llm (Optional[BaseLanguageModel]) – The language model to use for the evaluation chain.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.CONTEXT_QA#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param prompt: BasePromptTemplate | None = None#
param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class ContextQA[source]#

Bases: SingleKeyEvalConfig

Configuration for a context-based QA evaluator.

Parameters:
  • prompt (Optional[BasePromptTemplate]) – The prompt template to use for generating the question.

  • llm (Optional[BaseLanguageModel]) – The language model to use for the evaluation chain.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.CONTEXT_QA#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param prompt: BasePromptTemplate | None = None#
param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class Criteria[source]#

Bases: SingleKeyEvalConfig

Configuration for a reference-free criteria evaluator.

Parameters:
  • criteria (Optional[CRITERIA_TYPE]) – The criteria to evaluate.

  • llm (Optional[BaseLanguageModel]) – The language model to use for the evaluation chain.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param criteria: Mapping[str, str] | Criteria | ConstitutionalPrinciple | None = None#
param evaluator_type: EvaluatorType = EvaluatorType.CRITERIA#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class EmbeddingDistance[source]#

Bases: SingleKeyEvalConfig

Configuration for an embedding distance evaluator.

Parameters:
  • embeddings (Optional[Embeddings]) – The embeddings to use for computing the distance.

  • distance_metric (Optional[EmbeddingDistanceEnum]) – The distance metric to use for computing the distance.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param distance_metric: EmbeddingDistance | None = None#
param embeddings: Embeddings | None = None#
param evaluator_type: EvaluatorType = EvaluatorType.EMBEDDING_DISTANCE#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class ExactMatch[source]#

Bases: SingleKeyEvalConfig

Configuration for an exact match string evaluator.

Parameters:
  • ignore_case (bool) – Whether to ignore case when comparing strings.

  • ignore_punctuation (bool) – Whether to ignore punctuation when comparing strings.

  • ignore_numbers (bool) – Whether to ignore numbers when comparing strings.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.EXACT_MATCH#
param ignore_case: bool = False#
param ignore_numbers: bool = False#
param ignore_punctuation: bool = False#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class JsonEqualityEvaluator[source]#

Bases: EvalConfig

Configuration for a json equality evaluator.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.JSON_EQUALITY#
get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class JsonValidity[source]#

Bases: SingleKeyEvalConfig

Configuration for a json validity evaluator.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.JSON_VALIDITY#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class LabeledCriteria[source]#

Bases: SingleKeyEvalConfig

Configuration for a labeled (with references) criteria evaluator.

Parameters:
  • criteria (Optional[CRITERIA_TYPE]) – The criteria to evaluate.

  • llm (Optional[BaseLanguageModel]) – The language model to use for the evaluation chain.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param criteria: Mapping[str, str] | Criteria | ConstitutionalPrinciple | None = None#
param evaluator_type: EvaluatorType = EvaluatorType.LABELED_CRITERIA#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class LabeledScoreString[source]#

Bases: ScoreString

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param criteria: CRITERIA_TYPE | None = None#
param evaluator_type: EvaluatorType = EvaluatorType.LABELED_SCORE_STRING#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param normalize_by: float | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param prompt: BasePromptTemplate | None = None#
param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class QA[source]#

Bases: SingleKeyEvalConfig

Configuration for a QA evaluator.

Parameters:
  • prompt (Optional[BasePromptTemplate]) – The prompt template to use for generating the question.

  • llm (Optional[BaseLanguageModel]) – The language model to use for the evaluation chain.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.QA#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param prompt: BasePromptTemplate | None = None#
param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class RegexMatch[source]#

Bases: SingleKeyEvalConfig

Configuration for a regex match string evaluator.

Parameters:

flags (int) – The flags to pass to the regex. Example: re.IGNORECASE.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param evaluator_type: EvaluatorType = EvaluatorType.REGEX_MATCH#
param flags: int = 0#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class ScoreString[source]#

Bases: SingleKeyEvalConfig

Configuration for a score string evaluator. This is like the criteria evaluator but it is configured by default to return a score on the scale from 1-10.

It is recommended to normalize these scores by setting normalize_by to 10.

Parameters:
  • criteria (Optional[CRITERIA_TYPE]) – The criteria to evaluate.

  • llm (Optional[BaseLanguageModel]) – The language model to use for the evaluation chain.

  • normalize_by (Optional[int] = None) – If you want to normalize the score, the denominator to use. If not provided, the score will be between 1 and 10 (by default).

  • prompt (Optional[BasePromptTemplate])

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param criteria: Mapping[str, str] | Criteria | ConstitutionalPrinciple | None = None#
param evaluator_type: EvaluatorType = EvaluatorType.SCORE_STRING#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param llm: BaseLanguageModel | None = None#
param normalize_by: float | None = None#
param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param prompt: BasePromptTemplate | None = None#
param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]

class StringDistance[source]#

Bases: SingleKeyEvalConfig

Configuration for a string distance evaluator.

Parameters:

distance (Optional[StringDistanceEnum]) – The string distance metric to use.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

param distance: StringDistance | None = None#

The string distance metric to use. damerau_levenshtein: The Damerau-Levenshtein distance. levenshtein: The Levenshtein distance. jaro: The Jaro distance. jaro_winkler: The Jaro-Winkler distance.

param evaluator_type: EvaluatorType = EvaluatorType.STRING_DISTANCE#
param input_key: str | None = None#

The key from the traced run’s inputs dictionary to use to represent the input. If not provided, it will be inferred automatically.

param normalize_score: bool = True#

Whether to normalize the distance to between 0 and 1. Applies only to the Levenshtein and Damerau-Levenshtein distances.

param prediction_key: str | None = None#

The key from the traced run’s outputs dictionary to use to represent the prediction. If not provided, it will be inferred automatically.

param reference_key: str | None = None#

The key in the dataset run to use as the reference string. If not provided, we will attempt to infer automatically.

get_kwargs() Dict[str, Any]#

Get the keyword arguments for the load_evaluator call.

Returns:

The keyword arguments for the load_evaluator call.

Return type:

Dict[str, Any]