Architettura del progetto
Panoramica della struttura dell'area di lavoro monorepo di LibreChat e dei confini dei pacchetti.
Struttura del Monorepo
LibreChat è organizzato come un monorepo con confini dell'area di lavoro chiaramente definiti:
| Workspace | Linguaggio | Lato | Dipendenza | Scopo |
|---|---|---|---|---|
/api | JS (legacy) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Server Express — ridurre al minimo le modifiche qui |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Il nuovo codice backend risiede qui (solo TS, consumato da /api) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | Modelli/schemi del database, condivisibili tra i progetti backend |
/packages/data-provider | TypeScript | Condiviso | — | Tipi API condivisi, endpoint, data-service — utilizzati sia dal frontend che dal backend |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | SPA frontend |
/packages/client | TypeScript | Frontend | packages/data-provider | Utility frontend condivise |
Principi Chiave
- Tutto il nuovo codice backend deve essere in TypeScript in
/packages/api. - Mantieni le modifiche a
/apial minimo assoluto: sottili wrapper JS che richiamano/packages/api. - La logica condivisa specifica per il database appartiene a
/packages/data-schemas. - La logica API condivisa tra frontend e backend (endpoint, tipi, data-service) si trova in
/packages/data-provider.
Build e Installazione
| Comando | Scopo |
|---|---|
npm run smart-reinstall | Installa le dipendenze (se il lockfile è cambiato) + build tramite Turborepo |
npm run reinstall | Installazione pulita dopo aver cambiato le versioni di Node/npm o quando lo stato delle dipendenze è sospetto |
npm run build | Compila tutto il codice tramite Turborepo (in parallelo, memorizzato nella cache) |
npm run frontend | Compila tutto il codice in sequenza (fallback legacy) |
npm run build:data-provider | Ricompila packages/data-provider dopo le modifiche |
npm run backend | Avvia il server backend |
npm run backend:dev | Avvia il backend con il monitoraggio dei file (sviluppo) |
npm run frontend:dev | Avvia il server di sviluppo frontend con HMR (porta 3090, richiede il backend in esecuzione) |
- Node.js:
v24.16.0 - npm:
v11.16.0 - Database: MongoDB
- Il backend viene eseguito su
http://localhost:3080/; il server di sviluppo del frontend suhttp://localhost:3090/
Nota
Per l'insieme completo degli standard e delle convenzioni di codifica, consultare Code Standards and Conventions.
Com’è questa guida?