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

Développer des applications basées sur l'intelligence artificielle aujourd'hui implique bien plus que la simple intégration d'un modèle de langage. Il faut une interface conversationnelle avec une mémoire persistante, un système de recherche et d'exploitation de documents, une gestion de l'authentification et des utilisateurs, ainsi que la flexibilité de changer de fournisseur de modèles IA sans réécrire l'application. Chacune de ces composantes constitue un projet en soi, et les assembler en un système cohérent représente des mois de développement.

Bob est notre réponse à ce défi. Développé par Ten Invent et publié sous licence MIT, Bob est une plateforme open-source d'agents IA qui réunit conversations intelligentes, pipeline RAG complet (Retrieval-Augmented Generation), système multi-tenant avec authentification JWT et une couche d'abstraction permettant de basculer entre modèles IA en cloud et modèles locaux sans aucune modification du code applicatif.

Le Problème que Bob Résout

Un grand modèle de langage, aussi performant soit-il, n'est pas une application. Pour construire quelque chose de réellement utile, il faut un contexte conversationnel persistant afin que les utilisateurs puissent mener des dialogues cohérents sur plusieurs échanges. Il faut un système d'ingestion et de recherche de documents pour que le modèle réponde sur la base de vos données réelles plutôt que d'inventer des informations. Il faut une authentification, une gestion des utilisateurs et une administration des tokens API pour que plusieurs personnes ou équipes puissent utiliser le système en toute sécurité.

Et, aspect peut-être le plus important, il faut la liberté de choisir son fournisseur de modèles IA. Peut-être utilisez-vous Amazon Bedrock aujourd'hui, mais souhaitez-vous tester un modèle local sur Ollama ou LM Studio demain. Cette transition ne devrait pas impliquer de réécrire le backend.

La plupart des équipes finissent par construire toute cette infrastructure de zéro, souvent avec des résultats sous-optimaux et toujours avec une consommation de temps considérable. Bob réunit ces capacités dans une plateforme cohérente, bien architecturée, que vous pouvez déployer, étendre et personnaliser.

Vue d'Ensemble de l'Architecture

Bob suit une séparation nette entre backend et frontend, connectés via une API RESTful avec Server-Sent Events (SSE) pour le streaming des réponses en temps réel.

Le backend est construit avec FastAPI et SQLAlchemy 2, utilisant Alembic pour les migrations de base de données. Il gère toute la logique métier : gestion des conversations, orchestration des agents, traitement des documents, authentification des utilisateurs et communication avec les modèles de langage. MariaDB (ou MySQL) sert de base de données 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 réel, des fonctionnalités de téléchargement de documents, la gestion des sessions et un panneau d'administration pour l'approbation des utilisateurs et la configuration du système.

L'infrastructure est gérée via Docker pour le développement local et des templates AWS CloudFormation pour le déploiement en cloud, facilitant la transition d'un prototype local vers un environnement de production.

Fonctionnalités Principales

IA Conversationnelle avec Mémoire Persistante

Bob maintient un historique de conversation par session, permettant aux utilisateurs de mener des dialogues naturels sur plusieurs échanges. Chaque session conserve le contexte, de sorte que le modèle comprend les références aux parties antérieures de la conversation. Les réponses sont transmises en flux en temps réel via SSE, offrant une expérience utilisateur fluide et réactive.

Pipeline RAG avec ChromaDB

L'une des capacités les plus précieuses de Bob est son pipeline de Retrieval-Augmented Generation. Les utilisateurs peuvent télécharger des documents qui sont traités par les utilitaires de LangChain, découpés en fragments, transformés en embeddings et stockés dans ChromaDB. Lorsqu'un utilisateur pose une question, Bob récupère les fragments de documents les plus pertinents et les inclut comme contexte pour le modèle de langage, produisant des réponses ancrées dans vos données réelles.

