nsmcp::ChatCompletionsRun method compactHistory (protected)
<instance of nsmcp::ChatCompletionsRun> compactHistory history \ [ finished ]
Defined in /usr/local/ns/tcl/nsmcp/question-chat-completions.tcl
- Parameters:
- history (required)
- finished (optional, defaults to
"false")- Testcases:
- No testcase defined.
Source code: set limit [${:backend} cget -maxHistoryBytes] set target [expr {$finished ? $limit/2 : $limit}] set bytes [string bytelength $history] for {set i 0} {$i<[llength $history]} {incr i} { if {$bytes<=$target} {break} set message [lindex $history $i] set value [ns_json parse [ns_json value -- [list {} object $message]]] if {[dict get $value role] ne "tool" || ![dict exists $value content]} {continue} set content [dict get $value content] if {[string bytelength $content]<=256} {continue} set replacement [ns_json value -- {{} object {evidenceOmitted boolean true reason string {Older tool body removed from model history; inspect retained evidence or query again. Do not infer absent details.}}}] set next {} foreach {key type data} $message { if {$key eq "content"} {set data $replacement} lappend next $key $type $data } set history [lreplace $history $i $i $next] set bytes [string bytelength $history] } if {$bytes>$limit} {error "Question model-history limit reached; start a new conversation"} return $historyXQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)