ShadowReport

class ShadowReport(val scope: String, val prompt: String, val decisions: List<ShadowDecision>)

What the cache would have done for one prompt, at each threshold it was asked about.

ThresholdCalibrator answers "which threshold is right?" but needs a labelled set, so the honest answer to a team standing at the door is "measure it, on data you first have to build". That first step, not the cache, is what stops a semantic cache going in front of production traffic.

Shadow mode removes it. The cache runs the whole lookup against real traffic, serves nothing, and reports the decision at every threshold in one pass, so the output is the team's own precision and recall curve against their own questions rather than somebody else's corpus.

Constructors

Link copied to clipboard
constructor(scope: String, prompt: String, decisions: List<ShadowDecision>)

Properties

Link copied to clipboard

One decision per configured threshold, in the order they were configured.

Link copied to clipboard

The prompt that was judged.

Link copied to clipboard

The scope the shadow lookup ran in.

Functions

Link copied to clipboard
open override fun toString(): String