Chatbot UI 是 Mckay Wrigley 主导的开源 AI 聊天界面,MIT 许可,官方口号”The open-source AI chat app for everyone” 。2.0 版本从早期浏览器本地存储重构为 Next.js + Supabase(PostgreSQL)全栈架构——前端 Next.js+TypeScript+Tailwind,后端 Supabase 提供认证、数据库与文件存储 。
核心能力:多模型统一接入(OpenAI、Azure OpenAI、Anthropic、Mistral、Groq、Perplexity、OpenRouter、Ollama 本地模型等)、对话历史持久化、文件夹/标签管理、Prompt 模板、文件上传、暗色模式、响应式布局 。它是”交互前端”分类中“可定制自托管全栈聊天 UI”的代表作——与 NextChat(轻量跨平台、BYOK、零后端)、Astral Web UI(极简本地优先+分支对话树)形成清晰的差异化:Chatbot UI 的竞争力在”MIT 许可 + 全栈自托管(Supabase 持久化)+ 高度可定制 + 多模型统一 + 2.0 活跃维护“。
产品概述
Chatbot UI 由 Mckay Wrigley 开发,是开源 ChatGPT 风格界面的最早一批标杆项目之一,官方定位”the open-source AI chat app for everyone” 。2.0 版本是一次重大架构升级——官方 README 明确写道:”Previously, we used local browser storage to store data. However, this was not a good solution for a few reasons: Security issues, Limited storage, Limits multi-modal use cases. We now use Supabase because it’s easy to use, it’s open-source, it’s Postgres, and it has a free tier for hosted instances” 。
核心定位哲学:
第三方分析精准概括:”Chatbot UI is an open-source, full-featured chat interface for AI models that aims to lower the barrier for anyone wanting to run their own AI-powered chatbot — whether using remote LLM APIs or local/self-hosted models” 。它的设计理念是”保留 ChatGPT 官方界面的简洁可用性,同时增加高级用户需要的灵活性与可定制性” 。
它做什么 / 不做什么(关键归类):
- ✅ 做:接收用户聊天请求 → 通过配置的提供商 API 直连(或 Ollama 本地推理)→ 流式返回响应 → 在 Supabase 中持久化对话历史、用户设置、文件 → 在此之上提供多模型切换、文件夹/标签管理、Prompt 模板、文件上传、暗色模式、响应式布局
- ❌ 不做:不持有模型算力、不做 RAG 文档检索(核心开源版)、不提供 Agent Builder 工作流编排、不具备 MCP 市场/插件生态、无多用户 SSO 企业特性
- 本质是自托管全栈聊天前端:它是”交互前端”分类中唯一默认需要后端数据库(Supabase/PostgreSQL)的全栈聊天 UI——这使它比 NextChat(零后端、浏览器本地存储)更”重”,但比 LibreChat/LobeChat(已移至通用工作台)更轻 。这种”中等重量”的全栈自托管形态,正是它的独特定位。
技术架构 :
- 前端:Next.js + React + TypeScript(95.7%)+ Tailwind CSS
- 后端:Supabase(PostgreSQL + Auth + Storage)
- 本地运行依赖:Docker(运行 Supabase 本地实例)+ Supabase CLI
- 可选:Ollama(本地模型)
- 部署形态:
- 本地:Docker + Supabase CLI +
npm run chat→ - 云端:GitHub 仓库 + Supabase 托管项目 + Vercel 部署
- 本地:Docker + Supabase CLI +
- 数据库迁移:Supabase 迁移文件管理(
supabase db push)
模型提供商支持 :
OpenAI(GPT 系列)、Azure OpenAI、Anthropic Claude、Mistral、Groq、Perplexity、OpenRouter、Ollama(本地模型) 。通过环境变量配置 API Key,配置后界面中的 Key 输入框自动禁用 。
许可策略:MIT 许可证 ,允许商用、修改、分发,是”最干净许可”阵营中最宽松的。官方托管版本 chatbotui.com 提供 SaaS 形态 ,但鼓励用户自托管以获得完整数据控制权 。
💡 与同层项目的关键差异:
- vs NextChat:NextChat 是轻量跨平台客户端(~5MB),浏览器本地存储、BYOK、Vercel 1 分钟部署,零后端 ;Chatbot UI 是全栈自托管,Supabase 持久化,部署难度中等(需 Docker+Supabase),但数据主权更完整、可定制性更强
- vs Astral Web UI:Astral 是极简本地优先、零后端、分支对话树为一等公民;Chatbot UI 是全栈自托管、线性对话为主、Supabase 持久化
- vs LibreChat/LobeChat(已移至通用工作台):Chatbot UI 不具备 Agent Builder/MCP 市场/工作流编排,是纯聊天前端
核心能力
-多模型统一接入
- 云端提供商:OpenAI(GPT 系列)、Azure OpenAI、Anthropic Claude、Mistral、Groq、Perplexity、OpenRouter
- 本地模型:通过 Ollama 接入本地推理
- 自定义端点:任何 OpenAI 兼容端点
- 环境变量配置 Key:
OPENAI_API_KEY、AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT等,配置后界面 Key 输入框自动禁用
-全栈持久化(Supabase)
- 对话历史:PostgreSQL 存储,跨会话/跨设备持久化
- 用户认证:Supabase Auth,邮箱登录(可关闭 Confirm email 用于个人实例)
- 文件存储:Supabase Storage 支持多模态用例
- 用户设置:模型偏好、Prompt 模板等持久化
-对话管理
- 文件夹/标签:组织对话历史
- 搜索:全文本搜索历史消息
- 导出/导入:JSON/Markdown 格式
- 消息编辑/重新生成:编辑历史 Prompt、重新生成回复
-提示词与定制
- Prompt 模板:保存常用系统提示
- 自定义系统 Prompt:每个对话独立设置
- 模型参数调节:Temperature/Top-p 在 UI 中可调
- 高度可定制:MIT 许可 + React 组件,可深度修改 UI/UX 匹配品牌
-用户体验
- 响应式设计:桌面/移动端适配,2.0 改进了移动端布局
- 暗色模式:支持明暗主题
- Markdown 渲染:完整 Markdown + 代码高亮 + LaTeX
- 文件上传:支持文档处理与分析
- 多语言:界面国际化,语言文件位于
public/locales/
-部署灵活性
- 本地自托管:Docker + Supabase CLI,
npm run chat启动 - 云端托管:GitHub + Supabase 项目 + Vercel 部署
- 官方 SaaS:chatbotui.com 提供零运维托管版本
优势亮点
- MIT 最干净许可:商用、修改、分发无任何限制,与 NextChat/Astral Web UI 并列最干净许可阵营
- 全栈自托管数据主权:Supabase/PostgreSQL 持久化,数据完全私有,不像 NextChat 仅存浏览器本地
- 高度可定制:Next.js+React+Tailwind 技术栈,MIT 许可允许深度修改 UI/UX 匹配品牌需求
- 多模型统一接入:OpenAI/Azure/Anthropic/Mistral/Groq/Perplexity/OpenRouter/Ollama 全覆盖
- 2.0 活跃维护:近期提交了 UI/UX 重设计、后端兼容性改进、移动端布局优化
- 官方 SaaS 可选:不想自托管可用 chatbotui.com,零运维上手
- Supabase 生态:认证、数据库、文件存储、实时订阅全套后端能力
- 社区规模较大:LibHunt 数据显示约 33K GitHub Stars、社区活跃度 9.2
- 第三方集成生态:可前置 agentgateway 等 API 网关层,集中管理 Key 与审计
局限
- 自己不执行推理:Chatbot UI 是聊天前端,后端必须接各家 API 或本地 Ollama
- 部署难度中等:需要 Docker + Supabase CLI,比 NextChat 的 Vercel 1 分钟部署复杂
- 默认需 Supabase 后端:2.0 废弃了纯浏览器本地存储方案 ,无 Supabase 则无法运行——这对只想快速试用的用户是门槛
- 无 RAG 文档检索:核心开源版不具备 AnythingLLM/Open WebUI 那样的文档聊天能力
- 无 Agent/工作流:不具备 LibreChat/LobeChat/Cherry Studio 的 Agent Builder、MCP 市场、工作流编排
- 无多用户 SSO:开源核心无企业级 LDAP/SAML/2FA
- 无 MCP 原生支持:不像 LibreChat(需开关)或 LobeChat 那样原生集成 MCP
- 定制需技术能力:虽然可定制性高,但需要 Next.js/React/Supabase 技术栈知识
- Issues 限制:官方明确”Issues 仅限代码库相关问题”,其他问题需到 Discussions 提问
- 与 NextChat 对比:NextChat 客户端仅 ~5MB、Vercel 1 分钟部署 ;Chatbot UI 全栈形态更重,适合需要持久化与定制的场景,不适合”快速试用”
适用人群
- 需要数据主权的个人/团队:Supabase 自托管,对话历史与文件完全私有
- 品牌定制需求:需要修改 UI/UX 匹配企业品牌的团队,MIT 许可允许深度定制
- 全栈自托管偏好者:接受 Docker+Supabase 运维,换取完整后端能力
- 多模型用户:同时使用 OpenAI/Azure/Claude/Mistral/Groq/本地 Ollama 的用户
- 开发者/技术团队:Next.js+React+TypeScript 技术栈,易于二次开发
- 长期对话归档需求:研究人员/法律/写作场景,需要持久化对话历史搜索
- 不想用 SaaS 的个人用户:自托管替代 ChatGPT Plus 订阅
安装与部署
1. 环境要求
- Node.js v18(兼容版本)
- Docker(运行 Supabase 本地实例)
- Supabase CLI
- 可选:Ollama(本地模型)
2. 本地一键部署
# 1. 克隆仓库 git clone https://github.com/mckaywrigley/chatbot-ui.git cd chatbot-ui # 2. 安装依赖 npm install # 3. 安装 Supabase CLI # macOS/Linux: brew install supabase/tap/supabase # Windows: scoop bucket add supabase https://github.com/supabase/scoop-bucket.git scoop install supabase # 4. 启动 Supabase 本地实例 supabase start # 5. 配置环境变量 cp .env.local.example .env.local # 编辑 .env.local 填入 supabase status 输出的值 # 6. 启动应用 npm run chat # 访问 http://localhost:3000
3. 云端部署(Vercel + Supabase)
# 1. 在 Supabase 创建新项目,获取: # NEXT_PUBLIC_SUPABASE_URL # NEXT_PUBLIC_SUPABASE_ANON_KEY # SUPABASE_SERVICE_ROLE_KEY # 2. 在 Vercel 导入 GitHub 仓库,设置 Framework Preset 为 Next.js # 3. 配置环境变量: NEXT_PUBLIC_SUPABASE_URL=your-project-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key SUPABASE_SERVICE_ROLE_KEY=your-service-role-key OPENAI_API_KEY=your-openai-key # 可选,配置后界面 Key 输入框禁用 # 4. Deploy 等待完成
4. 配置 Ollama 本地模型(可选)
# 在 .env.local 中设置 NEXT_PUBLIC_OLLAMA_URL=http://localhost:11434 # 确保 Ollama 服务运行且已拉取模型 ollama pull qwen2.5:7b
5. 使用 agentgateway 前置网关(可选,集中管理 Key)
# agentgateway 的 config.yaml
llm:
port: 3001
models:
name: "*"
provider: openAI
params:
apiKey: "$OPENAI_API_KEY"
6. 客户端调用(OpenAI SDK 兼容)
Chatbot UI 本身是聊天前端,但通过配置 OPENAI_API_HOST 可指向任意 OpenAI 兼容网关:
from openai import OpenAI
# 指向本地 Ollama 端点
client = OpenAI(
api_key="ollama",
base_url="http://localhost:11434/v1"
)
response = client.chat.completions.create(
model="qwen2.5:7b",
messages=[{"role": "user", "content": "Hello!"}]
)
7. 部署前必检清单
- 确认仓库位于
github.com/mckaywrigley/chatbot-ui(官方) - 许可:MIT ,商用自托管无限制
- 严格属于”交互前端”子类,全栈自托管聊天 UI 形态
- 官方定位:”The open-source AI chat app for everyone”
- 当前版本:2.0(从浏览器本地存储重构为 Supabase 后端)
- 技术栈:Next.js + React + TypeScript + Tailwind + Supabase(PostgreSQL)
- 部署:本地 Docker+Supabase CLI / 云端 Vercel+Supabase
- 模型:OpenAI/Azure/Anthropic/Mistral/Groq/Perplexity/OpenRouter/Ollama
- 默认需 Supabase 后端,无 Supabase 无法运行(2.0 架构要求)
- 无 RAG 文档检索、无 Agent Builder、无 MCP 原生支持、无多用户 SSO——保持纯聊天前端定位
- 社区规模:LibHunt 显示约 33K Stars
相关导航

LobeChat

ChatALL

AnythingLLM
Page Assist
NextChat

Cherry Studio

