- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
Class ::nsmcp::ChatCompletionsBackend
::nsmcp::ChatCompletionsBackendcreate ... \
[ -apiKeyFile:required apiKeyFile:required ] \
[ -apiOptions (default "{} object {}") ] \
[ -apiUrl:required apiUrl:required ] \
[ -authenticator (default "::nsmcp::auth") ] \
[ -authorizer (default "::nsmcp::authorization") ] \
[ -maxApiRequests (default "16") ] \
[ -maxHistoryBytes (default "1048576") ] \
[ -maxOutputTokens (default "4096") ] \
[ -maxResponseBytes (default "8388608") ] \
[ -maxResultBytes (default "131072") ] \
[ -maxToolCalls (default "32") ] \
[ -model:required model:required ] \
[ -mutex mutex ] \
[ -registry (default "::nsmcp::tools") ] \
[ -streamStore (default "") ] \
[ -timeout (default "180") ] \
[ -tokenFile:required tokenFile:required ]
Defined in /usr/local/ns/tcl/nsmcp/question-chat-completions.tcl
Class Relations
Methods (to be applied on instances)
describe (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> describe
Describe the configured streaming chat-completions backend. Report provider settings and request limits without sending an API request.
- Returns:
- The backend metadata dictionary.
- Testcases:
- No testcase defined.
run (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> run question state \ emit
Execute a question through a temporary chat-completions runner. Forward the question, retained state and event callback; destroy the runner on every exit.
- Parameters:
- question (required)
- Question text supplied to the selected provider.
- state (required)
- Opaque retained provider continuation or scan state.
- emit (required)
- Event callback prefix; returning false requests cancellation.
- Returns:
- The runner's completion or continuation result.
- Testcases:
- No testcase defined.
streamClose (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> streamClose key
Release shared state for a completed or aborted stream. Remove the buffer entry under the mutex; tolerate a key already removed by cleanup.
- Parameters:
- key (required)
- Retained stream or configuration key.
- Returns:
- The stream cleanup result.
- Testcases:
- No testcase defined.
streamData (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> streamData key \ fields
Append bounded bytes from a streamed HTTP response. Serialize buffer and byte-counter updates and retain explicit overflow/error state.
- Parameters:
- key (required)
- Retained stream or configuration key.
- fields (required)
- HTTP callback dictionary containing newly received data.
- Returns:
- The callback update result.
- Testcases:
- No testcase defined.
streamDrain (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> streamDrain key
Drain currently buffered response bytes. Swap out buffered data under the shared mutex while retaining response metadata and total-byte counters.
- Parameters:
- key (required)
- Retained stream or configuration key.
- Returns:
- The stream-state dictionary containing the drained data.
- Testcases:
- No testcase defined.
streamHeaders (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> streamHeaders key \ fields
Record streamed HTTP response headers. Update status and content type under the shared response-buffer mutex while the stream remains active.
- Parameters:
- key (required)
- Retained stream or configuration key.
- fields (required)
- HTTP callback dictionary containing response status and headers.
- Returns:
- The callback update result.
- Testcases:
- No testcase defined.
streamOpen (scripted, public)
<instance of nsmcp::ChatCompletionsBackend> streamOpen
Allocate shared state for a streamed HTTP response. Create an independent response buffer and counters before registering response callbacks.
- Returns:
- The new stream-state key.
- Testcases:
- No testcase defined.
- Methods: All Methods Documented Methods Hide Methods
- Source: Display Source Hide Source
- Variables: Show Variables Hide Variables
![[i]](/resources/acs-subsite/ZoomIn16.gif)