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

Proje Mimarisi

LibreChat monorepo çalışma alanı yapısına ve paket sınırlarına genel bakış.

Monorepo Yapısı

LibreChat, net bir şekilde tanımlanmış çalışma alanı sınırlarına sahip bir monorepo olarak düzenlenmiştir:

Çalışma AlanıDilTarafBağımlılıkAmaç
/apiJS (eski)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsExpress sunucusu — burada yapılan değişiklikleri en aza indirin
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerYeni backend kodu burada yer alır (sadece TS, /api tarafından tüketilir)
/packages/data-schemasTypeScriptBackendpackages/data-providerVeritabanı modelleri/şemaları, backend projeleri arasında paylaşılabilir
/packages/data-providerTypeScriptPaylaşılanPaylaşılan API tipleri, endpoint'ler, veri servisi — hem frontend hem de backend tarafından kullanılır
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientFrontend SPA
/packages/clientTypeScriptFrontendpackages/data-providerPaylaşılan frontend araçları

Temel İlkeler

  • /packages/api içindeki tüm yeni backend kodları TypeScript olmalıdır.
  • /api değişikliklerini mutlak minimumda tutun — /packages/api dizinini çağıran ince JS sarmalayıcıları (wrappers) kullanın.
  • Veritabanına özgü paylaşılan mantık /packages/data-schemas içinde yer alır.
  • Frontend/backend paylaşımlı API mantığı (endpoints, types, data-service) /packages/data-provider dizininde yer almalıdır.

Oluşturma ve Kurulum

KomutAmaç
npm run smart-reinstallBağımlılıkları yükle (lockfile değiştiyse) + Turborepo ile derle
npm run reinstallNode/npm sürümleri değiştirildikten sonra veya bağımlılık durumu şüpheli olduğunda temiz kurulum yap
npm run buildTüm derlenmiş kodu Turborepo ile derle (paralel, önbellekli)
npm run frontendTüm derlenmiş kodu sırayla derle (eski yöntem yedeği)
npm run build:data-providerDeğişikliklerden sonra packages/data-provider paketini yeniden derle
npm run backendBackend sunucusunu başlat
npm run backend:devBackend'i dosya izleme ile başlat (geliştirme)
npm run frontend:devFrontend geliştirme sunucusunu HMR ile başlat (port 3090, backend'in çalışıyor olması gerekir)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • Veritabanı: MongoDB
  • Backend http://localhost:3080/ adresinde; frontend geliştirme sunucusu ise http://localhost:3090/ adresinde çalışır.

Not

Kodlama standartları ve kurallarının tamamı için Code Standards and Conventions bölümüne bakın.

Bu rehber nasıl?