Project Overview

What GENIE.AI is, its capabilities, technology stack, architecture layers, and where to read deeper.

GENIE.AI is an open-source generative-AI framework for the public sector: a sovereign, Digital Public Good (DPG)-compliant Retrieval-Augmented Generation (RAG) platform with multilingual support. It answers questions strictly from an indexed knowledge base you control, running every model on infrastructure you own. It integrates with OPEA (Open Platform for Enterprise AI) for AI/ML services.

This page is the orientation layer — what GENIE.AI is, how it is built, and where to read deeper. Each area below has a dedicated page; this overview intentionally stays high-level.

Key capabilities

  • Grounded answers — the LLM answers only from retrieved context and abstains when the knowledge base does not contain the answer.
  • Hybrid retrieval — dense-vector + lexical (BM25) search with reciprocal-rank fusion, plus optional knowledge-graph traversal. See RAG Pipeline.
  • Sovereign by design — embedding, reranking, generation, and translation models all run on your infrastructure (OPEA / vLLM / TEI). No third-party model API is required.
  • Multilingual — English is the RAG source of truth; the UI and answer stream are translatable, with config-driven locale availability.
  • Observable — OpenTelemetry-native metrics, logs, and traces across the RAG pipeline. See Observability.
  • Secure — Keycloak OIDC identity, document antivirus scanning, PII-filtered telemetry.

Technology stack

LayerTechnology
Web frontendVue 3, Vuex, vue-i18n, axios, ECharts / ApexCharts
MobileFlutter 3.10+, Dart, Riverpod
Backend (BFF)Node.js 22+, Express, JWT, winston
AI/MLOPEA, vLLM, TEI (embeddings + reranking)
DatabaseArangoDB 3.12+ (document + graph + vector)
CacheRedis
IdentityKeycloak (OIDC)
API gatewayKong, NGINX
ObservabilityOTel SDK, VictoriaMetrics / Logs / Traces, Grafana
OrchestrationDocker Swarm
CI/CDGitLab CI

Architecture layers

1. Client Layer      — Vue 3 web app, Flutter mobile
2. API Gateway       — Kong / NGINX
3. Application Layer — Node.js/Express backend (BFF)
4. AI Layer          — OPEA microservices (ChatQnA, Retriever, Reranker, Dataprep)
5. Data Layer        — ArangoDB (graph + vector), Redis, file storage

Each RAG stage emits OpenTelemetry spans, propagated across service boundaries with the W3C traceparent header. For the full C4 diagrams, authentication flows, and the service-to-service auth matrix, see Architecture.

Repository structure

GENIE.AI is organised as a multi-component monorepo with seven logical parts:

PartDirectory
Web frontendcomponents/gov-chat-frontend/
Backend (BFF)components/gov-chat-backend/
Document repositorycomponents/document-repository/
AI/ML overlaygenie-ai-overlay/
API gateway configapi-gateway-solution/
Deploymentdeploy/, docker-compose.yaml
Configurationconfigs/ (prompts, OTel, Grafana)

For the full source-tree walk-through, see Source tree analysis.

Design principles

  • Sovereignty & data ownership — data and models stay on infrastructure the operator controls.
  • Privacy by design — grounded generation avoids leaking training-data knowledge; telemetry attributes are PII-filtered.
  • Standards-based interoperability — OIDC/OAuth2, OpenTelemetry, OpenAI-compatible model APIs, W3C trace context.
  • Extensibility — pluggable models, configurable prompts and retrieval knobs, locale-whitelisting per deployment.
  • Operational simplicity — single-node storage binaries, one collector per node, a single docker-compose.yaml for both Compose and Swarm.

Where to go next

Want to know about…Read
The RAG pipeline end-to-endRAG Pipeline
Tracing, metrics, logs, dashboardsObservability
C4 diagrams, auth flows, service matrixArchitecture
Deploying (Compose / Swarm / Ansible)Deployment
Identity, Keycloak, external IdPsConfiguration
Backend API contractsBackend
Setting up a dev environmentDevelopment guide
Frontend theming & componentsFrontend
Mobile appMobile
Managing the knowledge baseKnowledge Base

Quick reference

Common service ports (Swarm — only Nginx and ArangoDB are host-exposed; all others are internal):

ServicePort
Nginx (HTTP / HTTPS)80 / 443
ArangoDB8529
Backend (BFF)3000
Frontend5173
ChatQnA8888
Retriever7000
vLLM8000
TEI (embedding / reranker)80
Grafana (via Kong /grafana/)