NenoBrief by Neno Technologies
Archive officers get cited answers inside their live document system, files never copied
Neno Technologies serves government archives with a document-management system already in production. We built NenoBrief, a self-hosted AI gateway that system calls to ask, search and compare documents, with every answer cited and every original left in its system of record.
Government, Legal & DefenseAI gateway for a live DMSAI added to a live product
The challenge
Officers needed answers they could trace across sensitive records, and no record could reach an outside AI service or be copied out of its system of record.
What we did
One self-hosted AI gateway on the client's own GPU host: systems of record push approved text, the live document system asks for cited answers, and originals open from their source.
The outcome
The client's live document system now pushes approved documents to the gateway and its Ask AI calls it in production, with every client finding fixed and rechecked.
- Live integration
- The client's document system, in production
- Answers
- Cited to the passage, or a clear decline
- Files
- Originals stay in the systems of record
- Models
- Self-hosted on the client's own GPU host
The starting point
Neno Technologies builds document-management and knowledge tools for government institutions with large archives. Its document-management system already ran in production for archive indexing and owns its users and its document preview.
What had to change
The client wanted the cited retrieval we had built for its knowledge workspace extended into one shared AI platform. Its live document system and a partner records system had to ask questions over approved documents and get cited answers.
What could not break
- Self-hosted models only, on the client's own GPU hosts
- Originals stay in the systems of record, with no second file store
- Users stay owned by each source system
- Tenants kept apart by client id
- Retrieval fails closed when access cannot be confirmed
The calls we made
We treated the vendor's existing systems as the source of truth and built AI once, as a layer they call, not a place documents move to.
- 01
Build AI once, as a platform
The vendor wanted one AI pipeline that its own document system, a partner records system and customers with no document system could all call, so we built one gateway with tenants separated by client id and users left owned by each source system.
Ruled outWiring AI separately into each product, with its own pipeline and its own copy of the users.
- 02
Push text, not files
Systems of record push only approved text, metadata and a source id and keep their files. We settled this push based sync with the client in a working meeting and shipped the new endpoints the same day.
Ruled outCopying every original into a new store, which would duplicate sensitive records and their permissions.
- 03
Cite, or decline
Every answer points to the passage it came from, figures are checked against the source, and when the documents do not cover a question the system says so rather than describing a similar entity.
Ruled outFluent answers without a traceable source, or a near match presented as the answer.
- 04
Scope before ranking, fail closed
Only authorized text enters the index, each tenant is scoped by client id, and retrieval is filtered by tenant, collection and clearance before reranking, so unknown users and failed lookups get nothing.
Ruled outFiltering after generation, where a restricted passage could already have shaped the answer.
- 05
Fix what live use finds, the same day
Once the client's live system was calling the gateway, issues found in real use were fixed the same day, and each client test round became tracked findings we fixed and rechecked.
Ruled outWaiting for a later release while users worked around wrong answers.
How the system fits together
What we built
Shared AI API
Ask, search, ingest, source withdrawal and document preview endpoints that the client's document-management system and a partner records system call, with tenants separated by client id.
AI Mode in the client's interface
Question answering with citations, a brief library, version comparison, agreement intelligence and action points from minutes, opened from inside the document system.
Ingest without copying
Systems of record push approved text, metadata and source ids, with ingestion progress and readiness states, and new uploads open before extraction finishes.
Retrieval tuned on live use
The same answer for identical questions, unrelated documents filtered out, missing citations restored and exact document titles matched inside questions.
Source-owned viewing
Signed, short-lived document viewer links, so a user opens the original from its own system of record.
How it works
Push
The document system pushes approved documents as authorized text, metadata and a source id, and keeps the file.
Index
The gateway reads scans with self-hosted OCR where needed, chunks the text and indexes it.
Ask
A user opens AI Mode inside the document system and asks a question, which arrives scoped to the tenant.
Answer
The self-hosted model answers only from the retrieved passages and cites each one, or says the archive does not cover the question.
Open
A short-lived signed link opens the original from its source system, which checks access again at view time.
A closer look
[
{
"question": "Who signed the circular on archive transfers?",
"answer": "It was signed by the Director of Archives, A. Laurent [1].",
"citations": [
{
"source_id": "doc-48213",
"title": "Circular on archive transfers",
"page": 3,
"passage": "Signed: A. Laurent, Director of Archives"
}
],
"declined": false
},
{
"question": "Who signed the circular on museum loans?",
"answer": "The archive does not cover this question.",
"citations": [],
"declined": true
}
]What changed
The client's live document-management system pushes approved documents to the gateway and calls it from its own Ask AI page in production. Issues found in live use were fixed the same day, and the client's rechecks narrowed its findings round by round.
Under the hood
- Datics role
- AI added to a live product
- Data boundary
- Self-hosted models only. The index holds authorized extracted text and metadata in PostgreSQL with pgvector, never the originals.
- Access
- Tenants separated by client id and users owned by each source system. Retrieval is filtered before reranking and fails closed.
- Integrations
- The client's document-management system, a partner government records system, and Qwen and Surya services shared with the client's own pipeline.
- Deployment
- Docker Compose on client-owned AWS EC2 GPU hosts, with vLLM model serving, Redis and Nginx.
Data and retrieval
Cloud and infrastructure
Apps and APIs
Also in the stack
How it shipped
AI Mode and the gateway approved
After the knowledge workspace, the client asked for one shared AI platform, and AI Mode and the gateway were approved with their own milestones.
Staging beside the live system
The gateway went onto the client's staging GPU host, and the backend was completed for its document system and a partner records system.
Live integration
Push based sync agreed and shipped the same day, then the client's live system went into production against the gateway, with issues from live use fixed that day.
Client test rounds
Stress tests and rechecks by the client, each finding tracked, fixed and verified again, while per-user identity was designed and approved.
On the client's own GPU host
Everything runs in Docker Compose on client-owned AWS GPU instances beside the client's existing document system, with models served by vLLM behind Nginx.
Every question answered in writing
We answered each client query in writing, and every finding from the client's test rounds was tracked, fixed and rechecked with them.
Access designed together
The client proposed per-user identity for AI Mode, and together we shaped it into signed launch tokens and live access lookups that filter retrieval before ranking and fail closed.
What this unlocked
Next are per-user identity, roles and tenant administration, approved as a change request, plus a login screen for the AI site. The client has also asked about a third system.
Related work
Have a product with the same kind of constraints?
Tell us what already exists and what you want it to do. We will tell you what it takes.
