ExtractionRequestedModelConfig

data class ExtractionRequestedModelConfig constructor(val modelRole: String? = null, val requestedModel: String? = null, val temperature: Double? = null, val topP: Double? = null, val topK: Int? = null, val maxTokens: Int? = null, val presencePenalty: Double? = null, val frequencyPenalty: Double? = null, val thinkingFingerprint: String? = null, val selectionFingerprint: String? = null, val timeout: Duration? = null)

What the run asked for.

Everything here was decided before any call went out. Nothing here is evidence that a provider honoured it: a service can clamp a temperature, ignore a top-k, silently route to a different checkpoint, or cap max tokens below what was asked. What actually came back is ExtractionProviderResponseFacts, on the invocation record, and the two are separate types so that no field can hold both meanings and no mapper can drift one into the other. They share no property name, which is why the requested model is requestedModel and the reported one is responseModel.

Portable fields only. Every field here means the same thing across providers. There is no extension object, no provider settings blob, and no free map, because that is where credentials, system prompts, and whole SDK request bodies get persisted by accident. A provider-specific knob that matters to a host is folded into selectionFingerprint or thinkingFingerprint — an opaque digest DICE compares and never reads.

Ranges are checked where every provider agrees and left open where they do not. Temperature has no upper bound here because services differ on whether it stops at 1 or 2; the penalties are only required to be real numbers for the same reason.

The six hyperparameters are the framework's own LlmHyperparameters, not a lookalike copy, so a caller holding this record already holds something that reads as one. from builds one straight from an LlmOptions a host handed the model, and the record hands the same six values back through that interface.

EXPERIMENTAL. The shape may still change while extraction runs (DICE #67) land.

Constructors

Link copied to clipboard
constructor(modelRole: String? = null, requestedModel: String? = null, temperature: Double? = null, topP: Double? = null, topK: Int? = null, maxTokens: Int? = null, presencePenalty: Double? = null, frequencyPenalty: Double? = null, thinkingFingerprint: String? = null, selectionFingerprint: String? = null, timeout: Duration? = null)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open val frequencyPenalty: Double? = null

Requested frequency penalty

Link copied to clipboard
open val maxTokens: Int? = null

Requested output-token ceiling

Link copied to clipboard
val modelRole: String? = null

The host's name for the job this model was doing, such as extraction

Link copied to clipboard
open val presencePenalty: Double? = null

Requested presence penalty

Link copied to clipboard
val requestedModel: String? = null

The model name the host asked for

Link copied to clipboard

Opaque digest of how the host chose this model and these settings

Link copied to clipboard
open val temperature: Double? = null

Requested sampling temperature

Link copied to clipboard

Opaque digest of the reasoning or thinking configuration

Link copied to clipboard
val timeout: Duration? = null

How long the caller was prepared to wait

Link copied to clipboard
open val topK: Int? = null

Requested top-k cutoff

Link copied to clipboard
open val topP: Double? = null

Requested nucleus-sampling mass, between 0 and 1