Skip to content
Private LLM / RAGFinance & Banking

Private Financial RAG Platform

A confidential fintech engagement (under NDA). We built a private document-intelligence platform that turns financial PDFs, scans, spreadsheets and live databases into cited, natural-language answers, deployable fully on-premise and air-gapped, with role-based, need-to-know retrieval.

On-prem
Air-gapped, zero data egress
8+ LLMs
Provider-agnostic AI core
RBAC
Governed, need-to-know retrieval
Gallery
The challenge

Problem

Analysts sat on thousands of financial documents (filings, reports, scanned statements, spreadsheets and operational databases) that were effectively unsearchable. Public AI tools were off the table for confidentiality and compliance, so the knowledge stayed locked up, and every answer had to be manually traced back to its source.

The objective

Goal

Give analysts instant, trustworthy answers grounded in the firm's own data (across every format and even live SQL databases), with strict tenant isolation, role-based access, full source citations, and the option to run entirely inside the client's environment with zero data egress.

The approach

AI solution

A retrieval-augmented generation platform with a provider-agnostic AI core. Documents are converted (GPU layout parsing for clean files, vision-LLM OCR for scans), chunked per page, embedded with BGE-m3 and indexed in a per-organization Qdrant vector store. At query time a LangGraph agent routes each question to the right tool (document RAG, natural-language-to-SQL over live databases, tabular search, or web), and an LLM synthesizes a streamed, source-cited answer. Retrieval is governed by role-based access, so users only ever see context they are entitled to.

How it works

Workflow

  1. 1Ingest documents, spreadsheets and live SQL sources via a queue-driven worker
  2. 2Convert with layout-aware parsing (Docling) or vision-LLM OCR for scans
  3. 3Chunk per page, embed with BGE-m3, index into a per-tenant Qdrant store
  4. 4A LangGraph agent routes the query to RAG, NL-to-SQL, tabular or web search
  5. 5An LLM streams a grounded answer with de-duplicated page-level citations
Under the hood

Model & AI components

  • BGE-m3 embeddings on GPU (Text-Embeddings-Inference), unified at 1024-dim
  • Hybrid retrieval (BM25 + dense) with HyDE and MMR modes
  • LangGraph agentic router (RAG / NL-to-SQL / tabular / web)
  • Provider-agnostic LLM core: 8 cloud providers plus on-prem vLLM/Ollama
  • Dual document understanding: GPU layout parsing + vision-LLM OCR
  • Role-based, need-to-know retrieval (governed RAG)
Capabilities

Features

  • Natural-language answers with de-duplicated, page-level citations
  • Query documents, spreadsheets and live SQL databases in one place
  • Per-organization tenant isolation and role-based document access
  • Token-streamed responses across every chat surface
  • Knowledge-graph explorer and embedded analytics dashboards
  • In-browser document viewing/editing, exports, and bilingual EN/AR (RTL)
System design

Architecture

A queue-driven ingestion worker (Python + RabbitMQ) feeds a Django / DRF API that orchestrates retrieval and LLM synthesis. Vectors live in Qdrant (one collection per organization); Postgres, MySQL/MSSQL and MongoDB back the app; Redis/Valkey powers real-time channels. Reliability is engineered in: a transactional outbox for the queue hand-off, an explicit document processing state machine, and idempotent SHA-256 vector IDs. The whole stack runs on cloud GPU instances or as a self-contained, air-gapped on-prem deployment.

Experience

Frontend & dashboard

A Nuxt 3 + Vue 3 analyst workspace: multiple RAG and chat surfaces with real-time streamed answers, a Neo4j knowledge-graph explorer, embedded analytics dashboards with async bulk export, in-browser document viewing and editing (OnlyOffice + TipTap), and full bilingual English/Arabic support with RTL, secured with TOTP and WebAuthn 2FA.

Connected

Integrations

  • Microsoft / Azure AD SSO (per organization) + SharePoint ingestion
  • Live SQL databases (MySQL / MariaDB / MSSQL)
  • Self-hosted secrets management (Infisical)
  • Stripe subscriptions; Prometheus observability
In production

Deployment

Deployed either on cloud GPU instances or as a fully self-contained, air-gapped on-prem stack (Traefik, Qdrant, GPU embedding and OCR services, Django API, Celery, Nuxt UI, OnlyOffice) with pinned images and no external AI API calls, so sensitive financial data never leaves the client's network.

The build

Tech stack

Frontend
Nuxt 3Vue 3TypeScriptPiniai18n (EN/AR, RTL)OnlyOfficeNeo4j viz
Backend
Django 5DRFChannels (WebSockets)CeleryDaphne / Uvicorn
AI
LangChainLangGraphBGE-m3 (TEI)DoclingVision-LLM OCRHybrid + HyDE + MMRGroq / OpenAI / Anthropic / BedrockOn-prem vLLM
Data
QdrantPostgreSQLMySQL / MSSQLMongoDBRedis / Valkey
Infra & security
DockerTraefikRabbitMQAzure AD SSOTOTP + WebAuthnInfisicalOn-prem / air-gapped
Outcomes

Results

On-prem
Air-gapped, zero data egress
8+ LLMs
Provider-agnostic AI core
RBAC
Governed, need-to-know retrieval
We had more or less given up on AI here, because nothing could stay inside our walls. This runs entirely in our environment, it cites its sources, and our analysts genuinely reach for it every day now. That is not something I say lightly.
Head of Data · Fintech client (under NDA)
Get started

Build something like Private Financial RAG Platform.

Tell us your workflow and goals. We'll map the highest-leverage AI use case and a clear path to production.