Files
2026-07-13 10:28:35 +00:00

299 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- WEHUB_ZH_README -->
> [!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 聊天应用。
<img src="./public/readme/screenshot.png" alt="Chatbot UI" width="600">
## 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/<YOUR_PROJECT_ID>/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 <project-id>
```
你的项目现在应已关联。
最后,通过运行以下命令将数据库推送到 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