多AI支持聊天机器人

Better Chatbot是一个开源AI聊天机器人,支持多种大型语言模型(如OpenAI、Anthropic、Google等),提供浏览器自动化、图像生成、语音助手等功能,适用于个人和团队协作。

作者 By cgoinglove
本地部署 开源AI 聊天机器人
GitHub

[!警告] 该项目的作者已将开发暂停到2月,但我(@brrock)将尝试解决漏洞和问题。如果你正在做出贡献,你可能不得不等到开发继续。 thumbnail

🚀 现场演示 |在 预览 在…下面

演示聊天

快速开始🚀

让你的应用程序在几分钟内运行!无需安装或付款。

你只需要 一个人工智能提供商API密钥 (OpenAI、Claude、Gemini等)。其他一切都在免费层上运行——数据库、文件存储和托管。

👉 点击本指南,只需点击几下即可部署您的网站


更好的聊天机器人 -受ChatGPT、Claude、Grok和Gemini的启发,为个人和团队提供更好的开源人工智能聊天机器人。

多AI支持 -整合了所有主要的LLMs:OpenAI、Anthropic、谷歌、xAI、Ollama等

强大的工具 -MCP协议、web搜索、JS/Python代码执行、数据可视化

图像生成 -使用AI模型(OpenAI、Google Gemini、xAI)创建和编辑图像

自动化 -定制代理、可视化工作流程、工件生成

协作 -与您的团队共享代理、工作流和MCP配置

语音助手 -实时语音聊天,完全集成MCP工具

直观的用户体验 -立即调用任何功能 @mention

快速开始 -使用Vercel Deploy按钮免费部署

采用Vercel AI SDK和Next.js构建,将领先的AI服务的最佳功能整合到一个平台中。

目录

  • 目录

  • 预览

  • 🧩 使用Playwright MCP实现浏览器自动化

  • 🔗 可视化工作流作为自定义工具

  • 🤖 自定义代理

  • 🎙️ 实时语音助手+MCP工具

  • ⚡️ 快速工具说明(@)&预设

  • 🧭 工具选择模式

  • 🛠️ 默认工具

  • 🌐 网络搜索

  • ⚡️ JS,巨蟒执行人

  • 📊 数据可视化工具

  • 入门指南

  • 快速入门(Docker编写版)🐳

  • 快速入门(本地版本)🚀

  • 环境变量

  • 📘 指南

  • 🔌 MCP服务器设置和工具测试

  • 🐳 Docker托管指南

  • ▲ Vercel托管指南

  • 🗂️ 文件存储驱动程序

  • 🎯 系统提示和聊天定制

  • 🔐 OAuth登录设置

  • 🕵🏿 添加类似openAI的提供者

  • 🧪 E2E测试指南

  • 💡 提示

  • 💬 临时聊天窗口

  • 🗺️ 路线图

  • 🙌 贡献

  • 💬 加入我们的Discord

这个项目正在以闪电般的速度发展! ⚡️ 我们不断推出新功能并清除漏洞。 标记此回购 加入我们,了解最新更新!

预览

感受一下用户体验——下面快速了解一下可能的情况。

🧩 使用Playwright MCP实现浏览器自动化

例子: 使用Microsoft的控制web浏览器 剧作家mcp 工具。

  • LLM自主决定如何使用MCP服务器的工具,多次调用它们以完成多步骤任务并返回最终消息。

示例提示:

