Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack ๐ŸŽ‰ Learn more
LibreChat

Arsitektur Proyek

Ikhtisar struktur ruang kerja monorepo LibreChat dan batasan paket.

Struktur Monorepo

LibreChat diatur sebagai monorepo dengan batasan ruang kerja yang terdefinisi dengan jelas:

WorkspaceBahasaSisiDependensiTujuan
/apiJS (warisan)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsServer Express โ€” minimalkan perubahan di sini
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerKode backend baru berada di sini (hanya TS, digunakan oleh /api)
/packages/data-schemasTypeScriptBackendpackages/data-providerModel/skema basis data, dapat dibagikan di seluruh proyek backend
/packages/data-providerTypeScriptBersamaโ€”Tipe API bersama, endpoint, layanan data โ€” digunakan oleh frontend dan backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientSPA Frontend
/packages/clientTypeScriptFrontendpackages/data-providerUtilitas frontend bersama

Prinsip Utama

  • Semua kode backend baru harus menggunakan TypeScript di /packages/api.
  • Jaga perubahan /api seminimal mungkin โ€” pembungkus JS tipis yang memanggil /packages/api.
  • Logika bersama yang spesifik untuk basis data berada di /packages/data-schemas.
  • Logika API bersama frontend/backend (endpoint, tipe, data-service) berada di /packages/data-provider.

Membangun dan Menginstal

PerintahTujuan
npm run smart-reinstallInstal dependensi (jika lockfile berubah) + build melalui Turborepo
npm run reinstallInstal bersih setelah mengubah versi Node/npm atau saat status dependensi mencurigakan
npm run buildBuild semua kode terkompilasi melalui Turborepo (paralel, di-cache)
npm run frontendBuild semua kode terkompilasi secara berurutan (fallback lama)
npm run build:data-providerBuild ulang packages/data-provider setelah ada perubahan
npm run backendJalankan server backend
npm run backend:devJalankan backend dengan pemantauan file (pengembangan)
npm run frontend:devJalankan server dev frontend dengan HMR (port 3090, memerlukan backend yang sedang berjalan)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • Basis data: MongoDB
  • Backend berjalan pada http://localhost:3080/; server pengembangan frontend pada http://localhost:3090/

Catatan

Untuk rangkaian lengkap standar dan konvensi pengkodean, lihat Code Standards and Conventions.

Bagaimana panduan ini?