3e96e963d7
- Convert src/frontend to a pnpm workspace (catalog-pinned shared deps, only-allow pnpm, npm lockfiles removed, both Dockerfiles on corepack/pnpm) - New packages/ui (@bisheng/ui): source-shipped presentation-only library. First component Button (moved from client, which keeps a re-export shim so all call sites work unchanged), cn util, two-layer design tokens (tokens.css + tailwind-preset incl. dark ramp), design-token.cjs SSOT moved here (client re-exports it) - Component docs move into packages/ui/docs (git-tracked); rspress site stays hosted in client, root/outDir repointed, button demos import @bisheng/ui; doc_build + playground artifacts gitignored - pnpm-migration fixes: pin vite-plugin-node-polyfills to 0.23.0 (0.23.1 unenv rewrite breaks CJS named-export detection), rollup/vite overrides matching the old npm resolutions, fs/promises + node:fs/promises stubs - Harness rules: new packages/ui/AGENTS.md (library contract, token SSOT discipline, interaction rules, component definition-of-done); client AGENTS.md gains design-system hard rules; commands/docs updated to pnpm
BiSheng 架构文档
BiSheng v2.5.0 是面向企业的开源 LLM 应用 DevOps 平台,基于 FastAPI + React + LangGraph 构建,采用 DDD 架构组织 15+ 领域模块,支持工作流编排、知识库/RAG、多 Agent 协作(Linsight)、MCP 集成、模型评测与微调、多租户隔离。
仓库结构
bisheng/
├── src/backend/bisheng/ # FastAPI 后端主应用
├── src/backend/bisheng_langchain/ # LangChain 扩展包
├── src/frontend/platform/ # 管理端前端 (React)
├── src/frontend/client/ # 用户端前端 (React)
├── docker/ # Docker Compose 部署
└── docs/ # 文档
文档导航
| 文档 | 说明 |
|---|---|
| 系统架构全景图 | 运行时组件、请求数据流、技术栈、启动生命周期 |
| 后端领域模块总览 | 15+ DDD 模块清单、分层约定、基础设施详解 |
| 工作流引擎 | LangGraph DAG 执行引擎、14 种节点类型、回调机制 |
| 知识库与 RAG 管道 | 三阶段管道、双向量存储、文档处理流水线 |
| Linsight Agent 与 MCP | 自主任务框架、事件驱动、MCP 协议集成 |
| 双前端架构 | Platform + Client 双应用、状态管理、组件库 |
| 数据模型与存储层 | 24 个 ORM 模型、5 种存储引擎、DAO 模式 |
| 部署架构与配置 | Docker Compose 编排、配置系统、开发环境 |
| 用户与权限体系 | 三层权限模型、RBAC、协作空间成员制、扩展分析 |
| 开发指南 | 环境搭建、模块约定、扩展点、测试 |
| 商业版 API 网关 | Gateway 架构、SSO/OAuth 流程、内容安全、流控、开发环境 |
| 多租户架构 | 逻辑隔离、租户上下文传播、自动过滤、存储隔离、Celery 传递 |
| 列表 Cursor 翻页与无限滚动 | F027 — cursor envelope、keyset DM8 兼容、fetch-until-enough、前端 LoadMore 模式 |
快速导航
- 想了解系统整体如何运行、各服务之间如何通信,请看 系统架构全景图
- 想了解后端代码的组织方式和各模块职责,请看 后端领域模块总览
- 想了解工作流如何定义和执行、如何扩展自定义节点,请看 工作流引擎
- 想了解文档解析、向量化、检索的完整流程,请看 知识库与 RAG 管道
- 想了解如何部署项目或搭建本地开发环境,请看 部署架构与配置
- 想了解用户认证、角色权限、资源授权的完整机制,请看 用户与权限体系
- 想了解开发规范、如何新增模块或编写测试,请看 开发指南
- 想了解商业版网关(SSO/OAuth、内容安全、流控)的架构和开发方式,请看 商业版 API 网关
- 想了解多租户隔离机制、租户上下文传播和开发注意事项,请看 多租户架构
- 想新加一个走 cursor 翻页 + 无限滚动的列表接口,请看 列表 Cursor 翻页与无限滚动