Lobe Chat:开源 ChatGPT 用户界面替代方案,支持 20 多个 LLM 提供商和插件系统 — 2026 设置
Deploy Lobe Chat as your self-hosted ChatGPT alternative. Supports 20+ LLM providers, plugin system, PWA, multi-language UI. Complete Docker setup guide with benchmarks and comparisons.
- MIT
- 更新于 2026-05-19
{{< 资源信息 >}}
简介:ChatGPT 不再有效 #
您每月为 ChatGPT Plus 支付 OpenAI 20 美元,但您的团队需要一个共享聊天界面,可以访问在您自己的硬件上运行的 Claude、Gemini 和本地模型。 您需要连接到内部 API 的插件。 您需要多语言 UI,因为您的团队横跨三大洲。 至关重要的是,您的对话数据必须保留在您的基础设施上,而不是第三方云中。 您可以从头开始构建它。 花两个月的时间在 React 前端上,再花一个月的时间来连接 SSE 流,然后永远维护身份验证、插件沙箱和模型切换。 或者您可以在 10 分钟内部署 Lobe Chat。 Lobe Chat 是由 LobeHub 团队构建的开源聊天界面,支持 20 多个 LLM 提供商、插件系统、PWA 支持和 多语言 UI - 所有这些都来自单个 Docker 容器。 截至 2026 年 5 月,它拥有 ~60,000 个 GitHub star,是最受欢迎的自托管 ChatGPT 替代品之一。 它看起来比 ChatGPT 的 UI 更好,可以在您的硬件上运行,并且许可费用为零。 本指南介绍了安装、提供程序配置、插件开发、PWA 设置、真实基准测试和诚实的限制。 最后,您将拥有一个可供整个团队使用的生产就绪聊天 UI。 ## 什么是 Lobe 聊天? Lobe Chat 是适用于大型语言模型的现代开源聊天界面。 它使用 Next.js 和 Ant Design 构建,提供类似 ChatGPT 的体验,支持多个 LLM 提供商(OpenAI、Claude、Gemini、Ollama、Azure、Bedrock 等 15 个以上)、可扩展插件、渐进式 Web 应用程序功能以及可让您控制数据的自托管部署模型。 ## Lobe 聊天如何运作
Lobe Chat 的架构将表示层与模型推理分开。 Next.js 前端处理 UI 渲染、对话状态和插件编排,而 LLM 通过可配置的 API 端点调用代理:
┌──────────────────────────────────────────────┐
│ 用户浏览器 / PWA │
│ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ 聊天 │ │ 插件 │ │ 设置 │ │
│ │ 面板 │ │ 商店 │ │ (i18n) │ │
│ └────┬────┘ └────┬────┘ └──────┬──────┘ │
└────────┼──────────┼──────────────┼────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────┐
│ Lobe 聊天服务器 (Next.js) │
│ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │ SSE │ │ 插件 │ │ 授权 │ │
│ │ 流 │ │ 运行时 │ │ (SSO) │ │
│ └────┬──────┘ └────┬──────┘ └──────┬──────┘ │
└────────┼──────────┼──────────────┼────────┘
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌────────────┐
│ OpenAI │ │ 克劳德 │ │ 奥拉玛 │
│ API │ │ API │ │ (本地) │
└──────────┘ └──────────┘ └────────────┘
关键部件:
- 前端:带有 React 服务器组件的 Next.js 14 App Router。 渲染 Markdown、具有语法突出显示的代码块和 LaTeX 数学。 - 聊天引擎:通过服务器发送的事件管理对话历史记录、上下文窗口、令牌计数和流响应。 - 插件系统:使用 iframe + postMessage 的沙盒插件运行时。 插件使用 OpenAPI 兼容架构声明清单。 - 提供商代理:统一适配器模式规范 20 多个 LLM 提供商之间的 API 调用。 - PWA Layer:用于离线支持的 Service Worker,可安装在桌面和移动设备上。 ## 安装和设置:10 分钟聊天
先决条件:Docker 24.0+ 或 Node.js 20+(用于本地开发)、2GB RAM、1GB 磁盘。 ### 方法一:Docker(推荐)
第一步——拉取并运行官方镜像:
bas
h
docker运行-d -p 3210:3210 \
-e OPENAI_API_KEY=您的OPENAI_API_KEY \
-e ACCESS_CODE=您的安全密码 \
--name lobe-chat \
lobehub/lobe-chat:最新
第二步——访问UI:
打开“http://localhost:3210”。 您将看到一个设置向导,用于选择默认的 LLM 提供商并输入 API 密钥。 第3步——配置额外的提供者(可选):
bas
h
# 通过环境变量进行多提供商设置
docker运行-d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxx \
-e ANTHROPIC_API_KEY=sk-ant-xxx \
-e GOOGLE_API_KEY=xxx \
-e OLLAMA_PROXY_URL=http://host.docker.internal:11434 \
-e ACCESS_CODE=您的安全密码 \
--name lobe-chat \
lobehub/lobe-chat:最新
方法 2:使用持久存储的 Docker Compose #
yam
l
# docker-compose.yml
服务:
波瓣聊天:
图片:lobehub/lobe-chat:最新
端口:
- “3210:3210”
环境:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- ACCESS_CODE=${ACCESS_CODE}
- DATABASE_URL=postgresql://postgres:password@db:5432/lobe
卷:
- 洛贝数据:/app/.config/洛贝聊天
取决于:
- 数据库
重新启动:除非停止
数据库:
图片:postgres:16-alpine
环境:
- POSTGRES_PASSWORD=密码
- POSTGRES_DB=叶
卷:
- pgdata:/var/lib/postgresql/data
重新启动:除非停止
卷:
波瓣数据:
PG数据:
bas
h
#从坚持开始
docker 组成-d
方法 3:部署到 DigitalOcean #
bas
h
# 在 2 vCPU / 4GB RAM Droplet 上(~24 美元/月)
sudo apt update && sudo apt install -y docker.io docker-compose-plugin
# 创建.env文件
猫 > .env << 'EOF'
OPENAI_API_KEY=询问您的密钥
ACCESS_CODE=安全团队密码
EOF
# 运行
docker 组成-d
# 通过 Caddy 设置 HTTPS 反向代理
猫 > Caddyfile << 'EOF'
chat.yourdomain.com {
反向代理本地主机:3210
}
EOF
添加指向您的 Droplet IP 的 DNS A 记录,您将在 15 分钟内上线。 在此处获取 DigitalOcean Droplet 。 ## 与 20 多家 LLM 提供商集成
Lobe Chat 通过统一适配器规范跨提供商的 API 调用。 以下是如何配置最流行的:
OpenAI(GPT-4、GPT-4o) #
bas
h
# 通过环境变量
echo "OPENAI_API_KEY=sk-xxxxxxxx" >> .env
# 通过 UI:设置 → 语言模型 → OpenAI → Enter 键
人类克劳德(克劳德 3.5 十四行诗) #
bas
h
# 环境变量
echo "ANTHROPIC_API_KEY=sk-ant-xxxxxxxx" >> .env
# 重启容器
docker 重新启动 lobe-chat
谷歌双子座(双子座 1.5 专业版) #
bas
h
echo "GOOGLE_API_KEY=AIzaxxxxxxxx" >> .env
Ollama(本地模型 - Llama、Mistral 等) #
bas
h
# 在主机上运行 Ollama
docker run -d -p 11434:11434 --name ollama ollama/ollama
# 拉取模型
docker exec ollama ollama 拉 llama3.2
# 配置 Lobe Chat 使用 Ollama
docker运行-d -p 3210:3210 \
-e OLLAMA_PROXY_URL=http://host.docker.internal:11434 \
-e ACCESS_CODE=我的密码 \
lobehub/lobe-chat
Azure OpenAI 服务 #
bas
h
# 需要端点、API 密钥和部署名称
echo "AZURE_API_KEY=your-azure-key" >> .env
回声“AZURE_API_ENDPOINT=https://your-resource.openai.azure.com”>> .env
回声“AZURE_API_VERSION=2024-06-01”>> .env
AWS 基岩 #
bas
h
echo "AWS_ACCESS_KEY_ID=AKIAxxx" >> .env
echo "AWS_SECRET_ACCESS_KEY=xxx" >> .env
echo "AWS_REGION=us-east-1" >> .env
在运行时切换提供程序 #
用户可以在 UI 中根据对话切换提供商。 这可以让您并排比较 GPT-4 和 Claude:
# 无需重启——提供商切换是客户端
# 单击聊天标题中的提供商图标 → 选择不同的型号
# 每个对话都会记住其提供者的选择
插件系统:扩展 Lobe 聊天 #
Lobe Chat 的插件架构使用基于清单的系统。 插件在“manifest.json”中声明其功能,聊天 UI 将它们呈现为交互式工具。 ### 从插件市场安装
- 打开 Lobe Chat → 插件商店
- 浏览 50 多个社区插件
- 点击“安装”→授权权限
- 插件在聊天期间显示为工具调用
构建自定义插件 #
创建一个简单的插件来查询您的内部 API:
jso
n
{
“API”:[
{
"description": "搜索内部知识库",
“名称”:“搜索_kb”,
“参数”:{
“属性”:{
“查询”:{
"description": "搜索查询字符串",
“类型”:“字符串”
}
},
“必需”:[“查询”],
“类型”:“对象”
},
“url”:“https://api.yourcompany.com/kb/search”
}
],
"网关": "https://gateway.example.com",
"identifier": "你的公司/kb-搜索",
“元”:{
"title": "内部知识库搜索",
"description": "搜索公司知识库"
},
“版本”:“1.0.0”
}
将其托管在公共 URL 上,然后通过 插件商店 → 自定义插件 → 输入 URL 添加它。 ### 插件运行时安全
插件在权限受限的沙盒 iframe 中执行:
┌──────────────────────────────┐
│ Lobe 聊天主窗口 │
│ ┌────────────────────────┐ │
│ │ 沙盒 Iframe │ │
│ │ (插件代码) │ │
│ │ - 无 DOM 访问 │ │
│ │ - 仅发布消息 │ │
│ │ - CORS 强制执行 │ │
│ └────────────────────────┘ │
└──────────────────────────────┘
每个插件请求都需要明确的用户批准。 LLM 建议调用工具,但用户必须在执行前确认。 ## PWA 支持和移动体验
Lobe Chat 充当渐进式 Web 应用程序,使其感觉像是所有平台上的本机应用程序。 ### 在桌面上安装(Chrome/Edge)
- 在 Chrome 中打开 Lobe Chat
- 单击地址栏中的安装图标
- 作为具有自己的图标的独立窗口启动
在移动设备上安装(iOS Safari) #
1. 在 Safari 中打开 Lobe Chat
2. 点击共享→“添加到主屏幕”
3. Appears as a native app icon
4. Supports push notifications (via service worker)
离线支持 #
Service Worker 缓存应用程序 shell 和最近的对话。 没有互联网:
✅ 浏览对话历史记录
✅ 查看之前的回复
✅ 撰写消息(排队等待发送)
❌ 新的 LLM 响应(需要 API 连接)
基准测试和实际用例 #
响应延迟(从美国东部测量) #
| 供应商| 获得第一个代币的时间 | 完整回复(100 个代币)| 笔记| |
💬 留言讨论