PROMPT``` 1 2 3 4 5 6 71. Use the @tool(‘web-search’) to look up information about “modelcontetprotocol.” 2. Then, using : @mcp(“playwright”)




### 🔗 可视化工作流作为自定义工具


![workflow](https://gips0.baidu.com/it/u=3989452750,1459376987&fm=3081&app=3081&f=PNG?w=3824&h=1906)
![workflow-mention](https://gips0.baidu.com/it/u=1411393219,3685162490&fm=3081&app=3081&f=PNG?w=2626&h=1888)
**例子:** 创建自定义工作流,使其成为聊天对话中的可调用工具。


- 通过连接LLM节点(用于AI推理)和工具节点(用于MCP工具执行)构建可视化工作流程
- 发布工作流以使其可用 `@workflow_name` 聊天工具
- 将复杂的多步骤流程链接到可重复使用的自动化序列中




### 🤖 自定义代理


![agent-example](https://gips0.baidu.com/it/u=1698197982,3325046182&fm=3081&app=3081&f=GIF?w=928&h=684)
**例子:** 使用自定义指令和工具访问创建专门的AI代理。


- 使用特定的系统提示和可用工具定义自定义代理
- 使用轻松调用聊天中的代理 `@agent_name`
- 使用问题/PR工具和项目上下文构建特定任务的助手,如GitHub Manager代理


例如,通过以下方式创建GitHub Manager代理:


- 提供GitHub工具(问题/PR创建、评论、查询)
- 将项目详细信息添加到系统提示中
- 称之为 `@github_manager` 管理您的存储库




### 🎙️ 实时语音助手+MCP工具





这个演示展示了 **基于实时语音的聊天机器人助手** 使用OpenAI新的实时API构建-现在扩展为 **MCP工具集成**.
自然地与助手交谈,并观察它实时执行工具。


### ⚡️ 快速工具说明(`@`)&预设


![image](https://gips1.baidu.com/it/u=1824285685,3227785483&fm=3081&app=3081&f=GIF?w=950&h=698)
在聊天过程中通过键入快速调用工具 `@toolname`.
无需死记硬背,只需输入即可 `@` 并从列表中选择!


**工具选择与提及(`@`)–何时使用What:**


- **工具选择**:使LLM在所有聊天中始终可以使用常用工具。非常方便,并随着时间的推移保持一致的上下文。
- **提及(`@`)**:仅临时绑定用于该特定响应的所述工具。由于只有提到的工具被发送到LLM,这节省了令牌,可以提高速度和准确性。


每种方法都有自己的优势——将它们结合起来,以平衡效率和性能。


您还可以创建 **工具预设** 只选择您需要的MCP服务器或工具。
只需点击一下,即可在预设之间立即切换——非常适合按任务或工作流组织工具。


### 🧭 工具选择模式


![image](https://gips2.baidu.com/it/u=3975575164,3321564248&fm=3081&app=3081&f=PNG?w=2524&h=1902)
控制每次聊天中工具的使用方式 **工具选择模式** --随时切换 `⌘P`.


- **自动:** 模型会在需要时自动调用工具。
- **手册:** 模型在调用工具之前会征求您的许可。
- **无:** 工具使用已完全禁用。


这使您可以根据情况在自主、引导或无工具交互之间灵活选择。


### 🛠️ 默认工具


#### 🌐 网络搜索


![web-search](https://gips2.baidu.com/it/u=2388413863,1936095313&fm=3081&app=3081&f=PNG?w=2068&h=1880)
内置网络搜索由 [Exa AI](https://exa.ai).使用语义AI搜索网络,并直接在聊天中从URL中提取内容。


- **可选:** 添加 `EXA_API_KEY` 到 `.env` 启用网络搜索
- **免费等级:** 每月1000次免费请求,无需信用卡
- **轻松设置:** 立即在获取API密钥 [dashboard.exa.ai](https://dashboard.exa.ai)


#### 🎨 图像生成


![image-generation](https://gips3.baidu.com/it/u=3962843597,3487125292&fm=3081&app=3081&f=GIF?w=1286&h=654)
由AI模型支持的内置图像生成和编辑功能。直接在聊天中创建、编辑和修改图像。


- **支持的操作:** 图像生成、编辑和合成
- **当前型号:** 双子座纳米香蕉,OpenAI


#### ⚡️ JS,巨蟒执行人


![js-executor-preview](https://gips0.baidu.com/it/u=1876526666,2250809616&fm=3081&app=3081&f=GIF?w=998&h=684)
它是一个简单的JS执行工具。


#### 📊 数据可视化工具


**交互式表格**:创建具有高级功能的功能丰富的数据表:


- **排序和筛选**:按任意列排序,实时过滤数据
- **搜索和突出显示**:具有自动文本突出显示功能的全局搜索
- **导出选项**:使用延迟加载的库导出为CSV或Excel格式
- **栏目管理**:显示/隐藏具有可见性控件的列
- **分页**:使用内置分页处理大型数据集
- **数据类型支持**:字符串、数字、日期和布尔值的正确格式


**图表生成**:使用各种图表类型(条形图、折线图、饼图)可视化数据


> 此外,还提供了许多其他工具,如API请求的HTTP客户端等。




…还有更多的在等着你。
试试看它还能做什么!




## 入门指南


> 此项目使用 [pnpm](https://pnpm.io/) 作为推荐的包管理器。


BASH```
1
2# If you don't have pnpm:
npm install -g pnpm

