chatbot-ui - 一个简单的聊天机器人入门套件,用于使用 Next.js、TypeScript 和 Tailwind CSS 的 OpenAI 聊天模型。

Created at: 2023-03-11 22:53:14
Language: TypeScript
License: MIT

聊天机器人用户界面

适合所有人的开源 AI 聊天应用程序。

聊天机器人用户界面

演示

在此处查看最新演示。

官方托管版本

请稍后再回来查看聊天机器人UI的官方托管版本。

官方桌面应用程序

请稍后再回来查看用于聊天机器人 UI 的官方桌面应用程序。只需点击下载并开始聊天 - 无需设置。

支持

如果你觉得聊天机器人 UI 有用,请考虑赞助我来支持我的开源工作:)

遗留代码

聊天机器人 UI 最近更新到 2.0 版本。

1.0 的代码可以在分支上找到。

legacy

本地快速入门

按照以下步骤在本地运行你自己的聊天机器人 UI 实例。

你可以在此处观看完整的视频教程。

1. 克隆存储库

git clone https://github.com/mckaywrigley/chatbot-ui.git

2. 安装依赖

在本地聊天机器人UI存储库的根目录中打开终端,然后运行:

npm install

3. 安装Supabase并在本地运行

为什么选择Supabase?

以前,我们使用本地浏览器存储来存储数据。但是,由于以下几个原因,这不是一个好的解决方案:

  • 安全问题
  • 存储空间有限
  • 限制多模态用例

我们现在使用 Supabase,因为它易于使用,它是开源的,它是 Postgres,并且它有一个托管实例的免费套餐。

我们将来支持其他提供商,为你提供更多选择。

1. 安装 Docker

你需要安装 Docker 才能在本地运行 Supabase。你可以在这里免费下载。

2. 安装 Supabase CLI

MacOS/Linux操作系统

brew install supabase/tap/supabase

scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase

3. 启动Supabase

在本地聊天机器人 UI 存储库根目录下的终端中,运行:

supabase start

4.填写秘密

1. 环境变量

在本地聊天机器人 UI 存储库根目录下的终端中,运行:

cp .env.local.example .env.local

通过运行以下命令获取所需的值:

supabase status

注意:使用 from for

API URL
supabase status
NEXT_PUBLIC_SUPABASE_URL

现在转到你的文件并填写值。

.env.local

如果设置了环境变量,它将禁用用户设置中的输入。

2.SQL设置

在第一个迁移文件中,你需要将 2 个值替换为上面的值:

supabase/migrations/20240108234540_setup.sql

  • project_url
    (第 53 行):(默认)如果你不更改文件中的
    http://supabase_kong_chatbotui:8000
    project_id
    config.toml
  • service_role_key
    (第 54 行):你从运行中得到了这个值
    supabase status

这样可以防止存储文件未被正确删除的问题。

5. 安装 Ollama (本地型号可选)

请按照此处的说明进行操作。

6. 在本地运行应用

在本地聊天机器人 UI 存储库根目录下的终端中,运行:

npm run chat

你的聊天机器人 UI 的本地实例现在应该以 http://localhost:3000 的速度运行。

你可以在 http://localhost:54323/project/default/editor 查看后端 GUI。

托管快速入门

按照以下步骤在云中运行你自己的聊天机器人 UI 实例。

视频教程即将推出。

1. 遵循本地快速入门

重复上面“本地快速入门”中的步骤 1-4。

你需要为本地实例和托管实例提供单独的存储库。

在 GitHub 上为你的托管聊天机器人 UI 实例创建一个新存储库,并将代码推送到其中。

2. 使用Supabase设置后端

1. 创建新项目

转到 Supabase 并创建一个新项目。

2. 获取项目值

进入项目 dashboard 后,单击左下角的“项目设置”图标选项卡。

在这里,你将获得以下环境变量的值:

  • Project Ref
    :在“常规设置”中找到“参考ID”

  • Project ID
    :在项目 dashboard 的 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. 连接到托管数据库

打开托管的聊天机器人 UI 实例的存储库。

在第一个迁移文件中,你需要将 2 个值替换为上面的值:

supabase/migrations/20240108234540_setup.sql

  • project_url
    (第 53 行):使用上面的值
    Project URL
  • service_role_key
    (第 54 行):使用上面的值
    Service role key

现在,在本地聊天机器人 UI 存储库的根目录中打开一个终端。我们将在这里执行一些命令。

通过运行以下命令登录Supabase:

supabase login

接下来,通过运行以下命令来链接你的项目,其中包含上面获取的“项目引用”和“项目 ID”:

supabase link --project-ref <project-id>

你的项目现在应该已链接。

最后,通过运行以下命令将数据库推送到 Supabase:

supabase db push

你的托管数据库现在应该已经设置好了!

3. 使用 Vercel 设置前端

转到 Vercel 并创建一个新项目。

在设置页面中,导入托管的聊天机器人 UI 实例的 GitHub 存储库。

在环境变量中,根据上面获得的值添加以下内容:

  • 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
  • NEXT_PUBLIC_AZURE_OPENAI_ENDPOINT
  • NEXT_PUBLIC_AZURE_GPT_45_VISION_ID

有关环境变量的完整列表,请参阅“.env.local.example”文件。如果为 API 密钥设置了环境变量,它将禁用用户设置中的输入。

单击“部署”并等待前端部署。

部署后,你应该能够通过 Vercel 为你提供的 URL 使用托管的聊天机器人 UI 实例。

贡献

我们正在制定一份贡献指南。

联系

Twitter/X 上向 Mckay 发送消息