Extraction Requested Model Config
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
Properties
Requested frequency penalty
Requested presence penalty
The model name the host asked for
Opaque digest of how the host chose this model and these settings
Requested sampling temperature
Opaque digest of the reasoning or thinking configuration