Skip to content

How to run local SLM inference

The PointSav inference stack runs a small language model locally via the Doorman gateway. All inference stays on the operator's hardware — no prompt data leaves the deployment. This guide covers starting the local SLM service, verifying the Doorman health endpoint, and submitting an inference request — both from the console TUI and directly via the API.

For the inference stack architecture, see slm-stack-architecture and doorman-protocol. For the console cartridge that surfaces local inference in the TUI, see app-console-slm.

Prerequisites

  • A deployment with the OLMo model binary installed at the expected path (see self-host-a-deployment)
  • The slm-doorman-server service running and healthy
  • A session with at least USER-level access (see pair-a-new-device)

Step 1: Start the SLM service

If the SLM service is not already running, start it:

sudo systemctl start slm-doorman-server

Verify it started cleanly:

systemctl is-active slm-doorman-server
journalctl -u slm-doorman-server --since "1 minute ago"

A healthy start produces a log line indicating the model loaded and the Doorman is listening on its configured port. If the service fails to start, check the model binary path in the service configuration — the OLMo binary must be present at the path the service expects.

Step 2: Verify Doorman health from the console

Press F9 in the console to open the SLM Cartridge. The Doorman health dashboard shows:

  • A — DataGraph: availability of the entity store (not required for pure inference)
  • B — SLM: should show green once the model is loaded and Doorman is reachable
  • C — Local fallback: always available; used when Tier B is degraded

Tier B must be green before inference requests will succeed. Press R to refresh the health status.

Step 3: Submit an inference request from the console

With Tier B live, submit a prompt at the F9 input line. Type your prompt text and press Enter. The model response streams token-by-token into the output area. The status bar shows the active inference tier (B) during generation.

Inference requests through the console are SYS-ADR-07-safe — no structured platform data passes through the model layer. The model receives plain prompt text only.

Step 4: Submit an inference request directly via API

For programmatic use, call the Doorman inference endpoint:

curl -X POST http://127.0.0.1:<doorman-port>/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <session-token>" \
  -d '{
    "prompt": "Summarise the role of the Doorman gateway:",
    "max_tokens": 200
  }'

The response is a JSON object with a choices array. Each choice contains the generated text. The model field in the response confirms which tier served the request.

Step 5: Check the circuit breaker state

The Doorman circuit breaker opens automatically if the SLM service becomes unresponsive. When open, all inference requests fall through to Tier C (local fallback). To check the circuit state:

curl http://127.0.0.1:<doorman-port>/health

The response includes tier_b_state: CLOSED (healthy) or OPEN (tripped). A tripped circuit resets after the configured cool-down period, or immediately after the SLM service recovers.

Key takeaways

  • All inference runs on-premises; no prompt data leaves the deployment
  • Tier B (SLM) must show green in the F9 health dashboard before inference requests succeed
  • The Doorman circuit breaker falls back to Tier C automatically when the model is unresponsive
  • SYS-ADR-07 applies: do not pass structured platform data (entity records, WORM entries) through the model layer

See also

Important Information

Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is a trade name of Woodfine Capital Projects Inc. ("Woodfine"). PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. See TRADEMARK.md in this repository for the full trademark notice.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →