299 lines
8.2 KiB
Markdown
299 lines
8.2 KiB
Markdown
<!-- 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
|