Skip to content
Bob : La Plateforme Open-Source d'Agents IA avec RAG et Multi-Tenancy
← ← Retour aux Réflexions AI

Bob : La Plateforme Open-Source d'Agents IA avec RAG et Multi-Tenancy

Developper des applications basees sur l'intelligence artificielle aujourd'hui implique bien plus que la simple integration d'un modele de langage. Il faut une interface conversationnelle avec une memoire persistante, un systeme de recherche et d'exploitation de documents, une gestion de l'authentification et des utilisateurs, ainsi que la flexibilite de changer de fournisseur de modeles IA sans reecrire l'application. Chacune de ces composantes constitue un projet en soi, et les assembler en un systeme coherent represente des mois de developpement.

Bob est notre reponse a ce defi. Developpe par Ten Invent et publie sous licence MIT, Bob est une plateforme open-source d'agents IA qui reunit conversations intelligentes, pipeline RAG complet (Retrieval-Augmented Generation), systeme multi-tenant avec authentification JWT et une couche d'abstraction permettant de basculer entre modeles IA en cloud et modeles locaux sans aucune modification du code applicatif.

Le Probleme que Bob Resout

Un grand modele de langage, aussi performant soit-il, n'est pas une application. Pour construire quelque chose de reellement utile, il faut un contexte conversationnel persistant afin que les utilisateurs puissent mener des dialogues coherents sur plusieurs echanges. Il faut un systeme d'ingestion et de recherche de documents pour que le modele reponde sur la base de vos donnees reelles plutot que d'inventer des informations. Il faut une authentification, une gestion des utilisateurs et une administration des tokens API pour que plusieurs personnes ou equipes puissent utiliser le systeme en toute securite.

Et, aspect peut-etre le plus important, il faut la liberte de choisir son fournisseur de modeles IA. Peut-etre utilisez-vous Amazon Bedrock aujourd'hui, mais souhaitez-vous tester un modele local sur Ollama ou LM Studio demain. Cette transition ne devrait pas impliquer de reecrire le backend.

La plupart des equipes finissent par construire toute cette infrastructure de zero, souvent avec des resultats sous-optimaux et toujours avec une consommation de temps considerable. Bob reunit ces capacites dans une plateforme coherente, bien architecturee, que vous pouvez deployer, etendre et personnaliser.

Vue d'Ensemble de l'Architecture

Bob suit une separation nette entre backend et frontend, connectes via une API RESTful avec Server-Sent Events (SSE) pour le streaming des reponses en temps reel.

Le backend est construit avec FastAPI et SQLAlchemy 2, utilisant Alembic pour les migrations de base de donnees. Il gere toute la logique metier : gestion des conversations, orchestration des agents, traitement des documents, authentification des utilisateurs et communication avec les modeles de langage. MariaDB (ou MySQL) sert de base de donnees relationnelle, tandis que ChromaDB fait office de base vectorielle pour le pipeline RAG.

Le frontend est une application React moderne construite avec Vite, TypeScript et Tailwind CSS. Il offre une interface de chat responsive avec streaming en temps reel, des fonctionnalites de telechargement de documents, la gestion des sessions et un panneau d'administration pour l'approbation des utilisateurs et la configuration du systeme.

L'infrastructure est geree via Docker pour le developpement local et des templates AWS CloudFormation pour le deploiement en cloud, facilitant la transition d'un prototype local vers un environnement de production.

Fonctionnalites Principales

IA Conversationnelle avec Memoire Persistante

Bob maintient un historique de conversation par session, permettant aux utilisateurs de mener des dialogues naturels sur plusieurs echanges. Chaque session conserve le contexte, de sorte que le modele comprend les references aux parties anterieures de la conversation. Les reponses sont transmises en flux en temps reel via SSE, offrant une experience utilisateur fluide et reactive.

Pipeline RAG avec ChromaDB

L'une des capacites les plus precieuses de Bob est son pipeline de Retrieval-Augmented Generation. Les utilisateurs peuvent telecharger des documents qui sont traites par les utilitaires de LangChain, decoupes en fragments, transformes en embeddings et stockes dans ChromaDB. Lorsqu'un utilisateur pose une question, Bob recupere les fragments de documents les plus pertinents et les inclut comme contexte pour le modele de langage, produisant des reponses ancrees dans vos donnees reelles.

C'est essentiel pour les cas d'usage professionnels et en entreprise ou la precision compte. Au lieu de s'appuyer uniquement sur les donnees d'entrainement du modele, Bob peut s'appuyer sur votre documentation interne, vos articles de recherche, vos documents de politique ou tout autre corpus textuel que vous lui fournissez.

Outils d'Agent via Strands Agents

