这个仓库 botgroup.chat
是一个基于 React 和 Cloudflare Pages 构建的多人 AI 聊天应用,同时也支持服务器版的一键 Docker 部署。以下是对该仓库的详细介绍:
项目概述
这是一个多人 AI 聊天应用,支持多个 AI 角色同时参与对话,提供类似群聊的交互体验。用户可以在应用中与多个 AI 角色进行实时交流,享受流式响应。该应用具有群组管理、AI 角色禁言、Markdown 格式支持、数学公式显示等功能,界面美观且支持移动端。
功能特点
- 多 AI 角色对话:支持多个 AI 角色同时参与对话。
- 实时流式响应:用户与 AI 交流时可获得实时流式响应。
- 自定义角色:可自定义 AI 角色和个性。
- 群组管理:具备群组管理功能。
- AI 禁言:支持对 AI 角色进行禁言操作。
- Markdown 支持:聊天内容支持 Markdown 格式。
- 数学公式显示:支持使用 KaTeX 显示数学公式。
- 美观 UI:拥有美观的用户界面。
- 响应式设计:支持在移动端使用。
代码结构
.github/workflows
:包含 GitHub Actions 工作流配置文件,如release.yml
用于在代码推送到main
分支时自动构建、打包并创建 GitHub 发布。functions/api
:存放 API 相关的代码,如login.ts
、test-db.ts
、user/info.ts
等,定义了与用户登录、数据库测试、用户信息等相关的接口。migrations
:包含数据库迁移脚本,如0001_init_users.sql
和0002_create_users.sql
。src
:项目的主要源代码目录,包含页面组件、状态管理、配置文件等。pages/login/components
:包含登录页面的组件,如PhoneLogin.tsx
实现了手机号登录和验证码发送功能。store
:包含状态管理相关代码,如userStore.ts
定义了用户信息的状态和操作方法。config
:包含配置文件,如groups.ts
定义了群聊信息的接口。public
:存放公共资源,如图片等。
依赖管理
package.json
:定义了项目的依赖和脚本命令。项目使用了 Vite 作为构建工具,同时依赖了多个 React 组件库和第三方服务相关的库,如阿里云短信服务、OpenAI 等。package-lock.json
:锁定了项目依赖的具体版本,确保项目在不同环境下的一致性。
部署配置
wrangler.toml
:配置了 Cloudflare Workers 和 KV 存储的相关信息,如绑定的 KV 命名空间和 D1 数据库。.gitignore
:指定了不需要纳入版本控制的文件和目录,如日志文件、依赖目录、环境变量文件等。
数据库
friends.sql
:包含数据库表的创建语句和初始数据插入语句,定义了users
表的结构。
自定义配置
用户可以在 config/aiCharacters.ts
中自定义模型和 AI 角色信息,包括模型标识、API 密钥、角色名称、性格描述等。
部署方式
- Cloudflare Pages:可通过 Fork 项目到 GitHub 账号,然后在 Cloudflare Dashboard 中进行配置部署。需要设置相应的环境变量,如各模型的 API 密钥。
- 服务器版:支持一键 Docker 部署,仓库地址为
https://github.com/maojindao55/botgroup.chat-server
。
贡献与支持
项目开源上线后,因用户增长导致 tokens 消耗较大,接受了国内多个基座模型厂商的赞助。开发者对国产 AI 模型服务商表示感谢。