Packages
agentsea_evaluate
0.1.0
AgentSea evaluate: concurrent evaluation metrics, including an LLM-as-judge metric.
Current section
Files
Jump to
Current section
Files
lib/agent_sea/evaluate/metric/exact_match.ex
defmodule AgentSea.Evaluate.Metric.ExactMatch do
@moduledoc "Scores 1.0 when the output equals the expected value (trimmed, case-insensitive)."
@behaviour AgentSea.Evaluate.Metric
@impl true
def name, do: "exact_match"
@impl true
def evaluate(%{output: output} = example, _opts) do
expected = Map.get(example, :expected)
score = if normalize(output) == normalize(expected), do: 1.0, else: 0.0
%{score: score, passed: score == 1.0}
end
defp normalize(value), do: value |> to_string() |> String.trim() |> String.downcase()
end