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

Projectarchitectuur

Overzicht van de monorepo-werkruimtestructuur en pakketgrenzen van LibreChat.

Monorepo-structuur

LibreChat is georganiseerd als een monorepo met duidelijk gedefinieerde werkruimtegrenzen:

WorkspaceTaalKantAfhankelijkheidDoel
/apiJS (legacy)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsExpress server — minimaliseer wijzigingen hier
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerNieuwe backend-code bevindt zich hier (alleen TS, wordt gebruikt door /api)
/packages/data-schemasTypeScriptBackendpackages/data-providerDatabasemodellen/-schema's, deelbaar over backend-projecten
/packages/data-providerTypeScriptGedeeld—Gedeelde API-types, endpoints, data-service — gebruikt door zowel frontend als backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientFrontend SPA
/packages/clientTypeScriptFrontendpackages/data-providerGedeelde frontend-hulpprogramma's

Kernprincipes

  • Alle nieuwe backend-code moet TypeScript zijn in /packages/api.
  • Houd /api wijzigingen tot het absolute minimum — dunne JS-wrappers die /packages/api aanroepen.
  • Database-specifieke gedeelde logica hoort thuis in /packages/data-schemas.
  • Gedeelde API-logica voor frontend/backend (endpoints, types, data-service) hoort in /packages/data-provider.

Bouwen en installeren

CommandoDoel
npm run smart-reinstallInstalleer afhankelijkheden (indien lockfile is gewijzigd) + bouw via Turborepo
npm run reinstallSchone installatie na het wijzigen van Node/npm-versies of wanneer de status van afhankelijkheden twijfelachtig is
npm run buildBouw alle gecompileerde code via Turborepo (parallel, gecachet)
npm run frontendBouw alle gecompileerde code sequentieel (legacy fallback)
npm run build:data-providerHerbouw packages/data-provider na wijzigingen
npm run backendStart de backend-server
npm run backend:devStart backend met file watching (ontwikkeling)
npm run frontend:devStart frontend dev-server met HMR (poort 3090, vereist dat de backend draait)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • Database: MongoDB
  • Backend draait op http://localhost:3080/; frontend dev server op http://localhost:3090/

Let op

Voor de volledige set aan codeerstandaarden en conventies, zie Code Standards and Conventions.

Hoe is deze gids?