Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Architecture du projet

Vue d'ensemble de la structure de l'espace de travail monorepo de LibreChat et des limites des paquets.

Structure du Monorepo

LibreChat est organisé sous forme de monorepo avec des limites d'espace de travail clairement définies :

Espace de travailLangageCÎtéDépendanceObjectif
/apiJS (hĂ©ritĂ©)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsServeur Express — minimiser les changements ici
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerLe nouveau code backend réside ici (TS uniquement, consommé par /api)
/packages/data-schemasTypeScriptBackendpackages/data-providerModÚles/schémas de base de données, partageables entre les projets backend
/packages/data-providerTypeScriptPartagé—Types d'API partagĂ©s, endpoints, data-service — utilisĂ©s Ă  la fois par le frontend et le backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientSPA Frontend
/packages/clientTypeScriptFrontendpackages/data-providerUtilitaires frontend partagés

Principes clés

  • Tout nouveau code backend doit ĂȘtre en TypeScript dans /packages/api.
  • Gardez les changements dans /api au strict minimum — de lĂ©gers wrappers JS appelant /packages/api.
  • La logique partagĂ©e spĂ©cifique Ă  la base de donnĂ©es se trouve dans /packages/data-schemas.
  • La logique API partagĂ©e entre le frontend et le backend (endpoints, types, data-service) se trouve dans /packages/data-provider.

Construction et installation

CommandeObjectif
npm run smart-reinstallInstalle les dépendances (si le fichier lock a changé) + build via Turborepo
npm run reinstallInstallation propre aprÚs un changement de version de Node/npm ou lorsque l'état des dépendances est suspect
npm run buildBuild tout le code compilé via Turborepo (parallÚle, mis en cache)
npm run frontendBuild tout le code compilé séquentiellement (solution de repli héritée)
npm run build:data-providerReconstruit packages/data-provider aprĂšs des modifications
npm run backendDémarre le serveur backend
npm run backend:devDémarre le backend avec surveillance des fichiers (développement)
npm run frontend:devDémarre le serveur de développement frontend avec HMR (port 3090, nécessite que le backend soit en cours d'exécution)
  • Node.js : v24.16.0
  • npm : v11.16.0
  • Base de donnĂ©es : MongoDB
  • Le backend s'exĂ©cute sur http://localhost:3080/ ; le serveur de dĂ©veloppement frontend sur http://localhost:3090/

Note

Pour l'ensemble complet des normes et conventions de codage, consultez Code Standards and Conventions.

Que pensez-vous de ce guide ?