Private AI that runs on your servers and never sees the internet
A corporate assistant for your documents, databases and code. Models, index and logs stay inside your perimeter, outbound traffic is closed — and every answer cites its source.
Request a technical consultation- Runs without the internet
- No licence fee per user or per token
- Source code and indexes belong to you
- Permissions are checked before the model sees any text
When documents must not go to a cloud AI
Engineering documentation and drawings
Specifications, protocols, drawings and technical requirements that a contract or internal policy does not allow to be uploaded to cloud services.
ISO, audits and traceability
Every answer has a source — document, revision, status, page — and every question is written to the audit log.
Defence, dual-use and restricted projects
A separate collection, denied by default. We, as the developer, have no access to it at all.
Knowledge in heads and folders
What was designed years ago, and how, is known to a few people. Search by meaning finds it for a new colleague too.
Answers from your documents and systems
Answers from documentation, with a citation
A question in plain words, an answer with a citation: document, revision, status, page. Where there is no source, the system says so.
Similar earlier solutions
Finds where and how a similar task was already solved in earlier projects.
Comparing technical solutions
Compares solutions from the documentation, each claim with its own source.
Live values from ERP and PDM
Stock, approved revision, BOM — exact, from the source system at the moment the question is asked, not “approximately”.
Documents from your Word templates
The system prepares a draft in your template; an engineer reviews and signs it.
An assistant for developers
In VS Code and JetBrains through existing open extensions, with the context of your Git repository; changes across several files, reviewed by the developer. The model is local — code does not leave your network.
Search in Latvian, Russian and English
A question in Russian finds a document in English: one embedding model for all three languages.
Typical sources, for example: Windows file shares, SOLIDWORKS PDM, HansaWorld Standard ERP, 1C, Horizon, SharePoint, Git.
One server in your infrastructure
No component needs outbound internet access at runtime. Staff work in a browser or in their IDE; the sources stay in their own systems. Everything is run by the orchestrator (a control service that checks permissions and prepares the material).
The orchestrator is the only component with access to your systems. Identity, permissions, revision rules and audit live in one place — code you receive as source.
ERP and PDM data are not copied into the platform: they are read at the moment they are asked for.
The interface is replaceable: retrieval is a separate service, not a feature of the chat UI.
Documents are searched, values are fetched
Knowledge
- 1
- Specifications, test protocols, manuals, project correspondence, earlier solutions.
- 2
- Parsed once, indexed, retrieved by meaning.
- 3
- The model summarises the retrieved passages and cites document and revision.
- ∅
- If there is no source: “No approved source found”.
How did we handle fastening under vibration load in project P-17?
With elastic mounts and a second fastening point.
Source: TA-017 “Fastening calculation”, rev. B, Approved, p. 4.
Draft TA-017 rev. C is not approved and was not used in this answer.
Authoritative values
- 1
- Stock, approved revision, current BOM, invoice status.
- 2
- A function fetches the value from the source system at question time.
- 3
- The model places the value in a sentence — unchanged.
- ∅
- If there is no value: an explicit error, never a substituted number.
Part A-102: approved revision and free stock?
PDM: revision C, status Approved.
ERP: on hand 12, reserved 4, free 8.
Values read from the systems at question time, not calculated.
If a value has a source system, we ask that system. The model neither calculates nor remembers numbers.
How a question is answered
The path of one question from the moment an employee presses Enter to the answer with its sources — simplified to seven steps.
Permissions in the query, not after it
Permissions are applied inside the retrieval query, not as a filter over the results. The difference is not cosmetic: content removed after retrieval has already been read by the model — and can surface in a paraphrase even without a citation.
Access profiles per folder
Each passage carries an access profile. Access profiles are assigned to folders and shared, so a permission change updates one row rather than re-indexing content.
Permissions at question time
Permissions are determined at the moment a question is asked: adding or removing a person takes effect immediately.
Restricted projects — a separate collection
Denied by default: reachable only through explicit assignment.
Second line — the source system
Calls into ERP and PDM carry the user's identity, so the source system applies its own permissions as well.
At acceptance we run queries as the user with the fewest permissions: we check that they see nothing they should not see — and that they get answers rather than silence.
No Active Directory? Users and groups are kept in the platform (Keycloak), and the source of groups can later be switched to a directory without redesign.
How documents are indexed
Indexing is done by a scheduled service, not by the language model. It is cataloguing: the model is not trained, and its weights never change.
Why we do not train the model on your documents
Knowledge absorbed into model weights cannot be permission-scoped, cannot be deleted per document and cannot be cited. That is why knowledge lives in a versioned index.
Revision and status — from six sources, in order of reliability
- 1PDM card
- 2File properties
- 3File name
- 4Folder (e.g. an archive)
- 5Document content (title block)
- 6Administrator override
If no source yields a reliable value, the document is indexed and marked “status undetermined”, ranked below approved material and reported to the administrator for review. It is never silently treated as current.
The closed environment — how it is ensured
This section is about the solution you receive: how data and models are kept inside your perimeter.
- 01
Outbound traffic closed at the firewall
No component requires the internet or an online licence check. Open-weight models (Apache 2.0) — no licence server, no usage reporting.
- 02
Proof at acceptance
A traffic-capture test shows that nothing leaves the server.
- 03
The model has no network and no credentials
Only the orchestrator checks permissions. The model cannot bypass permissions because there is nothing for it to bypass.
- 04
ERP and PDM — read-only
In the first phase no function writes to your systems. Writing comes only as a separate module with approval.
- 05
Audit log
Who asked, which functions ran with which parameters, which documents and revisions were used, what was withheld.
- 06
No cache across users
Answers are never reused for another user: a cache would leak content across permission boundaries.
- 07
Supply chain
Versions pinned by cryptographic digest, nothing downloaded inside the perimeter, a bill of materials (SBOM) with every release, updates only after review.
- 08
Monitoring — on site
GPU, response times, indexing errors — collected and shown locally, sent nowhere. Query traces have restricted access; for restricted collections — metadata only.
- 09
Disk encryption and backups
Agreed with your security policy.
How we work without seeing your data
Development happens outside your perimeter on synthetic data. Inside the perimeter we deploy, configure, operate and diagnose — but we do not write code.
Access
- Sessions only, through your jump host
- Time-limited, recorded, revocable at any moment
- No clipboard transfer, no drive mapping
Restricted projects
- A separate collection we have no access to at all
- Initial loading is done by your administrator following our written procedure
- Diagnostics — metadata only
- If a defect cannot be reproduced from metadata, we come on site
Log anonymisation
- The utility runs inside your perimeter
- File names → hashes, content removed
- Types, sizes, processing stages and error codes retained
- Your security team can review the output
Immutable releases
- A defect means a new version, not a patched file
- The previous version is kept for rollback
- Your administrator can apply a release without us
How to start
Pilot on a rented dedicated server in the EU
- Where it runs
- A physical server in an ISO 27001 EU data centre; the whole server is yours alone
- Hardware
- Nothing to buy: the server with an NVIDIA RTX PRO 6000 96 GB is rented
- When it fits
- To test on your own documents before capital expenditure; can be stopped at any time
- How to move on
- Moves into your server room without a rebuild — the same containers
Not for restricted or defence data — options B or C only.
One GPU in your server
- Where it runs
- Your server room, no internet
- Hardware
- 1× NVIDIA RTX PRO 6000 96 GB; a chassis for 2–4 cards
- When it fits
- Minimum production configuration: one large model (gpt-oss-120b) for both chat and code; embeddings on CPU
- How to move on
- A second GPU can be added later without changing the architecture
Honestly: the large model and a separate coding model cannot both be loaded into GPU memory at once; embeddings run on CPU, so mass re-indexing is slower; for code the large model is slightly weaker than a dedicated coding model.
Two GPUs in your server
- Where it runs
- Your server room, no internet
- Hardware
- 2× NVIDIA RTX PRO 6000 96 GB
- When it fits
- Room on the second card: a separate coding model, embeddings on GPU (faster mass re-indexing), a public chatbot, later voice
- How to move on
- New modules on the second card, without taking memory from the main model
The second card does not speed up chat: in both options the main model runs on one card, so speed at 5 and 10 sessions is the same in B and C.
Indicative speed: 1× RTX PRO 6000 96 GB, gpt-oss-120b
Indicative — we measure on your hardware during the pilot. The same for options B and C: in both, the main model runs on one card.
| Concurrent sessions | Speed per session | First token |
|---|---|---|
| 5 | 90–140 tokens/s | 0.4–1.0 s |
| 10 | 60–100 tokens/s | 0.7–1.5 s |
What fits in 96 GB
- gpt-oss-120b: ≈65 GB of weights + cache for ≈20 sessions at 32K context
- or two 30B-class models in FP8
- does not fit: models above 200B, and 70B models in FP16
We fix the price after the pilot measurements.
Request a technical consultationPilot on a rented server — how it is built
Eight weeks, two working functions and a limited set of documents. Inside — the same architecture as in the full phase, only with fewer functions.
What server
A dedicated physical server — not a virtual machine and not a shared cloud GPU — in an EU data centre with ISO 27001 certification. The whole server is rented; one graphics card, used by you alone.
- GPU
- NVIDIA RTX PRO 6000 Blackwell, 96 GB
- CPU
- Intel Xeon, 24 cores
- Memory
- 256 GB DDR5 ECC
- Storage
- NVMe
Why this card
The main model takes ~65 GB, plus room for the documents being processed. A smaller card fits only a markedly weaker model — and the pilot would show a different quality from what you would get later.
Encryption on the server
Documents, templates and reference sets are kept on an encrypted LUKS volume; you enter or hand over the key when the server starts.
Server network
Outbound internet closed. Inbound only from your addresses and two social.tech engineers; everything else is rejected. The absence of outbound traffic is verified by traffic capture and shown to you.
Alternatives we assessed
- EU cloud GPU
- Cheaper, but shared infrastructure: other customers run on the same hardware at the same time
- A smaller card
- Fits only a markedly weaker model
- Your existing servers
- They lack the required graphics card
- US clouds
- Data outside EU jurisdiction
Scope
- 8 weeks
- 2–3 completed projects — roughly 500–2,000 files
- 2–3 users and one observer
- Function 1: a document set from your template and a reference project — a draft the engineer reviews and signs
- Function 2: archive search by meaning, citing “document, revision, page”; where there is no source — a refusal, not an invented answer
- ERP/PDM integration is a separate option, read-only, over the same channel. Without it we work with file exports: for example, the assembly structure and parts list are exported with built-in CAD tools, no extra licences
Week by week
- 1Infrastructure and channel, isolation check
- 1–2Bottleneck analysis, templates and formatting rules, choice of material, typical questions
- 3Document transfer and indexing
- 4Archive search
- 5–7The document-set function, iterations with engineers
- 8Demonstration, review of results, proposal for the full phase
From you: an NDA, 2–3 projects, a list of users, a channel administrator and IP addresses, about half a day a week from two engineers.
What stays with you after the pilot
- A working installation on your projects
- Clarity on what the system does well, partly, and not at all
- Templates and formatting rules analysed and written down
- An estimate of the full phase based on what was seen, not on assumptions
If it does not suit you, the work ends and the analysis stays with you.
Moving into your perimeter
The platform is built as containers that are identical on the rented server and on yours. Moving means the same containers on the purchased server, restoring the configuration and re-indexing the whole archive — inside your network. No code is rewritten; status rules, template mappings and prompt wording travel with it. After the pilot the data is deleted with confirmation — or moves to you.
The channel to your perimeter
On a rented server, an agreed set of documents leaves your network — and, if an integration option is taken, requests to your systems travel the same way. Everything goes through a single channel.
How it works
- 01
Documents
Your administrator selects the agreed set, packs it into an encrypted container and sends it through the tunnel. The key stays with you. On the server the content lands on an encrypted volume and is verified against checksums.
- 02
Integrations
If the option is taken — through the same tunnel, read-only, within an agreed set of data. The account is issued and revoked by you.
- 03
The tunnel
Closed by default, opened from your side. Sessions are logged.
- 04
No outbound route
The server has no route to the internet. Verified by traffic capture and shown to you.
- 05
At the end
The data is deleted with confirmation — or moved into your perimeter if the project continues.
Which projects and which data leave is decided by you.
Two paths
Start with a pilot on a rented server
- 8 weeks
Pilot on a rented server — as described above
- Decision
Continue or stop — based on the result you have seen
- Full phase
Inside your perimeter: the same containers, the whole archive, the integrations you need
Straight into your perimeter
- Stage 0 · ~6 weeks
A pilot with measurable acceptance criteria: a golden set of questions, a permission-leak test as the user with the fewest permissions, a concurrent-session measurement, an outbound-traffic test
- Decision gate
Continue or stop, paying for Stage 0 only
- Phase 1 · 14–16 weeks
Two production releases
- 4 weeks
Post-launch support
- Phase 2 · optional
PDM/ERP writing with approval, agents, voice, a public chatbot, further integrations
The pilot work is credited to Phase 1 in full if you continue within 3 months.
What you receive
- Source code, configurations, indexes and templates — yours from day one
- No licence fee per user or per token
- The system keeps working if support ends — there are no licence keys
- A trained administrator on your side
- Documentation
Support is optional: a subscription with a fixed number of hours, or on request.
What the system does not do
- It does not interpret drawing geometry: it reads title blocks, parts lists and technical requirements, but does not verify dimensions or fit.
- Generated documents are drafts — an engineer reviews and signs them.
- The first phase only reads from your systems.
- We do not guarantee complete recall — we measure it against your set of questions with an agreed threshold.
- Open models write less well in Latvian than in English or Russian — we measure this in the pilot and report the results.
- Poor scans are the least predictable part — we assess them in Stage 0.
The system inherits your document discipline; it does not repair it.
Technology and why
The components and why we chose them (14)
- vLLM
- Several users on one card without queueing; a standard API, so the model can be replaced without touching the application. Ollama is built for a single user.
- gpt-oss-120b · gpt-oss-20b
- Apache 2.0: no licence server, no usage reporting, no expiry date. 120b answers at the speed of a small model (~5B active parameters per token); 20b handles classification and routing.
- LiteLLM
- Which model serves which task is one configuration line. Replacing the model is not a project.
- PostgreSQL + pgvector
- Vectors, permissions, revisions and audit in one database and one transaction. A separate vector store would mean two stores to keep in step.
- BGE-M3
- Latvian, Russian and English in one model: a question in Russian finds a document in English.
- bge-reranker-v2-m3
- A second pass: of ~50 candidates, the best 10–15 passages reach the model.
- Docling
- Keeps table structure and reading order in technical PDFs; OCR for scans.
- Keycloak
- Local accounts today, a directory later — with no change to the application.
- Open WebUI
- The interface only. Its built-in document search has no permission model, which is why retrieval is our separate service with permissions.
- MCP
- Each function is a small, separately testable service with a declared signature.
- docxtpl + LibreOffice
- Fills your own Word templates instead of inventing a layout.
- Docker Compose
- Versioned, checksummed images. Kubernetes on a single server is needless complexity.
- Prometheus · Grafana · DCGM
- GPU, response times, indexing errors — local, sent nowhere.
- Langfuse
- Shows which passages and function results produced an answer. Restricted access; metadata only for restricted collections.
Co-funding
We help prepare the technical part of an application to Latvian and EU programmes: scope, justification, work packages, budget and plan. The project stages map well onto work packages.
Costs are usually eligible only after the application is submitted or decided — so we align the choice of programme with your procurement timeline.
Frequently asked questions
Does our data ever leave our network?
From your server — no: outbound traffic is closed at the firewall, and a traffic-capture test proves it at acceptance. Only a signed release crosses the boundary inwards and anonymised diagnostics outwards — if your security team allows it. In a pilot on a rented server, only the document set you choose leaves: encrypted, through a tunnel you open.
What happens if you stop supporting it?
The system keeps working. Source code, configurations and indexes are yours, there are no licence keys, and your administrator can apply a release without us.
Can it work without Active Directory?
Yes. Users, groups and permissions are kept in the platform (Keycloak). The permission model is built so that the source of groups can later be switched to a directory without redesign.
Does the model learn from our documents?
No. Documents are indexed; the model's weights do not change. Knowledge in weights could not be permission-scoped, deleted per document or cited — in an index it can.
What about classified projects?
They go into a separate collection, denied by default, that we have no access to at all. Initial loading is done by your administrator following our procedure, diagnostics are metadata only, and if a defect cannot be reproduced we come on site. A pilot on a rented server is not suitable for such data.
What hardware is needed?
At minimum, one server with 1× NVIDIA RTX PRO 6000 96 GB in a chassis for 2–4 cards; a second card can be added later. We measure speed under your load during the pilot.
Can we start without buying hardware?
Yes — with an 8-week pilot on a rented physical server in the EU. If you continue, the same containers move to your server without a rebuild.
Request a technical consultation
Tell us what documents and systems you have. We will reply with clarifying questions and suggest where to start — a pilot on a rented server or straight inside your perimeter.