Norma helps teams achieve EU AI Act compliance by combining structured project management with an AI-powered assistant that understands your project context, uploaded documents, codebase, and compliance obligations to guide you through risk classification, evidence gathering, and reporting.
Norma is cloud-agnostic and LLM-agnostic. It uses LiteLLM to abstract model providers, so any backend (Vertex AI, OpenAI, Azure, or others) can be swapped without code changes.
Risk Classification. Interactive questionnaire following the EU AI Act decision tree to determine your AI system's risk level.
Compliance Reporting. Structured checklists with evidence tracking and validation to build your EU AI Act compliance case.
Document Management. Upload compliance documents as PDFs. Norma extracts and summarises the content so the AI assistant can reference it in context.
Norma AI Assistant. A context-aware chat assistant that understands your project details, uploaded documents, codebase, and reporting progress to provide tailored compliance guidance.
Codebase Analysis. Connect a GitHub repository to generate architecture diagrams and technical summaries that feed into compliance assessments.
Multi-Language Support. Full interface localisation in English, Spanish, French, and German, with AI responses adapted to the user's preferred language.
LLM-Agnostic. Swap between any LLM provider (Vertex AI, OpenAI, Azure, local models) by changing a single environment variable.
graph TD
subgraph Docker Compose
Frontend["Frontend<br/>React + Vite + shadcn<br/>:3000"]
Backend["Backend<br/>FastAPI + ADK + LiteLLM<br/>:8000"]
Pipelines["Pipelines<br/>FastAPI + ADK + LiteLLM<br/>:8001"]
DB["PostgreSQL 16 + pgvector<br/>:5432"]
Volume[("Docker Volume<br/>Documents / Output")]
Frontend --> Backend
Backend --> Pipelines
Backend --> DB
Pipelines --> DB
Backend --> Volume
Pipelines --> Volume
end
| Service | Stack | Port |
|---|---|---|
| Frontend | React 19, Vite, Tailwind CSS, shadcn/ui | 3000 |
| Backend | FastAPI, Google ADK, LiteLLM, SQLAlchemy | 8000 |
| Pipelines | FastAPI, Google ADK, LiteLLM, PyMuPDF | 8001 |
| Database | PostgreSQL 16 + pgvector | 5432 |
git clone https://github.com/airbus/norma.git
cd norma
cp .env.example .env
# Edit .env to configure your LLM provider (see .env.example for options)
docker compose upThe frontend is available at localhost:3000, the backend API at localhost:8000, and the pipelines service at localhost:8001.
See CONTRIBUTING.md for the full development setup, code style, and PR process.
# Frontend
cd frontend && npm install && npm run dev
# Backend or Pipelines
cd backend && uv sync && uv run python main.py
# Database migrations
cd backend && uv run alembic upgrade head| Document | Description |
|---|---|
| Getting Started | Step-by-step guide to setting up Norma and creating your first project |
| Architecture | System design, data models, and integration patterns |
| API Reference | REST endpoint documentation |
| Chat Agent | Norma AI assistant architecture and prompt assembly |
| Document Processing | Document and codebase processing pipelines |
| Risk Evaluation | EU AI Act risk classification decision tree |
| Deployment | Docker Compose configuration and production setup |
Contributions are welcome. Please read the contributing guidelines and code of conduct before opening a pull request.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.