快速入门(Docker编写版)🐳

BASH``` 1 2 3 4 5 6 7# 1. Install dependencies pnpm i

2. Enter only the LLM PROVIDER API key(s) you want to use in the .env file at the project root.

Example: The app works with just OPENAI_API_KEY filled in.

(The .env file is automatically created when you run pnpm i.)

3. Build and start all services (including PostgreSQL) with Docker Compose

pnpm docker-compose:up


### 快速入门(本地版本)🚀


BASH```
1
2
3
4
5
6
7
8
9
10
11
12pnpm i
#(Optional) Start a local PostgreSQL instance
# If you already have your own PostgreSQL running, you can skip this step.
# In that case, make sure to update the PostgreSQL URL in your .env file.
pnpm docker:pg
# Enter required information in the .env file
# The .env file is created automatically. Just fill in the required values.
# For the fastest setup, provide at least one LLM provider's API key (e.g., OPENAI_API_KEY, CLAUDE_API_KEY, GEMINI_API_KEY, etc.) and the PostgreSQL URL you want to use.
pnpm build:local && pnpm start
# (Recommended for most cases. Ensures correct cookie settings.)
# For development mode with hot-reloading and debugging, you can use:
# pnpm dev

替代方案:仅使用Docker Compose for DB(通过pnpm运行应用程序)

BASH``` 1 2 3 4 5 6 7# Start Postgres only via compose

Ensure your .env includes: POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB matching POSTGRES_URL

docker compose -f docker/compose.yml up -d postgres

Apply migrations

pnpm db:migrate

Run app locally

pnpm dev # or: pnpm build && pnpm start


打开 [http://localhost:3000](http://localhost:3000) 在浏览器中开始。


### 环境变量


这 `pnpm i` 命令生成 `.env` 文件。在那里添加您的API密钥。


DOTENV```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55# === LLM Provider API Keys ===
# You only need to enter the keys for the providers you plan to use
GOOGLE_GENERATIVE_AI_API_KEY=****
OPENAI_API_KEY=****
XAI_API_KEY=****
ANTHROPIC_API_KEY=****
OPENROUTER_API_KEY=****
OLLAMA_BASE_URL=http://localhost:11434/api
# Secret for Better Auth (generate with: npx @better-auth/cli@latest secret)
BETTER_AUTH_SECRET=****
# (Optional)
# URL for Better Auth (the URL you access the app from)
BETTER_AUTH_URL=
# === Database ===
# If you don't have PostgreSQL running locally, start it with: pnpm docker:pg
POSTGRES_URL=postgres://your_username:your_password@localhost:5432/your_database_name
# (Optional)
# === Tools ===
# Exa AI for web search and content extraction (optional, but recommended for @web and research features)
EXA_API_KEY=your_exa_api_key_here
# Whether to use file-based MCP config (default: false)
FILE_BASED_MCP_CONFIG=false
# === File Storage ===
# Vercel Blob is the default storage driver (works in both local dev and production)
# Pull the token locally with `vercel env pull`
FILE_STORAGE_TYPE=vercel-blob
FILE_STORAGE_PREFIX=uploads
BLOB_READ_WRITE_TOKEN=
# -- S3 (coming soon) --
# FILE_STORAGE_TYPE=s3
# FILE_STORAGE_PREFIX=uploads
# FILE_STORAGE_S3_BUCKET=
# FILE_STORAGE_S3_REGION=
# (Optional)
# === OAuth Settings ===
# Fill in these values only if you want to enable Google/GitHub/Microsoft login
#GitHub
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
#Google
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Set to 1 to force account selection
GOOGLE_FORCE_ACCOUNT_SELECTION=
# Microsoft
MICROSOFT_CLIENT_ID=
MICROSOFT_CLIENT_SECRET=
# Optional Tenant Id
MICROSOFT_TENANT_ID=
# Set to 1 to force account selection
MICROSOFT_FORCE_ACCOUNT_SELECTION=
# Set this to 1 to disable user sign-ups.
DISABLE_SIGN_UP=
# Set this to 1 to disallow adding MCP servers.
NOT_ALLOW_ADD_MCP_SERVERS=

