44 lines
2.3 KiB
Markdown
44 lines
2.3 KiB
Markdown
# Token Meter
|
|
|
|
English | [中文](token-meter.zh.md)
|
|
|
|
`@deepseek-ai/dsh-token-meter` exposes one detached replay snapshot for request pressure and positional surface pricing. `logRevision` is the number of durable events consumed for every field in the measurement.
|
|
|
|
Source: [`packages/llm/token-meter/src/types.ts`](../../packages/llm/token-meter/src/types.ts)
|
|
|
|
## `TokenMeasurement`
|
|
|
|
```ts type-equiv
|
|
/** Detached immutable request-pressure and surface snapshot at one consumed log revision. */
|
|
interface TokenMeasurement {
|
|
/** Number of durable events consumed; equal to the next unread event seq. */
|
|
readonly logRevision: number
|
|
/** Provider or heuristic anchor used for this measurement. */
|
|
readonly baseline: TokenMeasurementBaseline
|
|
/** Signed repricing of current surface content relative to the baseline anchor. */
|
|
readonly surfaceDeltaTokens: number
|
|
/** Non-negative current request-and-response pressure. */
|
|
readonly totalTokens: number
|
|
/** Total heuristic tokens across the current surface. */
|
|
readonly surfaceTokens: number
|
|
/** Current surface nodes in positional head-to-tail order. */
|
|
readonly nodes: readonly TokenSurfaceNode[]
|
|
}
|
|
```
|
|
|
|
`baseline.kind === 'usage'` means the latest successful provider call has the same canonical request envelope and its total is no lower than that call's full heuristic anchor. `estimated` means no reusable conservative usage anchor exists, so the service priced the complete envelope and surface with its fixed heuristic. A later successful request replaces the earlier anchor; signed `surfaceDeltaTokens` preserves growth and shrinkage relative to a matching anchor. `totalTokens` remains request-and-response pressure, while `surfaceTokens` is the surface-only heuristic total and equals the sum of the node prices.
|
|
|
|
## `TokenSurfaceNode`
|
|
|
|
```ts type-equiv
|
|
/** One token-priced node in the current ordered session surface. */
|
|
interface TokenSurfaceNode {
|
|
/** Durable sequence number of the surface event. */
|
|
readonly seq: number
|
|
/** Heuristic tokens for the exact message projected by this node. */
|
|
readonly tokens: number
|
|
}
|
|
```
|
|
|
|
Surface order is authoritative; replacement nodes can have higher durable seqs than later positional nodes. The snapshot is immutable and does not grow when the underlying replay fold advances.
|