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

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:

WorkspaceLinguaggioLatoDipendenzaScopo
/apiJS (legacy)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsServer Express — ridurre al minimo le modifiche qui
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerIl nuovo codice backend risiede qui (solo TS, consumato da /api)
/packages/data-schemasTypeScriptBackendpackages/data-providerModelli/schemi del database, condivisibili tra i progetti backend
/packages/data-providerTypeScriptCondiviso—Tipi API condivisi, endpoint, data-service — utilizzati sia dal frontend che dal backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientSPA frontend
/packages/clientTypeScriptFrontendpackages/data-providerUtility frontend condivise

Principi Chiave

  • Tutto il nuovo codice backend deve essere in TypeScript in /packages/api.
  • Mantieni le modifiche a /api al 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

ComandoScopo
npm run smart-reinstallInstalla le dipendenze (se il lockfile è cambiato) + build tramite Turborepo
npm run reinstallInstallazione pulita dopo aver cambiato le versioni di Node/npm o quando lo stato delle dipendenze è sospetto
npm run buildCompila tutto il codice tramite Turborepo (in parallelo, memorizzato nella cache)
npm run frontendCompila tutto il codice in sequenza (fallback legacy)
npm run build:data-providerRicompila packages/data-provider dopo le modifiche
npm run backendAvvia il server backend
npm run backend:devAvvia il backend con il monitoraggio dei file (sviluppo)
npm run frontend:devAvvia 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 su http://localhost:3090/

Nota

Per l'insieme completo degli standard e delle convenzioni di codifica, consultare Code Standards and Conventions.

Com’è questa guida?