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 travail | Langage | CÎté | Dépendance | Objectif |
|---|---|---|---|---|
/api | JS (hĂ©ritĂ©) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Serveur Express â minimiser les changements ici |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Le nouveau code backend réside ici (TS uniquement, consommé par /api) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | ModÚles/schémas de base de données, partageables entre les projets backend |
/packages/data-provider | TypeScript | PartagĂ© | â | Types d'API partagĂ©s, endpoints, data-service â utilisĂ©s Ă la fois par le frontend et le backend |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | SPA Frontend |
/packages/client | TypeScript | Frontend | packages/data-provider | Utilitaires frontend partagés |
Principes clés
- Tout nouveau code backend doit ĂȘtre en TypeScript dans
/packages/api. - Gardez les changements dans
/apiau 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
| Commande | Objectif |
|---|---|
npm run smart-reinstall | Installe les dépendances (si le fichier lock a changé) + build via Turborepo |
npm run reinstall | Installation propre aprÚs un changement de version de Node/npm ou lorsque l'état des dépendances est suspect |
npm run build | Build tout le code compilé via Turborepo (parallÚle, mis en cache) |
npm run frontend | Build tout le code compilé séquentiellement (solution de repli héritée) |
npm run build:data-provider | Reconstruit packages/data-provider aprĂšs des modifications |
npm run backend | Démarre le serveur backend |
npm run backend:dev | Démarre le backend avec surveillance des fichiers (développement) |
npm run frontend:dev | Dé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 surhttp://localhost:3090/
Note
Pour l'ensemble complet des normes et conventions de codage, consultez Code Standards and Conventions.
Que pensez-vous de ce guide ?