Home

Architecture

One database.
Two retrieval paths.
An independent check on every answer.

Hybrid retrieval, structure-aware ingestion, and an adjudication layer that runs on its own GPU.

Citorum is a retrieval-augmented generation platform assembled from parts you can name, inspect and operate. This page walks the modules, then follows one question end to end.

The modules

Nine components carry a document from its source system to a cited, labelled answer. Each has a defined responsibility and a defined data scope, and none of them ships content outside your deployment.

Modules

What Citorum is made of

Ingestion & admission

Five sources: browser upload, server folders and mounted network shares, WebDAV, a depth- and rate-limited same-domain web crawl, and media URLs. A MIME allow-list, a per-tenant size cap and storage quotas are enforced before a byte is written. Each source can be switched off per tenant.

Conversion

PDF conversion runs on Citorum's own GPU service, not a third-party API. Each page is triaged as born-digital, scanned or empty, so only scanned pages pay the optical character recognition (OCR) cost. Tables are recovered row and column; figures get a written description; rotated pages are corrected.

Quality gate

Degenerate or empty conversion output fails loudly instead of being embedded as garbage. Failed documents are captured with file path, media type, error class, traceback and task identifier, and can be requeued singly or in bulk.

Chunking

Chunking follows the document's real structure — headings, lists, tables, code — so a citation lands on a whole clause or table row rather than a fragment. Table rows are never split. Method, size and overlap are configurable per corpus.

Embedding & index

A multilingual embedding model produces 768-dimension vectors, indexed with Hierarchical Navigable Small World (HNSW) in PostgreSQL 18 with pgvector — alongside a PostgreSQL full-text index. There is no separate vector database to license, secure or operate.

Hybrid retrieval

A dense semantic path and a sparse keyword path run together and are fused by reciprocal rank. An exact-match path holds a reserved slot for case numbers, statute numbers, defined terms and quoted phrases so they cannot be crowded out.

Diversify & rerank

Results are diversified so the context budget is not spent on ten copies of the same paragraph, then a more precise cross-encoder re-scores the survivors — always against the user's actual words, never a rewritten query.

Adjudication

A separate worker on a separate GPU scores every answer against its own cited sources: claim-level grounding, entailment and contradiction, an independent model judge that returns readable reasoning, and a presence check on every figure, date and citation in the answer.

Evidence & observability

Per answer: what was asked, what was retrieved chunk by chunk, which sources were cited, which model version answered, every signal score and the verdict. Browser, API and every background task appear in one distributed trace.

One question, end to end

A single turn moves through the system in this order. Everything between the question and the labelled response happens inside your boundary.

  1. Transform. A hypothetical-answer draft is embedded as a retrieval probe to bridge the gap between how you asked and how the corpus words it — the draft is never shown and never used to generate the answer. Compound questions are decomposed into as many as four sub-questions, each with reserved result slots.
  2. Retrieve, with scope in the query. Dense, sparse and exact paths run against your corpus. Tenant, Lens, corpus, tag, group and document-level scope are predicates in that same SQL.
  3. Fuse, diversify, rerank. The paths are combined by reciprocal rank, diversified, then re-scored by a cross-encoder against your original wording. Passages below a similarity floor are dropped rather than used to pad the prompt.
  4. Compose and generate. Surviving passages are assembled under the Lens system and assistant prompts, and an open-weights model running in your deployment streams the answer token by token with cited spans. Citation markers that resolve to nothing are removed before you see them.
  5. Adjudicate. Independent models score the answer against its sources. The answer streams immediately; the verdict follows moments later rather than holding the response.
  6. Label and record. The ensemble gates to Verified, Review Recommended or Do Not Rely. Every signal score, the judge's rationale and the retrieved chunks are written to the answer's record.

There is exactly one retrieval round trip per turn. Citorum does not run an agent loop and does not take actions on your systems.

1
Databases to operate
PostgreSQL 18 with pgvector holds vectors, full-text index and business tables — no separate vector store
3
Retrieval paths fused per query
Dense semantic, sparse keyword, and exact identifier match with a reserved slot
3
Faithfulness labels
Verified — Cite Source · Review Recommended · Do Not Rely — Consult Expert
0
Outbound AI calls as deployed
Every model that touches your content runs on hardware you control

The Citorum Commitment

Citorum is built for organizations that operate under constraints — Sarbanes-Oxley (SOX), the Health Insurance Portability and Accountability Act (HIPAA), the General Data Protection Regulation (GDPR), state privacy statutes, professional privilege. Those constraints are the design input, not something accommodated later. Four commitments follow from that, and they hold in every deployment topology we offer.

  • Your corpus and your inference stay in your environment. As deployed, Citorum makes no outbound AI calls. Retrieval, embedding, document conversion, inference, answer-checking and transcription all run on hardware you control.
  • Access is enforced where it cannot be bypassed. Tenant, Lens, corpus, tag, group and document scope are applied inside the retrieval query itself, so a passage the user may not see never reaches the model. It is not filtered out afterwards.
  • The model that checks the answer is not the model that wrote it. Every answer is scored by independent models against its own cited sources and carries one of three labels: Verified — Cite Source, Review Recommended, or Do Not Rely — Consult Expert.
  • We are specific about what we do and do not do. Where a control is not in the product yet, we say so in writing — before your procurement team has to ask twice.

Want to walk the pipeline with an engineer?

We will go through retrieval, adjudication and the evidence record at whatever depth your architects want, including the parts that are still rough.