Bob n'est pas qu'une simple interface de chat — c'est une plateforme d'agents. Via Strands Agents, Bob orchestre un ensemble d'outils que l'IA peut invoquer pendant les conversations : une calculatrice pour les operations mathematiques, une recherche de date et heure, une recuperation de documents pour les reponses basees sur le RAG et un outil de resume pour condenser les textes plus longs. L'agent decide de maniere autonome quand et comment utiliser ces outils en fonction de la requete de l'utilisateur.

Systeme Multi-Tenant avec Authentification JWT

Bob est concu des le depart pour les environnements multi-utilisateurs. Il inclut un systeme d'authentification complet base sur les tokens JWT, avec une inscription des utilisateurs qui necessite l'approbation d'un administrateur avant l'octroi de l'acces. Les utilisateurs peuvent gerer leurs propres tokens API pour l'acces programmatique. Cela rend Bob adapte aux deploiements en equipe, aux outils internes et aux applications de type SaaS ou l'isolation des utilisateurs et le controle d'acces sont essentiels.

Support LLM Flexible : Cloud ou Local, a Vous de Choisir

L'aspect le plus distinctif de l'architecture de Bob est sans doute sa couche d'abstraction des fournisseurs. Bob prend en charge deux backends LLM :

  • Amazon Bedrock pour l'inference en cloud, donnant acces a des modeles comme Claude, Llama et d'autres disponibles via AWS.
  • Serveurs compatibles OpenAI tels que LM Studio, Ollama ou vLLM pour l'inference locale ou auto-hebergee.

Passer d'un fournisseur a l'autre est un changement de configuration, pas un changement de code. Vous pouvez developper localement avec un modele sur Ollama, tester avec un autre modele sur LM Studio et deployer en production sur Amazon Bedrock — le tout sans modifier votre application. Pour les organisations soumises a des exigences de souverainete des donnees ou pour ceux qui souhaitent experimenter avec differents modeles, cette flexibilite est inestimable.

Stack Technique en un Coup d'Oeil

| Couche | Technologie | |---|---| | Framework Backend | FastAPI | | ORM et Migrations | SQLAlchemy 2 + Alembic | | Base de Donnees | MariaDB / MySQL | | Base Vectorielle | ChromaDB | | Traitement de Documents | LangChain | | Orchestration d'Agents | Strands Agents | | Integration AWS | boto3 | | Framework Frontend | React + Vite | | Langage Frontend | TypeScript | | Stylisation | Tailwind CSS | | Authentification | JWT | | Infrastructure | Docker, AWS CloudFormation |

Pour Commencer

La mise en route de Bob est concue pour etre aussi simple que possible. Le depot inclut des configurations Docker Compose pour le developpement local, de sorte que vous pouvez avoir l'ensemble de la pile — backend, frontend, base de donnees et base vectorielle — opérationnelle en quelques commandes.

  1. Clonez le depot depuis https://github.com/ianghel/bob.
  2. Configurez les variables d'environnement pour le fournisseur LLM choisi.
  3. Executez docker compose up pour demarrer tous les services.
  4. Accedez au frontend, enregistrez un utilisateur et commencez a converser.

Le fichier README du depot fournit des instructions detaillees pour le developpement local et le deploiement sur AWS avec les templates CloudFormation inclus.

Pourquoi l'Open Source Compte

Nous avons construit Bob comme projet open-source parce que nous sommes convaincus que l'infrastructure IA doit etre transparente, auditable et personnalisable. Les plateformes IA proprietaires vous enferment chez des fournisseurs specifiques, dissimulent leurs details d'implementation et facturent des prix premium pour des fonctionnalites qui devraient etre standard. Avec Bob, vous disposez du code source complet sous licence MIT. Vous pouvez inspecter chaque ligne, modifier tout ce qui convient a vos besoins et deployer la plateforme ou vous le souhaitez — sur vos propres serveurs, dans votre propre compte cloud ou sur le portable d'un developpeur.

La licence MIT signifie qu'il n'y a aucune restriction pour l'utilisation commerciale. Vous pouvez construire des produits sur la base de Bob, l'integrer dans vos systemes existants ou l'utiliser comme ressource d'apprentissage pour comprendre comment les applications IA de production sont structurees.

Contributions et Communaute

Bob est activement developpe par Ten Invent et nous accueillons avec plaisir les contributions de la communaute. Qu'il s'agisse d'ajouter de nouveaux outils d'agent, d'ameliorer le pipeline RAG, de prendre en charge des fournisseurs LLM supplementaires, de peaufiner le frontend ou de corriger des bugs — chaque pull request et chaque rapport de probleme est apprecie.

Visitez le depot sur https://github.com/ianghel/bob pour explorer le code, lire la documentation et vous impliquer. Si Bob vous est utile, attribuez une etoile au projet sur GitHub — cela aide d'autres personnes a le decouvrir.

Nous avons hate de voir ce que vous construirez avec Bob.