Aludel.Evals.Metric behaviour (aludel v0.5.2)

Copy Markdown View Source

Contract and shared helpers for evaluation metrics.

Metrics return a normalized result. Compatibility with historical assertion result maps is handled by Aludel.Evals.AssertionEvaluator.

Summary

Types

json_value()

@type json_value() ::
  nil
  | boolean()
  | number()
  | String.t()
  | [json_value()]
  | %{optional(String.t()) => json_value()}

Callbacks

evaluate(t, map)

@callback evaluate(String.t(), map()) :: Aludel.Evals.Metric.Result.t()

type()

@callback type() :: String.t()

Functions

boolean_result(type, passed, success_reason, failure_reason, metadata \\ %{})

@spec boolean_result(String.t(), boolean(), String.t(), String.t(), map()) ::
  Aludel.Evals.Metric.Result.t()

compare_json_values(actual, expected)

@spec compare_json_values(term(), term()) :: boolean()

decode_json(output)

@spec decode_json(String.t()) :: {:ok, json_value()} | {:error, Jason.DecodeError.t()}

invalid_result(type)

@spec invalid_result(String.t()) :: Aludel.Evals.Metric.Result.t()

normalize_threshold(arg1)

@spec normalize_threshold(map()) :: float()