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:
| Workspace | Ngôn ngữ | Phía | Phụ thuộc | Mục đích |
|---|---|---|---|---|
/api | JS (cũ) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Máy chủ Express — hạn chế thay đổi tại đây |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Mã backend mới nằm ở đây (chỉ dùng TS, được /api sử dụng) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | Các mô hình/lược đồ cơ sở dữ liệu, có thể chia sẻ giữa các dự án backend |
/packages/data-provider | TypeScript | Dùng chung | — | Các kiểu API dùng chung, endpoint, data-service — được sử dụng bởi cả frontend và backend |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | Frontend SPA |
/packages/client | TypeScript | Frontend | packages/data-provider | Cá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ệnh | Mục đích |
|---|---|
npm run smart-reinstall | Cài đặt các phụ thuộc (nếu lockfile thay đổi) + build thông qua Turborepo |
npm run reinstall | Cà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 build | Build tất cả mã đã biên dịch thông qua Turborepo (song song, có bộ nhớ đệm) |
npm run frontend | Build tất cả mã đã biên dịch theo trình tự (phương thức dự phòng cũ) |
npm run build:data-provider | Build lại packages/data-provider sau khi có thay đổi |
npm run backend | Khởi động máy chủ backend |
npm run backend:dev | Khởi động backend với tính năng theo dõi tệp (phát triển) |
npm run frontend:dev | Khở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ênhttp://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?