> [!NOTE] > 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 > [English](./README.en.md) · [原始项目](https://github.com/mckaywrigley/chatbot-ui) · [上游 README](https://github.com/mckaywrigley/chatbot-ui/blob/HEAD/README.md) > 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。 # Chatbot UI 面向所有人的开源 AI 聊天应用。 Chatbot UI ## Demo 在此查看最新演示 [here](https://x.com/mckaywrigley/status/1738273242283151777?s=20). ## Updates 大家好!我已收到大家的反馈,正在努力推进一次重大更新。 更简单的部署方式、更好的后端兼容性,以及改进的移动端布局等功能即将推出。 很快回来。 -- Mckay ## Official Hosted Version 无需自行托管即可使用 Chatbot UI! 在此查找 Chatbot UI 的官方托管版本 [here](https://chatbotui.com). ## Sponsor 如果你觉得 Chatbot UI 有用,请考虑 [sponsoring](https://github.com/sponsors/mckaywrigley) 我以支持我的开源工作 :) ## Issues 我们将 "Issues" 限制为与代码库相关的实际问题。 我们收到了过多与功能请求、云服务商问题等类似的问题。 如果你在设置等方面遇到问题,请参阅上方 "Discussions" 标签页中的 "Help" 部分。 与代码库无关的 Issue 可能会被立即关闭。 ## Discussions 我们强烈鼓励你参与上方的 "Discussions" 标签页! Discussions 是提问、分享想法和获取帮助的好地方。 很可能如果你有某个问题,其他人也有同样的问题。 ## Legacy Code Chatbot UI 最近已更新至 2.0 版本。 1.0 版本的代码可在 `legacy` 分支上找到。 ## Updating 在你本地 Chatbot UI 仓库根目录的终端中,运行: ```bash npm run update ``` 如果你运行的是托管实例,还需要运行: ```bash npm run db-push ``` 以将最新迁移应用到你的线上数据库。 ## Local Quickstart 按照以下步骤在本地运行你自己的 Chatbot UI 实例。 你可以在此观看完整视频教程 [here](https://www.youtube.com/watch?v=9Qq3-7-HNgw). ### 1. Clone the Repo ```bash git clone https://github.com/mckaywrigley/chatbot-ui.git ``` ### 2. Install Dependencies 在你本地 Chatbot UI 仓库根目录打开终端并运行: ```bash npm install ``` ### 3. Install Supabase & Run Locally #### Why Supabase? 此前,我们使用本地浏览器存储来保存数据。然而,出于以下几个原因,这并不是一个好的解决方案: - 安全问题 - 存储空间有限 - 限制多模态(multi-modal)使用场景 我们现在使用 Supabase,因为它易于使用、开源、基于 Postgres,并且为托管实例提供免费套餐。 未来我们将支持其他服务商,为你提供更多选择。 #### 1. Install Docker 你需要安装 Docker 才能在本地运行 Supabase。你可以在此 [here](https://docs.docker.com/get-docker) 免费下载。 #### 2. Install Supabase CLI **MacOS/Linux** ```bash brew install supabase/tap/supabase ``` **Windows** ```bash scoop bucket add supabase https://github.com/supabase/scoop-bucket.git scoop install supabase ``` #### 3. Start Supabase 在你本地 Chatbot UI 仓库根目录的终端中,运行: ```bash supabase start ``` ### 4. Fill in Secrets #### 1. Environment Variables 在你本地 Chatbot UI 仓库根目录的终端中,运行: ```bash cp .env.local.example .env.local ``` 通过运行以下命令获取所需值: ```bash supabase status ``` Note: 对 `NEXT_PUBLIC_SUPABASE_URL` 使用来自 `supabase status` 的 `API URL` 现在前往你的 `.env.local` 文件并填写这些值。 如果设置了该环境变量,用户设置中的对应输入框将被禁用。 #### 2. SQL Setup 在第 1 个迁移文件 `supabase/migrations/20240108234540_setup.sql` 中,你需要将 2 个值替换为上面获取的值: - `project_url`(第 53 行):如果你不更改 `config.toml` 文件中的 `project_id`,则 `http://supabase_kong_chatbotui:8000`(默认值)可以保持不变 - `service_role_key`(第 54 行):该值来自运行 `supabase status` 这可以防止存储文件无法被正确删除的问题。 ### 5. Install Ollama (optional for local models) 按照此处的说明操作 [here](https://github.com/jmorganca/ollama#macos). ### 6. Run app locally 在你本地 Chatbot UI 仓库根目录的终端中,运行: ```bash npm run chat ``` 你的本地 Chatbot UI 实例现在应已在 [http://localhost:3000](http://localhost:3000). 运行。请务必使用兼容的 Node 版本(即 v18)。 你可以在 [http://localhost:54323/project/default/editor](http://localhost:54323/project/default/editor). 查看后端 GUI。 ## Hosted Quickstart 按照以下步骤在云端运行你自己的 Chatbot UI 实例。 视频教程即将推出。 ### 1. Follow Local Quickstart 重复上文 "Local Quickstart" 中的步骤 1-4。 你的本地实例和托管实例应使用不同的仓库。 在 GitHub 上为你的 Chatbot UI 托管实例创建一个新仓库,并将代码推送到该仓库。 ### 2. Setup Backend with Supabase #### 1. Create a new project 前往 [Supabase](https://supabase.com/) 并创建一个新项目。 #### 2. Get Project Values 进入项目仪表板后,点击左下角最下方的 "Project Settings" 图标标签页。 在此你可以获取以下环境变量的值: - `Project Ref`:在 "General settings" 中以 "Reference ID" 显示 - `Project ID`:在你的项目仪表板 URL 中(例如:https://supabase.com/dashboard/project//settings/general) 仍在 "Settings" 中时,点击左侧的 "API" 文本标签页。 在此你可以获取以下环境变量的值: - `Project URL`:在 "API Settings" 中以 "Project URL" 显示 - `Anon key`:在 "Project API keys" 中以 "anon public" 显示 - `Service role key`:在 "Project API keys" 中以 "service_role" 显示(提醒:请像对待密码一样保管!) #### 3. Configure Auth 接下来,点击最左侧的 "Authentication" 图标标签页。 在文本标签页中,点击 "Providers",并确保 "Email" 已启用。 我们建议为你自己的个人实例关闭 "Confirm email"。 #### 4. Connect to Hosted DB 打开你的 Chatbot UI 托管实例仓库。 在第 1 个迁移文件 `supabase/migrations/20240108234540_setup.sql` 中,你需要将 2 个值替换为上面获取的值: - `project_url`(第 53 行):使用上面的 `Project URL` 值 - `service_role_key`(第 54 行):使用上面的 `Service role key` 值 现在,在你本地 Chatbot UI 仓库根目录打开终端。我们将在此执行几条命令。 通过运行以下命令登录 Supabase: ```bash supabase login ``` 接下来,使用上面获取的 "Project ID" 运行以下命令以关联你的项目: ```bash supabase link --project-ref ``` 你的项目现在应已关联。 最后,通过运行以下命令将数据库推送到 Supabase: ```bash supabase db push ``` 你的托管数据库现在应已设置完成! ### 3. Setup Frontend with Vercel 前往 [Vercel](https://vercel.com/) 并创建一个新项目。 在设置页面中,导入你 Chatbot UI 托管实例的 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 密钥添加为环境变量。 - `OPENAI_API_KEY` - `AZURE_OPENAI_API_KEY` - `AZURE_OPENAI_ENDPOINT` - `AZURE_GPT_45_VISION_NAME` 有关环境变量的完整列表,请参阅 '.env.local.example' 文件。如果为 API 密钥设置了环境变量,用户设置中的对应输入框将被禁用。 点击 "Deploy" 并等待前端部署完成。 部署完成后,你应该可以通过 Vercel 提供的 URL 使用你的 Chatbot UI 托管实例。 ## 贡献 我们正在编写贡献指南。 ## 联系方式 请在 [Twitter/X](https://twitter.com/mckaywrigley) 联系 Mckay