C'est essentiel pour les cas d'usage professionnels et en entreprise où la précision compte. Au lieu de s'appuyer uniquement sur les données d'entraînement du modèle, 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 opérations mathématiques, une recherche de date et heure, une récupération de documents pour les réponses basées sur le RAG et un outil de résumé pour condenser les textes plus longs. L'agent décide de manière autonome quand et comment utiliser ces outils en fonction de la requête de l'utilisateur.

Système Multi-Tenant avec Authentification JWT

Bob est conçu dès le départ pour les environnements multi-utilisateurs. Il inclut un système d'authentification complet basé sur les tokens JWT, avec une inscription des utilisateurs qui nécessite l'approbation d'un administrateur avant l'octroi de l'accès. Les utilisateurs peuvent gérer leurs propres tokens API pour l'accès programmatique. Cela rend Bob adapté aux déploiements en équipe, aux outils internes et aux applications de type SaaS où l'isolation des utilisateurs et le contrôle d'accès sont essentiels.

Support LLM Flexible : Cloud ou Local, à 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'inférence en cloud, donnant accès à des modèles comme Claude, Llama et d'autres disponibles via AWS.
  • Serveurs compatibles OpenAI tels que LM Studio, Ollama ou vLLM pour l'inférence locale ou auto-hébergée.

Passer d'un fournisseur à l'autre est un changement de configuration, pas un changement de code. Vous pouvez développer localement avec un modèle sur Ollama, tester avec un autre modèle sur LM Studio et déployer en production sur Amazon Bedrock — le tout sans modifier votre application. Pour les organisations soumises à des exigences de souveraineté des données ou pour ceux qui souhaitent expérimenter avec différents modèles, cette flexibilité est inestimable.

Stack Technique en un Coup d'Œil

Couche Technologie
Framework Backend FastAPI
ORM et Migrations SQLAlchemy 2 + Alembic
Base de Données MariaDB / MySQL
Base Vectorielle ChromaDB
Traitement de Documents LangChain
Orchestration d'Agents Strands Agents
Intégration 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 conçue pour être aussi simple que possible. Le dépôt inclut des configurations Docker Compose pour le développement local, de sorte que vous pouvez avoir l'ensemble de la pile — backend, frontend, base de données et base vectorielle — opérationnelle en quelques commandes.

  1. Clonez le dépôt depuis https://github.com/ianghel/bob.
  2. Configurez les variables d'environnement pour le fournisseur LLM choisi.
  3. Exécutez docker compose up pour démarrer tous les services.
  4. Accédez au frontend, enregistrez un utilisateur et commencez à converser.

Le fichier README du dépôt fournit des instructions détaillées pour le développement local et le déploiement 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 être transparente, auditable et personnalisable. Les plateformes IA propriétaires vous enferment chez des fournisseurs spécifiques, dissimulent leurs détails d'implémentation et facturent des prix premium pour des fonctionnalités qui devraient être standard. Avec Bob, vous disposez du code source complet sous licence MIT. Vous pouvez inspecter chaque ligne, modifier tout ce qui convient à vos besoins et déployer la plateforme où vous le souhaitez — sur vos propres serveurs, dans votre propre compte cloud ou sur le portable d'un développeur.

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'intégrer dans vos systèmes existants ou l'utiliser comme ressource d'apprentissage pour comprendre comment les applications IA de production sont structurées.

Contributions et Communauté

Bob est activement développé par Ten Invent et nous accueillons avec plaisir les contributions de la communauté. Qu'il s'agisse d'ajouter de nouveaux outils d'agent, d'améliorer le pipeline RAG, de prendre en charge des fournisseurs LLM supplémentaires, de peaufiner le frontend ou de corriger des bugs — chaque pull request et chaque rapport de problème est apprécié.

Visitez le dépôt sur https://github.com/ianghel/bob pour explorer le code, lire la documentation et vous impliquer. Si Bob vous est utile, attribuez une étoile au projet sur GitHub — cela aide d'autres personnes à le découvrir.

Nous avons hâte de voir ce que vous construirez avec Bob.