Skip to content

airbus/norma

Norma
AI compliance, simplified

CI Licence Python 3.13 Node 22 TypeScript Docker Compose


Norma screenshot

What is Norma?

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.

Features

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.

Architecture

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
Loading
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

Quick Start

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 up

The frontend is available at localhost:3000, the backend API at localhost:8000, and the pipelines service at localhost:8001.

Development

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

Documentation

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

Contributing

Contributions are welcome. Please read the contributing guidelines and code of conduct before opening a pull request.

Licence

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

About

AI compliance, simplified

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors