Constructor ChatTurnStatus
ChatTurnStatus(EdgeChatStopReason, string, string?, int, int, int, int, int, TimeSpan, TimeSpan, double, EdgeThermalState, bool)
One turn's honest record, carried on the final ChatResponseUpdate and on the
ChatResponse under TurnStatus. One strongly-typed record
under one key, rather than seven loose string keys.
public ChatTurnStatus(EdgeChatStopReason StopReason, string ModelId, string? ConversationId, int PromptTokens, int PromptTokensAppended, int GeneratedTokens, int ContextTokens, int MessagesDropped, TimeSpan TimeToFirstToken, TimeSpan Duration, double TokensPerSecond, EdgeThermalState Thermal, bool ThermalThrottled)
Parameters
StopReasonEdgeChatStopReasonWhy the turn ended.
ModelIdstringThe model that produced it.
ConversationIdstringThe effective id for this response - the caller's if they supplied one, otherwise the one this client minted. Also on every
ChatResponseUpdate.ConversationId.PromptTokensintTotal sequence length the model conditioned on, after any conversation-cache append. Equal to
UsageDetails.InputTokenCounton the same response.PromptTokensAppendedintTokens actually encoded and appended this turn: equal to
PromptTokenson a fresh generator, and the delta alone on a conversation-cache hit.GeneratedTokensintTokens this turn produced.
ContextTokensintThe context the budget allowed.
MessagesDroppedintHow many messages history reduction evicted.
TimeToFirstTokenTimeSpanPrefill plus the first decode step.
DurationTimeSpanThe whole turn.
TokensPerSeconddoubleDecode throughput, excluding prefill.
ThermalEdgeThermalStateThe thermal state at the end of the turn, published verbatim -
Unknownis never normalised toNominal.ThermalThrottledboolWhether the decode was paced at any point.