Skip to documentation
Documentation navigation

Documentation navigation

Documentation / guides

Exact local counters

Describe an in-process exact counter and its no-retention capability.

developer

An exact local counter runs in the same process as the caller and does not send request bytes to a provider. It still has to declare its tokenizer revision and quality; “local” describes transport, not accuracy.

Definition

counter := contextcount.ContextCounterFunc{
	Count: func(ctx context.Context, req inference.Request) (contextcount.ContextCount, error) {
		return contextcount.ContextCount{
			Model: req.Model.Key(), InputTokens: exact(req),
			Quality: contextcount.CountQualityExactLocal,
		}, nil
	},
	Capability: contextcount.CounterCapability{
		Transport: contextcount.CounterTransportLocal,
		Retention: contextcount.RetentionNone,
		TokenizerRev: "tokenizer-v1",
		Quality: contextcount.CountQualityExactLocal,
	},
}

The callback must honor context cancellation at its own boundaries and return the request model key. ContextCounterFunc rejects a nil callback, invalid quality, model mismatch, or quality mismatch.

Posture

For a provider-neutral local counter, Provider and SecurityIdentity remain zero, transport is Local, and retention is None. That combination is recognized as provider-neutral by CompatibleCounter and does not weaken a valid inference capability.

Source and proof

Run go test ./contextcount.

← back to documentation