Chatbot UI
人人都能使用的开源AI聊天应用程序。
演示
查看最新的演示 here。
更新
大家好!我听到了大家的反馈,正在努力进行一次重大更新。
更简单的部署、更好的后端兼容性和改进的移动端布局即将上线。
很快就会回来。
-- Mckay
官方托管版本
使用 Chatbot UI 而无需自行托管!
在此找到 Chatbot UI 的官方托管版本 here。
赞助
如果你觉得 Chatbot UI 有用,请考虑 赞助 我,以支持我的开源工作 :)
问题
我们将“问题”限制为与代码库相关的实际问题。
我们收到了大量类似功能请求、云提供商问题等问题。
如果你在设置时遇到问题,请参阅上方“讨论”选项卡中的“帮助”部分。
与代码库无关的问题可能会立即被关闭。
讨论
我们强烈鼓励你参与上方的“讨论”选项卡!
讨论是提问、分享想法和获得帮助的好地方。
如果你有问题,别人可能也有同样的问题。
旧代码
Chatbot UI 最近更新到了 2.0 版本。
1.0 版本的代码可以在 legacy
分支中找到。
更新
在你的终端中,进入本地 Chatbot UI 仓库的根目录,运行:
npm run update
如果你运行的是托管实例,还需要运行:
npm run db-push
以将最新的迁移应用到你的在线数据库中。
本地快速入门
按照以下步骤,在本地运行你自己的 Chatbot UI 实例。
你可以在此观看完整的视频教程 here。
1. 克隆仓库
git clone https://github.com/mckaywrigley/chatbot-ui.git
2. 安装依赖项
在本地 Chatbot UI 仓库的根目录中打开终端并运行:
npm install
3. 安装 Supabase 并本地运行
为什么选择 Supabase?
之前,我们使用本地浏览器存储数据。然而,这不是一个好的解决方案,原因有以下几点:
- 安全问题
- 存储空间有限
- 多模态使用案例受限
我们现在使用 Supabase,因为它易于使用,开源,基于 Postgres,并且提供免费托管实例。
我们将来会支持其他提供商,以为你提供更多选择。
1. 安装 Docker
你需要安装 Docker 来本地运行 Supabase。你可以在此免费下载 here。
2. 安装 Supabase CLI
MacOS/Linux
brew install supabase/tap/supabase
Windows
scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase
3. 启动 Supabase
在你的终端中,进入本地 Chatbot UI 仓库的根目录,运行:
supabase start
4. 填写机密信息
1. 环境变量
在你的终端中,进入本地 Chatbot UI 仓库的根目录,运行:
cp .env.local.example .env.local
通过运行以下命令获取所需的值:
supabase status
注意:使用 supabase status
中的 API URL
作为 NEXT_PUBLIC_SUPABASE_URL
现在打开你的 .env.local
文件并填写这些值。
如果环境变量已设置,它将禁用用户设置中的输入。
2. SQL 设置
在第一个迁移文件 supabase/migrations/20240108234540_setup.sql
中,你需要将上面获得的两个值替换掉:
project_url
(第 53 行):如果你不更改config.toml
文件中的project_id
,默认值http://supabase_kong_chatbotui:8000
可以保持不变service_role_key
(第 54 行):你从运行supabase status
中获得了这个值
这可以防止存储文件未正确删除的问题。
5. 安装 Ollama(本地模型可选)
按照 here 的说明进行安装。
6. 本地运行应用程序
在你的终端中,进入本地 Chatbot UI 仓库的根目录,运行:
npm run chat
你本地的 Chatbot UI 实例现在应该运行在 http://localhost:3000。请确保使用兼容的 Node 版本(即 v18)。
你可以在 http://localhost:54323/project/default/editor 查看你的后端 GUI。
托管快速入门
按照以下步骤,在云端运行你自己的 Chatbot UI 实例。
视频教程即将上线。
1. 按照本地快速入门步骤
重复上述“本地快速入门”中的步骤 1-4。
你需要为本地和托管实例创建单独的仓库。
在 GitHub 上为你的 Chatbot UI 托管实例创建一个新仓库,并将代码推送到该仓库中。
2. 使用 Supabase 设置后端
1. 创建新项目
进入 Supabase 并创建一个新项目。
2. 获取项目值
进入项目仪表盘后,点击左下角的“项目设置”图标标签。
在这里你可以获取以下环境变量的值:
-
Project Ref
:在“常规设置”中找到“引用 ID” -
Project ID
:在项目仪表盘的 URL 中找到(例如:https://supabase.com/dashboard/project/<YOUR_PROJECT_ID>/settings/general)
在“设置”中,点击左侧的“API”文本标签。
在这里你可以获取以下环境变量的值:
-
Project URL
:在“API 设置”中找到“项目 URL” -
Anon key
:在“项目 API 密钥”中找到“anon public” -
Service role key
:在“项目 API 密钥”中找到“service_role”(提示:像对待密码一样对待它!)
3. 配置身份验证
接下来,点击左侧的“认证”图标标签。
在文本标签中,点击“提供商”,并确保“电子邮件”已启用。
我们建议为个人实例关闭“确认电子邮件”。
4. 连接托管数据库
打开你的 Chatbot UI 托管实例仓库。
在第一个迁移文件 supabase/migrations/20240108234540_setup.sql
中,你需要将上面获得的两个值替换掉:
project_url
(第 53 行):使用上面获得的Project URL
值service_role_key
(第 54 行):使用上面获得的Service role key
值
现在,在你的本地 Chatbot UI 仓库的根目录中打开终端。我们将在这里执行一些命令。
通过运行以下命令登录 Supabase:
supabase login
接下来,通过运行以下命令并使用上面获得的“Project ID”来链接你的项目:
supabase link --project-ref <project-id>
你的项目现在应该已经链接好了。
最后,通过运行以下命令将你的数据库推送到 Supabase:
supabase db push
你的托管数据库现在应该设置好了!
3. 使用 Vercel 设置前端
进入 Vercel 并创建一个新项目。
在设置页面,导入你在 GitHub 上托管的 Chatbot UI 实例仓库。在项目设置中的“构建和开发设置”部分,将框架预设切换为“Next.js”。
在环境变量中,添加从上面获得的以下值:
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
NEXT_PUBLIC_OLLAMA_URL
(仅在使用本地 Ollama 模型时需要;默认值:http://localhost:11434
)
你还可以将 API 密钥添加为环境变量。
OPENAI_API_KEY
AZURE_OPENAI_API_KEY
AZURE_OPENAI_ENDPOINT
AZURE_GPT_45_VISION_NAME
有关完整的环境变量列表