Technology & R&D
Everything a technical evaluator needs in order to judge substance in five minutes: the architecture, the retrieval pipeline, the stack with versions, and the security policy.
Retrieval pipeline
Fig. 03 — six stages from ingestion to evaluation, with the reason for each choice and the metric that governs it.
Ingestion
PDF, HWP, Office, wikis, databases and web sources normalised to a text layer. Scans are OCR’d; tables keep their structure.
Chunking
Semantic paragraph units, with effective and withdrawal dates per clause and department permission tags for pre-search filtering.
Embedding
BGE-m3 multilingual embeddings; pgvector or Qdrant depending on scale. Per-customer index isolation is the default.
Hybrid retrieval
Vector similarity merged with BM25 keyword search, then cross-encoder reranking — essential for part numbers and clause references.
Grounded generation
Generation is constrained to retrieved evidence and cites its source. Below the similarity threshold, no answer is produced and a person is offered.
Evaluation
A 100-question golden set measures accuracy, citation fitness and refusal rate. Unanswered questions are reported back as a content backlog.
Security & data handling
The four questions every procurement review asks first, answered as policy.
No training on your data
We use only model APIs with contractual no-training guarantees, and deploy on-premise models where required. The clause is written into the contract.
Per-customer isolation
Vector indexes and object storage are separated per customer, under credentials that make cross-tenant reads impossible.
Permissions & audit
Role-based access with field-level masking, and a full history of reads and changes. Search scope is filtered by the querying user’s permissions first.
Region & hosting
Domestic regions or on-premise deployment where public-sector requirements apply. Log and backup retention is agreed in the contract. [TBC]
Stack
| Layer | Technologies |
|---|---|
| Languages | TypeScript 5.x · Python 3.12 · SQL |
| Frontend | Next.js (App Router) · React 19 · Tailwind CSS · design tokens |
| Backend | NestJS · FastAPI · Prisma · REST / tRPC |
| Data | PostgreSQL 16 · pgvector · Qdrant · Redis 7 · S3-compatible storage |
| AI · retrieval | BGE-m3 embeddings · cross-encoder reranker · Claude / GPT APIs · vLLM (on-premise) |
| Workflow | Temporal · Celery · Playwright (only where UI automation is unavoidable) |
| Infrastructure | Docker · AWS (CloudFront · S3 · ECS) or Vercel · GitHub Actions |
| Observability | Grafana · Loki · Langfuse · GA4 with server-side events |
| Identity | Keycloak · OAuth 2.0 / OIDC · SSO integration |
Strategy, information architecture, design, engineering and answer-engine work on this site were all done by SpaceSJ. The reasoning is documented in the L3 in-house entry (KO).