nsmcp::QuestionService object method setup (public)
nsmcp::QuestionServicesetup moduleDirectory
Defined in /usr/local/ns/tcl/nsmcp/question-service.tcl
- Parameters:
- moduleDirectory (required)
- Testcases:
- No testcase defined.
Source code: if {![ns_config -bool ${:section} enableQuestions false]} {return} if {![nsf::object::exists ::nsmcp::tools]} {error "Questions require the configured nsmcp HTTP endpoint"} set backend [ns_config ${:section} questionBackend codex] if {$backend ni {codex chat-completions}} {error "Unsupported question backend: $backend"} set lifetime [ns_baseunit -time [ns_config ${:section} questionLifetime 1h]] if {$lifetime < 1} {error "questionLifetime must be positive"} set maxBytes [ns_baseunit -size [ns_config ${:section} questionMaxBytes 2MiB]] set maxEvidence [ns_baseunit -size [ns_config ${:section} questionMaxEvidenceBytes 16MiB]] if {$maxBytes<65536 || $maxEvidence<1024} {error "questionMaxBytes requires at least 64KiB; questionMaxEvidenceBytes requires at least 1KiB"} set evidenceDirectory [ns_config ${:section} questionEvidenceDirectory [file join [ns_info home] data nsmcp-question-evidence [ns_info server]]] if {[file pathtype $evidenceDirectory] ne "absolute"} {error "questionEvidenceDirectory must be absolute"} :createBackend $backend $moduleDirectory ::nsmcp::questionBackend set backends [dict create $backend ::nsmcp::questionBackend] set errors {} foreach candidate {codex chat-completions} { if {$candidate eq $backend} {continue} set object ::nsmcp::questionBackend_[string map {- _} $candidate] if {[catch {:createBackend $candidate $moduleDirectory $object} reason]} { if {[nsf::object::exists $object]} {$object destroy} dict set errors $candidate [string range $reason 0 1023] } else { dict set backends $candidate $object } } :create ::nsmcp::questions -backend ::nsmcp::questionBackend -backends $backends -backendErrors $errors -store nsmcp:questions:[ns_info server] -queue nsmcp-questions-[ns_info server] -lifetime $lifetime -maxBytes $maxBytes -maxEvidenceBytes $maxEvidence -evidenceDirectory $evidenceDirectory -maxConversations [ns_config -int -min 1 ${:section} questionMaxConversations 20] -maxTurns [ns_config -int -min 1 ${:section} questionMaxTurns 20]XQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)