<!--
{
  "availability" : [
    "Xcode: 27.0.0 -",
    "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/SampleGenerator",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Evaluations"
    ],
    "preciseIdentifier" : "s:11Evaluations15SampleGeneratorC"
  },
  "title" : "SampleGenerator"
}
-->

# SampleGenerator

An actor that generates evaluation samples using a language model.

```
actor SampleGenerator<SampleType> where SampleType : ModelSampleProtocol
```

## Overview

To produce new samples, create an instance, configure its properties, and call [`run()`](/documentation/Evaluations/SampleGenerator/run()).
After iteration completes, access [`samples`](/documentation/Evaluations/SampleGenerator/samples) for the full dataset, or [`invalidSamples`](/documentation/Evaluations/SampleGenerator/invalidSamples)
for any samples the validator rejected.

## Topics

### Creating a generator

[`init(_:samples:targetCount:sessionProvider:samplingStrategy:validator:)`](/documentation/Evaluations/SampleGenerator/init(_:samples:targetCount:sessionProvider:samplingStrategy:validator:)-2804x)

Creates a generator for custom, generable evaluation samples.

[`init(_:samples:targetCount:sessionProvider:samplingStrategy:validator:)`](/documentation/Evaluations/SampleGenerator/init(_:samples:targetCount:sessionProvider:samplingStrategy:validator:)-8t01x)

Creates a generator for sample values with a generable-expected value type.

### Configuring generation

[`samplingStrategy`](/documentation/Evaluations/SampleGenerator/samplingStrategy-swift.property)

The strategy for selecting existing samples as examples in the prompt.

[`validator`](/documentation/Evaluations/SampleGenerator/validator)

An optional closure that decides whether a generated sample is valid.

[`SamplingStrategy`](/documentation/Evaluations/SampleGenerator/SamplingStrategy-swift.enum)

The values that define how the generator selects existing samples as examples in the generation prompt.

### Running generation

[`run()`](/documentation/Evaluations/SampleGenerator/run())

Runs the generator and returns a stream of newly synthesized samples.

### Accessing results

[`samples`](/documentation/Evaluations/SampleGenerator/samples)

All initial and generated samples from the most recent run.

[`invalidSamples`](/documentation/Evaluations/SampleGenerator/invalidSamples)

Samples that the validator rejected during the most recent run.

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`Actor`](/documentation/Swift/Actor)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

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)