本文档将高层次地概述 LobeChat 的系统架构,涵盖构成该应用基础的主要技术组件、服务层和集成模式。本概览侧重于结构组织和关键架构决策,这些决策共同促成了 LobeChat 作为开源 AI 聊天平台的功能。
有关特定子系统的详细信息,请参阅
LobeChat 是使用 TypeScript 构建的现代化 Next.js 应用程序,它利用了一个旨在实现可扩展性和开发者体验的全面技术栈。
| 组件 | 技术 | 目的 |
|---|---|---|
| 前端框架 | Next.js 15, React 19 | 服务器端渲染、路由、API 路由 |
| 语言 | TypeScript | 类型安全和开发者体验 |
| 状态管理 | Zustand | 客户端状态管理 |
| UI 框架 | @lobehub/ui, Ant Design | 组件库和设计系统 |
| 数据库(客户端) | PGLite, IndexedDB | 基于浏览器的 SQL 数据库 |
| 数据库(服务器) | PostgreSQL, Drizzle ORM | 服务器端持久化 |
| 身份验证 | NextAuth.js, Clerk | 多提供商身份验证 |
| AI 集成 | 多个 SDK | 40+ AI 模型提供商 |
| 构建系统 | Turbopack, Vitest | 开发和测试 |
下图说明了主要的应用结构以及 Next.js 如何组织核心组件
来源: package.json208 tsconfig.json20-23
此图显示了关键的服务类及其关系,使用了代码库中的实际代码实体
来源: package.json149-150 package.json160 package.json132-134 package.json209
LobeChat 实现了混合数据存储策略,支持仅客户端和服务器支持的部署
来源: package.json137 package.json182-183 package.json125-128 package.json267-268 package.json192-193
该系统通过明确定义的接口与外部服务集成
来源: package.json217 package.json124 package.json139 package.json126 package.json215 package.json172
来源: package.json209 package.json133 package.json216 package.json195
LobeChat 被设计为一个具有离线功能的 PWA
来源: package.json159 package.json142 tsconfig.json19
该架构使 LobeChat 能够作为一个现代、可扩展的 AI 聊天应用程序运行,具备灵活的部署选项、全面的 AI 提供商集成和强大的数据管理功能。