nsmcp::QuestionService method toolEvidence (protected)
<instance of nsmcp::QuestionService> toolEvidence handle event
Defined in /usr/local/ns/tcl/nsmcp/question-service.tcl
- Parameters:
- handle (required)
- event (required)
- Testcases:
- No testcase defined.
Source code: set result [dict get $event result] set directory [file join ${:evidenceDirectory} $handle] set used 0 foreach path [glob -nocomplain -directory $directory *.json] {incr used [file size $path]} set bytes [string length [encoding convertto utf-8 $result]] dict set event result {} dict set event evidenceHandle {} if {$used+$bytes>${:maxEvidenceBytes}} { dict set event result {Evidence omitted: conversation evidence storage limit reached.} dict set event truncated true return $event } set temporary {} set channel {} if {[catch { if {![file exists $directory]} {file mkdir $directory; file attributes $directory -permissions 0700} set id [ns_crypto::randombytes -encoding hex 16] set channel [file tempfile temporary [file join $directory pending-]] file attributes $temporary -permissions 0600 fconfigure $channel -encoding utf-8 -translation lf puts -nonewline $channel $result close $channel set channel {} file rename $temporary [file join $directory $id.json] dict set event evidenceHandle $id # Tiny results remain inline for older admin clients and cheap polling. if {$bytes<=4096} {dict set event result $result} } reason]} { if {$channel ne ""} {catch {close $channel}} if {$temporary ne ""} {catch {file delete $temporary}} ns_log warning "nsmcp: question evidence could not be retained: $reason" dict set event result {Evidence unavailable: storage failed. The model may still have used this result.} dict set event truncated true } return $eventXQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)