Création d'une recherche de vecteurs d'entreprise dans Rails (partie 1/3) : architecture et mise en œuvre multi-locataires

DEV - 11/01
Il s'agit de la première partie d'une série de trois parties sur la création d'une recherche vectorielle prête pour la production pour les entreprises...

Il s'agit de la première partie d'une série de trois parties sur la création d'une recherche vectorielle prête pour la production pour les SaaS d'entreprise.

  • Partie 1 : Architecture et mise en œuvre 👈 Vous êtes ici
  • Partie 2 : Résilience et surveillance de la production (à venir mercredi)
  • Partie 3 : Optimisation des coûts et leçons apprises (à venir vendredi)

TL;DR : Plongez en profondeur dans la création d'une plate-forme SaaS d'entreprise qui traite plus de 2 millions de documents de conformité chaque mois à l'aide de la recherche vectorielle. Cette partie couvre l'architecture, la mise en œuvre de Rails et les modèles d'isolation multi-locataires.

Le problème commercial

Le scénario : une plate-forme SaaS d'entreprise au service des entreprises Fortune 500 qui gèrent la conformité réglementaire : banques, sociétés de soins de santé et sociétés pharmaceutiques confrontées à des exigences réglementaires complexes.

Le problème : les organisations reçoivent chaque mois des milliers de documents réglementaires (dépôts auprès de la SEC, directives de la FDA, normes ISO, mises à jour du RGPD). Les équipes de conformité passent plus de 60 heures/semaine à rechercher manuellement dans les PDF pour trouver les sections pertinentes.

Le défi : créer une recherche sémantique basée sur l'IA qui comprend le langage réglementaire et renvoie des résultats précis sur des millions de documents.

Les contraintes :

  • Plus de 150 clients d'entreprise (architecture multi-tenant)
  • 2,1 millions de documents au total, soit une croissance de 50 000 /mois
  • Document moyen : 200 pages, 500 Ko
  • Conforme SOC2 + RGPD (journaux d'audit, isolation des données)
  • SLA de disponibilité de 99,9 % (pénalités de 10 000 $/heure)
  • Budget : 2 500$/mois pour les infrastructures

L'architecture : ce que nous avons construit

Aperçu de haut niveau

Composants clés :

  • API Rails - Traitement de documents multi-locataires
  • Vectra - Client de base de données vectorielle unifiée (indépendant du fournisseur)
  • Qdrant - Base de données vectorielles auto-hébergée (coût + conformité RGPD)
  • Sidekiq - Traitement des tâches en arrière-plan
  • Sentence-Transformers - Génération d'intégration auto-hébergée

Traitement des documents multi-locataires

Le défi : traiter des PDF à grande échelle

Entrée : le client télécharge un PDF de 300 pages (dépôt SEC 10-K)

Exigences:

  • Extraire le texte d'un PDF
  • Divisé en morceaux consultables (avec chevauchement pour le contexte)
  • Générer des intégrations pour chaque morceau
  • Index avec isolement des locataires
  • Suivre l'état du traitement
  • Piste d’audit pour la conformité

La mise en œuvre

1. Modèle de do...
[Courte citation de 8% de l'article original]

Loading...