Aller au contenu

Architecture - Vue d'Ensemble

Architecture technique complète de JARVIS.

Diagramme Système

graph TB
    subgraph Client
        A[Angular Frontend]
    end

    subgraph API Layer
        B[FastAPI Backend]
        C[Middlewares]
    end

    subgraph Services
        D[LLM Router]
        E[RAG Service]
        F[Auth Service]
    end

    subgraph Data
        G[(PostgreSQL)]
        H[(Redis)]
        I[(MinIO)]
    end

    subgraph LLM
        J[Ollama Local]
        K[Claude API]
        L[GPT-4 API]
    end

    A --> B
    B --> C
    C --> D
    C --> E
    C --> F
    D --> J
    D --> K
    D --> L
    E --> G
    F --> G
    B --> H
    E --> I

Stack Technologique

Couche Technologies
API FastAPI 0.104, Pydantic 2.5, Uvicorn
ORM SQLAlchemy 2.0 (async), Alembic
Database PostgreSQL 16, pgvector
Cache Redis 7 (hiredis)
Storage MinIO (S3-compatible)
LLM LangChain, Anthropic, OpenAI, Ollama
Auth JWT (python-jose), bcrypt
Monitoring Prometheus, Sentry

Principes Architecturaux

1. Multi-Tenancy

  • Row-Level Security (RLS) PostgreSQL
  • Isolation complète des données par tenant
  • Contexte injecté via middleware

2. Routage LLM Intelligent

graph LR
    A[Input] --> B{PII Detector}
    B -->|Score > 0.7| C[Ollama Local]
    B -->|Score < 0.7| D[Claude Cloud]

3. Architecture Hexagonale

  • Routers: Points d'entrée API
  • Services: Logique métier
  • Repositories: Accès données
  • Models: Entités ORM

Structure des Fichiers

backend/app/
├── main.py              # Entry point
├── config.py            # Configuration
├── models/              # SQLAlchemy ORM
├── schemas/             # Pydantic validation
├── routers/             # API endpoints
├── services/            # Business logic
├── middleware/          # Request pipeline
└── utils/               # Helpers

Voir Aussi