nsmcp::usageRecord

 nsmcp::usageRecord

Defined in

Partial Call Graph (max 5 caller/called nodes):
::nsmcp::QuestionService ::nsmcp::QuestionService nsmcp::usageRecord nsmcp::usageRecord ::nsmcp::QuestionService->nsmcp::usageRecord Class Class Class->nsmcp::usageRecord nsmcp::QuestionService instproc recordUsage nsmcp::QuestionService instproc recordUsage (protected) nsmcp::QuestionService instproc recordUsage->nsmcp::usageRecord nsmcp::questionUsageCounters nsmcp::questionUsageCounters nsmcp::usageRecord->nsmcp::questionUsageCounters

Testcases:
No testcase defined.
Source code:
    set tokens {}
    set usable false
    set complete false
    if {[dict exists $turn questionUsage]} {
        set usage [dict get $turn questionUsage]
        set usable [expr {[dict exists $usage scope] && [dict get $usage scope] eq "turn"
            && [dict exists $usage available] && [dict get $usage available]}]
        set complete $usable
    } elseif {[dict exists $turn usage scope] && [dict get $turn usage scope] eq "turn"} {
        set usage [dict get $turn usage]
        set usable true
        set complete [expr {[dict exists $usage complete] && [dict get $usage complete]}]
    }
    if {$usable} {
        set tokens [::nsmcp::questionUsageCounters $usage {
            inputTokens inputTokens outputTokens outputTokens totalTokens totalTokens
            cachedInputTokens cachedInputTokens reasoningOutputTokens reasoningOutputTokens
        }]
    }
    set state unavailable
    if {[dict size $tokens] > 0} {
        set state partial
        if {$complete && [dict get $turn status] eq "complete"
            && [dict exists $tokens inputTokens] && [dict exists $tokens outputTokens]
            && [dict exists $tokens totalTokens]} {
            set state complete
        }
    }
    set model [expr {[dict exists $turn model] && [dict get $turn model] ne "" ? [dict get $turn model] : "unknown"}]
    set result [dict create version 1 timestamp $timestamp state $state model $model tokens $tokens]
    foreach key {server backend principal} {
        dict set result $key [dict get $record $key]
    }
    foreach key {conversation id} {
        dict set result $key [dict get $turn $key]
    }
    return $result
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: