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

项目架构

LibreChat 的 monorepo 工作区结构与包边界概述。

Monorepo 结构

LibreChat 采用 monorepo(单体仓库)结构,并具有明确定义的工作区边界:

工作区语言端侧依赖用途
/apiJS (旧版)后端packages/api, packages/data-schemas, packages/data-provider, @librechat/agentsExpress 服务器 — 尽量减少此处的更改
/packages/apiTypeScript后端packages/data-schemas, packages/data-provider新的后端代码存放于此(仅限 TS,由 /api 调用)
/packages/data-schemasTypeScript后端packages/data-provider数据库模型/模式,可在后端项目间共享
/packages/data-providerTypeScript共享共享的 API 类型、endpoint、数据服务 — 前后端均可使用
/clientTypeScript/React前端packages/data-provider, packages/client前端 SPA
/packages/clientTypeScript前端packages/data-provider共享的前端工具库

核心原则

  • 所有新的后端代码必须使用 TypeScript,位于 /packages/api 中。
  • 保持 /api 的变更在绝对最小范围内 —— 仅保留调用 /packages/api 的轻量级 JS 包装器。
  • 特定于数据库的共享逻辑应放在 /packages/data-schemas 中。
  • 前端/后端共享的 API 逻辑(endpoints、types、data-service)应放置在 /packages/data-provider 中。

构建与安装

命令用途
npm run smart-reinstall安装依赖(如果 lockfile 已更改)+ 通过 Turborepo 构建
npm run reinstall在更改 Node/npm 版本或依赖状态异常时进行全新安装
npm run build通过 Turborepo 构建所有编译代码(并行、缓存)
npm run frontend按顺序构建所有编译代码(旧版回退方案)
npm run build:data-provider在更改后重新构建 packages/data-provider
npm run backend启动后端服务器
npm run backend:dev启动带有文件监视功能的后端(开发模式)
npm run frontend:dev启动带有 HMR 的前端开发服务器(端口 3090,需要后端正在运行)
  • Node.js: v24.16.0
  • npm: v11.16.0
  • 数据库:MongoDB
  • 后端运行在 http://localhost:3080/;前端开发服务器运行在 http://localhost:3090/

注意

有关完整的编码标准和规范,请参阅 Code Standards and Conventions

这篇指南怎么样?