<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "visionOS: 27.0.0 -",
    "watchOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Evaluations",
  "identifier" : "/documentation/Evaluations/ModelJudgeEvaluator",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Evaluations"
    ],
    "preciseIdentifier" : "s:11Evaluations19ModelJudgeEvaluatorV"
  },
  "title" : "ModelJudgeEvaluator"
}
-->

# ModelJudgeEvaluator

An evaluator that uses a language model as a judge to score responses.

```
struct ModelJudgeEvaluator<Input> where Input : ModelSampleProtocol
```

## Overview

`ModelJudgeEvaluator` sends the query, response, and optional reference data to a judge model,
which returns scores for one or more dimensions. The response is automatically serialized
as JSON, because `OutputType` is `Codable`, or is customizable via [`ModelJudgePrompt`](/documentation/Evaluations/ModelJudgePrompt).

## Topics

### Creating a single-dimension evaluator

[`init(_:scale:judge:scoringMode:)`](/documentation/Evaluations/ModelJudgeEvaluator/init(_:scale:judge:scoringMode:))

Creates a single-metric evaluator with default prompt configuration.

[`init(_:scale:judge:scoringMode:prompt:)`](/documentation/Evaluations/ModelJudgeEvaluator/init(_:scale:judge:scoringMode:prompt:))

Creates a single-metric evaluator with a custom judge prompt.

### Creating a multi-dimension evaluator

[`init(judge:dimensions:scoringMode:)`](/documentation/Evaluations/ModelJudgeEvaluator/init(judge:dimensions:scoringMode:))

Creates a multi-metric evaluator with default prompt configuration.

[`init(judge:dimensions:scoringMode:prompt:)`](/documentation/Evaluations/ModelJudgeEvaluator/init(judge:dimensions:scoringMode:prompt:))

Creates a multi-metric evaluator with a custom judge prompt.

### Creating a pairwise evaluator

[`pairwise(_:scale:judge:scoringMode:evaluationTarget:)`](/documentation/Evaluations/ModelJudgeEvaluator/pairwise(_:scale:judge:scoringMode:evaluationTarget:))

Creates a pairwise comparison evaluator that compares the model’s response against the sample’s expected value.

[`pairwise(judge:dimensions:scoringMode:evaluationTarget:)`](/documentation/Evaluations/ModelJudgeEvaluator/pairwise(judge:dimensions:scoringMode:evaluationTarget:))

Creates a multi-metric pairwise comparison evaluator.

### Configuring the judge prompt

[`defaultInstructions`](/documentation/Evaluations/ModelJudgeEvaluator/defaultInstructions)

The default system instructions the model uses when no custom instructions are provided.

[`judgePrompt(for:output:)`](/documentation/Evaluations/ModelJudgeEvaluator/judgePrompt(for:output:))

Builds and returns the full judge prompt for inspection, debugging, or logging.

### Inspecting the evaluator

[`dimensions`](/documentation/Evaluations/ModelJudgeEvaluator/dimensions)

The dimensions this evaluator scores.

[`scoringMode`](/documentation/Evaluations/ModelJudgeEvaluator/scoringMode)

The scoring constraint mode. See [`ScoringMode`](/documentation/Evaluations/ScoringMode).

[`ScoringMode`](/documentation/Evaluations/ScoringMode)

The scoring constraint mode for a model-as-judge evaluator.

### Errors

[`ModelJudgeError`](/documentation/Evaluations/ModelJudgeError)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)