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

Kiến trúc dự án

Tổng quan về cấu trúc không gian làm việc monorepo và các ranh giới gói của LibreChat.

Cấu trúc Monorepo

LibreChat được tổ chức dưới dạng một monorepo với các ranh giới không gian làm việc được xác định rõ ràng:

WorkspaceNgôn ngữPhíaPhụ thuộcMục đích
/apiJS (cũ)Backendpackages/api, packages/data-schemas, packages/data-provider, @librechat/agentsMáy chủ Express — hạn chế thay đổi tại đây
/packages/apiTypeScriptBackendpackages/data-schemas, packages/data-providerMã backend mới nằm ở đây (chỉ dùng TS, được /api sử dụng)
/packages/data-schemasTypeScriptBackendpackages/data-providerCác mô hình/lược đồ cơ sở dữ liệu, có thể chia sẻ giữa các dự án backend
/packages/data-providerTypeScriptDùng chungCác kiểu API dùng chung, endpoint, data-service — được sử dụng bởi cả frontend và backend
/clientTypeScript/ReactFrontendpackages/data-provider, packages/clientFrontend SPA
/packages/clientTypeScriptFrontendpackages/data-providerCác tiện ích frontend dùng chung

Các Nguyên tắc Chính

  • Tất cả mã backend mới phải là TypeScript trong /packages/api.
  • Giữ các thay đổi đối với /api ở mức tối thiểu tuyệt đối — các trình bao bọc JS mỏng gọi vào /packages/api.
  • Logic dùng chung dành riêng cho cơ sở dữ liệu nằm trong /packages/data-schemas.
  • Logic API dùng chung giữa frontend/backend (endpoints, types, data-service) nằm trong /packages/data-provider.

Xây dựng và Cài đặt

LệnhMục đích
npm run smart-reinstallCài đặt các phụ thuộc (nếu lockfile thay đổi) + build thông qua Turborepo
npm run reinstallCài đặt sạch sau khi thay đổi phiên bản Node/npm hoặc khi trạng thái phụ thuộc không ổn định
npm run buildBuild tất cả mã đã biên dịch thông qua Turborepo (song song, có bộ nhớ đệm)
npm run frontendBuild tất cả mã đã biên dịch theo trình tự (phương thức dự phòng cũ)
npm run build:data-providerBuild lại packages/data-provider sau khi có thay đổi
npm run backendKhởi động máy chủ backend
npm run backend:devKhởi động backend với tính năng theo dõi tệp (phát triển)
npm run frontend:devKhởi động máy chủ frontend dev với HMR (cổng 3090, yêu cầu backend đang chạy)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • Cơ sở dữ liệu: MongoDB
  • Backend chạy trên http://localhost:3080/; máy chủ phát triển frontend trên http://localhost:3090/

Lưu ý

Để biết toàn bộ các tiêu chuẩn và quy ước lập trình, hãy xem Code Standards and Conventions.

Hướng dẫn này thế nào?