Configure in the web app
Open Settings > Archive configuration > Classification during or after setup and choose:- Local model for Ollama or another endpoint on the trusted network
- Hosted endpoint for a provider on the public internet
Local Ollama
The shipped Compose network mapshost.suchi.local to the host, so the default
works when Ollama listens on port 11434:
http://127.0.0.1:11434/v1. A local endpoint needs no key or egress
acknowledgement.
Equivalent environment fallback:
Hosted providers
Hosted endpoints requireLLM_EGRESS_ACK=true or the matching web checkbox.
Gemini must use its OpenAI-compatible endpoint. Azure uses the deployment name
as the model. Set
LLM_API_KEY or mount a key file through
LLM_API_KEY_FILE for unattended startup.
Classification and Archive research request OpenAI-compatible
response_format: {"type":"json_object"} output before applying their own
schema validation. A provider or gateway that rejects this field is not
compatible with the configured model path. Claude requires an
OpenAI-compatible gateway; Suchi does not call Anthropic’s native Messages API.
Kimi, Qwen, Ollama, and similar providers work when their OpenAI-compatible
endpoint accepts JSON-object response mode.
Egress boundary
For hosted model assistance, Suchi sends:- extracted text from the current document
- bounded filing context and a small set of similar-document titles
- the requested structured-output instructions
archive_intelligence—bounded accepted fact value and
evidence. Only cited context is reauthorized. Sensitive snippets require
explicit per-conversation consent.
It does not send original PDF or image bytes, unrelated archive content,
ownership, ACLs, storage paths, or backup information.
Loopback, private-network, link-local, .local, and .localhost hosts are
treated as local. Every other host requires acknowledgement and appears in the
redacted egress inventory and boundary logs.
Validation and confidence
Suchi accepts only validated JSON contracts. Text lengths, tag count, language shape, confidence ranges, JD code, extracted date count and calendar values, evidence quotes, and archive-research citations are bounded before persistence or rendering. Invalid provider output fails without exposing raw output or document text in logs or API errors. The confidence threshold ranges from0.50 to 0.95 in 0.05 steps and
defaults to 0.70.
At or above the threshold:
- a validated suggested title replaces the current title;
- an unset correspondent can be filled;
- tags are added; an earlier classifier-owned
needs-reviewtag is removed when the new result no longer requests it; - the JD category changes only while the document remains in the inbox.
needs-review tag, and a changed title is offered as an approval assigned to
the document owner.
Automatic review-tag cleanup depends on a successful classification at or above
the threshold, not on whether the document has a descriptive title. Failed
requests, low-confidence results, and results that still include needs-review
retain the marker. Other tags are never removed by classification.
Suchi tracks ownership only when the classifier creates a new review-tag
assignment. Existing assignments retain their ownership; adding the same tag
manually, accepting a tag suggestion, or assigning it through a rule makes it
independent of the classifier. Renaming its name or slug also preserves existing
assignments. Tags from imports and older versions have no classifier ownership
and are not automatically cleared. They can be removed explicitly after review.
Test and live reload
Test connection sends fixed synthetic text and validates the response with the production parser. It returns latency and sanitized synthetic fields only. It does not save settings, send archive content, or reveal raw provider output. Saving local archive settings or the model’s enabled state, endpoint, model, key, timeout, acknowledgement, confidence, or automatic Calendar-date option applies immediately. No Suchi restart is required. Date-setting effects are documented under Document dates. Other setting changes affect new ingests and explicit rescans; they never start an automatic archive-wide model backfill. Select older documents in Documents and use Rescan when they need processing again. Config-file and environment values take precedence over stored web settings on a field-by-field basis, following the documented configuration precedence. Unpinned fields still reload live. Prefer one management path per deployment so partial overrides remain easy to reason about.Pipeline versions and rescans
Each classification recordspipeline_version_llm. A code, output-schema, or
prompt revision can bump that version and create a stale-results proposal.
Changing endpoint, model, key, timeout, or threshold does not mark the archive
stale.
Version 0 means classification never completed. Valid low-confidence results
receive the current version plus needs-review; they are completed results,
not failed or unprocessed documents. Automatic upgrade proposals exclude
version-zero documents, while an explicit selected or CLI rescan may include
them.
For version-driven command-line rescans:
Archive research and extracted facts
Administrators havearchive_chat and archive_intelligence implicitly and
may grant either capability to members. Archive research performs bounded FTS5
retrieval, reauthorizes follow-up source IDs, and validates a structured
answer/citation contract. It has no model tools or write actions.
Its citation check verifies format and source numbers, not whether each claim is
correct. A View is saved or Approvals/Calendar is opened only after a separate
user action.
The same classification call may propose typed facts for review. Dates are the
first registered type. They are stored in the generic document_intelligence
ledger and never reach Calendar, rich-query filters, or later answers until a
person approves them.
See Archive research for the complete retrieval, prompt,
grounding, source-view, extracted-fact review, date-format, Calendar, API,
privacy, rate-limit, and maintainer contracts.
Current scope
The product provides fixed document classification, transient read-only archive research, Views made from retrieved documents, confidence-gated facts with optional review, and document-date Calendar/query workflows. It does not provide arbitrary model tools, custom code in the ingest pipeline, persistent chat, timed calendar events, or implicit rule learning from approvals.Troubleshooting
- Disabled: configure both endpoint and model. Hosted endpoints also need egress acknowledgement and usually a key.
- 401 or 403: verify the provider key, Azure deployment, or endpoint base URL.
- 404: verify the model name against the provider’s current model list and confirm that the endpoint is its OpenAI-compatible base URL.
- Invalid result: use an instruction-tuned model that reliably returns one JSON object. Suchi intentionally rejects explanatory prose.
- Low confidence: use a stronger model, improve deterministic automations, or keep the conservative threshold and review suggestions in Approvals.
- No classification: inspect Classification and Approvals for a dead
post-classifyjob.