📘 指南

运行和配置更好的聊天机器人的分步设置指南。

🔌 MCP服务器设置和工具测试

  • 如何在您的环境中添加和配置MCP服务器

🐳 Docker托管指南

  • 如何使用Docker自托管聊天机器人,包括环境配置。

▲ Vercel托管指南

  • 通过简单的设置步骤将聊天机器人部署到Vercel,以供生产使用。

🗂️ 文件存储驱动程序

  • 基于云的文件存储,带有Vercel Blob(默认),可在开发和生产中实现无缝上传。S3支持即将推出。

🎯 系统提示和聊天定制

  • 通过自定义系统提示、用户偏好和MCP工具说明个性化您的聊天机器人体验

🔐 OAuth登录设置

  • 配置Google、GitHub和Microsoft OAuth以获得安全的用户登录支持。

🕵🏿 添加类似openAI的提供者

  • 添加类似openAI的人工智能提供商

🧪 E2E测试指南

  • 使用Playwright进行全面的端到端测试,包括多用户场景、代理可见性测试和CI/CD集成

💡 提示

💬 临时聊天窗口

  • 打开轻量级的弹出式聊天,以便快速提问或测试——与主线程分开。

🗺️ 路线图

更好的聊天机器人即将推出的计划功能:

  • 文件上传和存储 (Vercel Blob集成)
  • 图像生成
  • 协同文档编辑 (就像OpenAI Canvas:用户和助理共同编辑)
  • RAG(检索增强生成)
  • 基于Web的计算 (与 网络容器 整合

💡 如果您有建议或需要特定功能,请创建 问题!

💖 支持

如果这个项目对你有帮助,请考虑支持它的发展:

  • 这个仓库
  • 🐛 报告 bug和建议功能
  • 💰 成为赞助商 支持持续发展

您的支持有助于维护和改进此项目。非常感谢。 🙏

🙌 贡献

我们欢迎所有的贡献!Bug报告、功能想法、代码改进——一切都有助于我们构建最好的本地AI助手。

⚠️ 请阅读我们的 贡献指南 在提交任何拉取请求或问题之前。 这有助于我们更有效地合作,为每个人节省时间。

关于详细的贡献指南,请查看我们的 贡献指南.

语言翻译: 通过添加新的语言翻译,帮助我们让更多用户可以访问聊天机器人。看 语言.md 有关如何贡献翻译的说明。

让我们一起建造它🚀

💬 加入我们的Discord

与社区联系,提出问题,并在我们的官方Discord服务器上获得支持!