Chatbot UI 是一个开源 AI 聊天应用,定位为“面向所有人的开源 AI 聊天应用”,支持任意模型。项目提供官方托管版本,用户无需自行托管即可使用;也支持自行部署。
主要能力
- 支持任意语言模型进行 AI 聊天。
- 2.0 版本已发布,1.0 版本代码位于 legacy 分支。
- 数据存储使用 Supabase(开源 Postgres,提供免费托管层),替代了原先的本地浏览器存储,以解决安全性、存储限制及多模态使用场景限制等问题。未来计划支持其他提供商。
- 可选使用 Ollama 支持本地模型。
本地快速开始
- 克隆仓库。
- 在本地 Chatbot UI 仓库根目录运行安装依赖命令。
- 安装 Supabase 并本地运行:需要安装 Docker 以在本地运行 Supabase。通过运行命令获取所需值,注意 NEXT_PUBLIC_SUPABASE_URL 使用 supabase status 中的 API URL。然后在 .env.local 文件中填入这些值。如果设置了环境变量,用户设置中的相应输入将被禁用。在第一个迁移文件 supabase/migrations/20240108234540_setup.sql 中,需要将 2 个值替换为上面获取的值:project_url(第 53 行)默认 http://supabase_kong_chatbotui:8000,若不更改 config.toml 中的 project_id 可保持不变;service_role_key(第 54 行)来自运行 supabase status 获得的值,这可防止存储文件无法正确删除的问题。
- 填写密钥。
- 安装 Ollama(可选,用于本地模型),按说明操作。
- 本地运行应用:本地实例应运行在 http://localhost:3000,需使用兼容的 node 版本(如 v18)。后端 GUI 可在 http://localhost:54323/project/default/editor 查看。
托管快速开始(云端)
- 重复本地快速开始的步骤 1-4。建议本地和托管实例使用不同仓库,在 GitHub 新建托管实例仓库并推送代码。
- 使用 Supabase 设置后端:创建新项目,从项目仪表盘获取环境变量值——Project Ref(在 General settings 中为 Reference ID)、Project ID(在项目仪表盘 URL 中)、Project URL(在 API Settings 中)、Anon key(在 Project API keys 中为 anon public)、Service role key(在 Project API keys 中为 service_role,需像密码一样保管)。在 Authentication 的 Providers 中确保启用 Email,建议个人实例关闭 Confirm email。在托管实例仓库的迁移文件中填入 project_url(第 53 行)和 service_role_key(第 54 行)。然后在本地仓库根目录执行登录 Supabase、用 Project ID 链接项目、推送数据库到 Supabase 等命令,完成托管数据库设置。
- 使用 Vercel 设置前端:创建新项目,导入 GitHub 仓库,在项目 Settings 的 Build & Development Settings 中将 Framework Preset 切换为 Next.js。在环境变量中添加 NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY、SUPABASE_SERVICE_ROLE_KEY、NEXT_PUBLIC_OLLAMA_URL(仅在使用本地 Ollama 模型时需要,默认 http://localhost:11434)。也可添加 API 密钥作为环境变量:AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT、AZURE_GPT_45_VISION_NAME。完整环境变量列表参考 .env.local.example 文件。如果为 API 密钥设置了环境变量,用户设置中的输入将被禁用。点击 Deploy 等待前端部署,部署完成后可通过 Vercel 提供的 URL 使用托管实例。
其他信息
- 如果觉得 Chatbot UI 有用,可考虑赞助作者以支持开源工作。
- Issues 仅限代码库相关的实际问题,功能请求、云提供商问题等将被关闭;设置等问题请参考 Discussions 标签中的 Help 部分。鼓励参与 Discussions 提问、分享想法和获取帮助。
- 贡献指南正在编写中。
- 可通过 Twitter/X 联系 Mckay。