LMbox
Vos données restent chez vous. Demander une démo
Couche 2 · Indexation / RAG · On-prem strict

lmbox-rag

Le service RAG embarqué LMbox. Indexation vectorielle, embeddings et similarity search restent **sur la box**, dans le rack du client. Aucun document ne franchit jamais l'interface réseau externe.

Architecture en une page

┌────────────────────────────────────────────────────────────┐
│   OpenClaw (agents) → HTTP local → lmbox-rag                │
└────────────────────────────────────────────────────────────┘
                              ▼
┌──────────────────────────────────────────────────────────┐
│  lmbox-rag                                                │
│  ┌──────────┐  ┌──────────┐  ┌────────────────┐         │
│  │ Ingest   │  │ Query    │  │ MCP server     │         │
│  │ Sidekiq  │  │ HMAC HTTP│  │ 4 outils       │         │
│  └────┬─────┘  └────┬─────┘  └────────┬───────┘         │
│       │             │                 │                   │
│       ▼             ▼                 ▼                   │
│  ┌─────────────────────────────────────────────────────┐ │
│  │  PostgreSQL 16 + pgvector (HNSW)                     │ │
│  │  tenants · datasets · documents · chunks · audit     │ │
│  └─────────────────────────────────────────────────────┘ │
│       ▲                                                   │
│       │  Ollama embeddings (nomic-embed-text / bge-m3)    │
│       │  multilingue FR/EN, GPU-accel si dispo            │
└──────────────────────────────────────────────────────────┘
       ▲
       │  Connectors LMbox (chantier 2.4)
       │
┌─────────────────────────────────────────────────────────┐
│  SharePoint · Drive · Confluence · Jira · Slack · NAS   │
└─────────────────────────────────────────────────────────┘

7 règles doctrinales encodées

Non-négociables. Toutes vérifiables par audit code (le repo lmbox-rag est sous NDA partenaire). Toutes auditeables au runtime par procédure rake `lmbox_rag:audit:verify`.

  1. 1
    Aucun document source ne quitte la box.

    Les contenus restent sur le disque chiffré at-rest. Les embeddings et les chunks vivent dans pgvector sur la box. Le cloud LMbox ne reçoit que des métriques agrégées (compteurs, fraîcheur) via le heartbeat.

  2. 2
    ACL respecté au query time.

    Chaque chunk porte la liste des identités source autorisées (groupes AD, permissions SharePoint, …). Le filtre s'applique en SQL via array overlap (index GIN), AVANT le top-K. Un user ne voit pas un chunk qu'il ne pourrait pas voir au source.

  3. 3
    Audit chain SHA-256 sur toute opération.

    Chaque search / read_doc / find_similar est tracé avec hash chaîné. Même primitive que le journal d'audit LMbox côté gbox-web. Un RSSI peut re-walker la chaîne et prouver l'intégrité.

  4. 4
    Multi-tenant strict.

    Une box L/XL peut héberger plusieurs tenants (multi-filiale, groupe). Isolation forcée au niveau modèle (default_scope) + au niveau API (header X-LMbox-Tenant obligatoire signé HMAC).

  5. 5
    Auth HMAC entre OpenClaw et lmbox-rag.

    Même primitive que la signature marketplace LMbox. Pas d'accès non-authentifié même en localhost. Le payload signé inclut method + path + timestamp + body_sha256, replay-protected à ±5 min.

  6. 6
    Quota par tenant.

    chunk_count_max, qps_max, dataset_count_max configurés par tier de box (S/M/L/XL). Au dépassement : 429 Too Many Requests avec audit log, jamais de dégradation silencieuse.

  7. 7
    RGPD purge CASCADE bout-en-bout.

    DELETE /api/v1/tenants/:id purge tous les datasets, documents, chunks, vecteurs. Vérifié au query suivant — un chunk orphelin doit être physiquement absent de l'index, pas juste flaggé deleted.

Stack technique

Pas de zone d'ombre. Le RSSI client peut tout auditer.

Couche Choix Pourquoi
AppRails 8.1.3 + Ruby 3.2.7Cohérent avec gbox-web. Workers Sidekiq, ActiveJob, ActiveRecord.
DBPostgreSQL 16 + pgvector 0.7+Une seule DB à exploiter. pgvector pour le vector search.
Index vectorielHNSW (vector_l2_ops)Meilleur recall/latency que IVFFlat sur 100k–10M chunks.
EmbeddingsOllama nomic-embed-text:v1.5 / bge-m3Multilingue FR/EN, déjà packagé dans le firmware, GPU-accel.
ChunkingRécursif semantic-aware512 tokens, overlap 64, respecte les bornes paragraphe.
Hybrid retrievalvector + pg_trgmTrigram body match pour les queries courtes / exactes.
AuthHMAC-SHA256 par tenantMême primitive que Marketplace::Signer côté LMbox.
MCPStreamable HTTP, spec 2025-11-25Consommable par Claude Code, Cursor, tout IDE LLM compatible.

Surface API

8 endpoints, tous HMAC-signed. Consommés par OpenClaw au runtime + par le serveur MCP qui les expose aux IDEs.

POST /api/v1/search Recherche vectorielle + hybrid + ACL filter
GET /api/v1/documents/:id Lecture body complet (ACL check obligatoire)
GET /api/v1/sources Liste datasets + fraîcheur indexation
POST /api/v1/find_similar Similarité par texte arbitraire
POST /api/v1/ingest/:dataset_slug/documents Push document (webhook connecteur ou direct)
DELETE /api/v1/tenants/:slug Purge RGPD CASCADE
GET /api/v1/health Liveness + readiness
GET /api/v1/health/stats Métriques agrégées pour heartbeat

lmbox-rag vs ragnight.com

Deux produits distincts qui peuvent coexister :

lmbox-rag (embarqué)

  • • Tourne sur votre box, dans votre rack
  • • Couche 2 de la stack souveraineté
  • • Inclus dans la licence LMbox
  • • Cas d'usage : KB primaire d'une entité

ragnight.com (SaaS option)

  • • Service cloud sovereign-EU (ragnight.com)
  • • Connectable depuis lmbox-rag comme une source externe
  • • Tarif à part, sur abonnement Ragnight
  • • Cas d'usage : KB cross-org partagée entre filiales / cabinets

La majorité des déploiements LMbox tournent en mode lmbox-rag seul — la souveraineté est totale sur les 4 couches. Pour les groupes multi-entités qui veulent un index cross-org, l'option Ragnight cloud connect est documentée séparément.

Audit du repo sous NDA partenaire

Le code source de lmbox-rag est auditable ligne par ligne par les partenaires fondateurs sous NDA. Inclut migrations, modèles, services, tests, Dockerfile, manifest systemd.