OpenChat 是一个现代化的 AI 聊天应用,它使用 React 和多后端架构(Cloudflare Workers/Node.js/Golang)构建,提供 Web、移动 App 和桌面端全平台客户端。

全栈 TypeScript:前后端类型安全,提高开发效率。

极速部署:基于 Cloudflare Workers,实现一键全球部署。

全平台无缝同步:网页、手机、电脑三端数据实时同步,随时随地无缝切换,继续您的对话。

完整包装:开箱即用的完整功能,无需额外配置。

高度可扩展:易于添加新模型和功能的模块化设计。

AI 驱动交互:集成 OpenAI GPT-4 进行自然语言对话。

文本生成图像:支持 Flux AI 模型进行文生图。

网络搜索功能:集成 Brave Web 搜索功能。

多平台支持:同时支持 Web 浏览器和原生应用(通过 Tauri)。

现代数据库架构:使用 PostgreSQL 与 Drizzle ORM 和 Cloudflare Hyperdrive 优化。

类型安全 API 通信:使用 Connect RPC 和 Protocol Buffers。

扫码登录:支持在 Tauri 客户端应用中通过扫描二维码登录。

图像存储:使用 Cloudflare R2 高效存储图像。

实时响应:使用现代 React 组件构建快速响应的界面。

三端同步:网页、手机和电脑之间无缝切换和实时同步所有聊天记录。

技术栈

前端

框架:React 与 React Router。

UI 库:Chakra UI。

客户端支持:Tauri。

后端

无服务器:Cloudflare Workers(Node.js 和 Golang 后端实现正在开发中)。

API:Connect RPC 与 Protocol Buffers。

类型生成:buf。

数据库

数据库:Neon(PostgreSQL)。

ORM:Drizzle ORM。

连接优化:Cloudflare Hyperdrive。

开发工具

Monorepo 管理:pnpm workspaces。

代码格式化:Biome。

部署:Cloudflare。

环境要求

Node.js(v18 或更高)

pnpm

Wrangler CLI

buf CLI

安装

1、克隆仓库:

git clone https://github.com/akazwz/openchat-monorepo.git
cd openchat-monorepo

2、安装依赖:

pnpm install

3、设置环境变量:

# 基于示例创建环境文件
cp packages/workers/.env.example packages/workers/.env
cp packages/frontend/.env.example packages/frontend/.env

4、生成 Protocol Buffer 类型:

pnpm run gen:pb

开发

启动开发服务器:

pnpm run dev

这将同时启动前端和 Cloudflare Worker 的开发模式。

部署

将应用部署到 Cloudflare:

pnpm run deploy

项目结构

├── packages
│   ├── frontend         # React 前端应用
│   ├── workers          # Cloudflare Workers 后端服务
│   ├── nodejs           # Node.js 后端实现
│   └── golang           # Golang 后端实现
├── proto                # Protocol Buffer 定义

下载

Android APK 安装包

Mac (Apple Silicon) DMG 安装包