Skip to content

stephenlzc/cf-chatui

Repository files navigation

🤖 CF ChatUI

Deploy to Cloudflare Workers Workers AI License

🎯 零门槛使用大模型 - 无需部署服务器,无需申请 API Key,直接调用 Cloudflare Workers AI 的免费/付费模型

CF ChatUI 是一个基于 Cloudflare Workers AI 的多功能 AI 对话 Web 界面,让您在几分钟内即可搭建自己的 AI 聊天平台。支持文本对话、图像生成和文本嵌入,所有计算都在 Cloudflare 边缘节点完成。

✨ 功能特性

🤖 AI 模型支持

  • 💬 多模型对话 - GLM-4.7-Flash、GPT-OSS-120B 等
  • 🎨 AI 图像生成 - FLUX.2 Dev 高质量图像创作
  • 📊 文本嵌入 - Plamo Embedding 向量化处理

🛠️ 平台特性

  • 🔐 安全认证 - JWT 身份验证,保护您的 AI 服务
  • 🌓 深色主题 - 现代化的 ChatGPT 风格界面
  • 📱 响应式设计 - 适配桌面和移动设备
  • 边缘计算 - 基于 Cloudflare Workers 全球部署
  • 🆓 零运维成本 - 无需管理服务器,按需付费

🔧 可配置性

本项目采用高度模块化设计,未来版本将支持更多自定义配置:

  • 自定义系统提示词
  • 模型参数调整(temperature、max_tokens 等)
  • 主题和皮肤定制
  • 插件扩展系统
  • 多用户角色管理
  • API 速率限制配置
  • 更多 AI 模型接入

🌟 为什么选择 CF ChatUI?

vs 传统 AI API 方案

特性 OpenAI/Claude API CF ChatUI + Workers AI
API Key 申请 ❌ 需要信用卡,审核严格 ✅ 无需申请,即开即用
服务器部署 ❌ 需要 VPS/云服务器 ✅ 纯 Serverless,零运维
全球访问速度 ⚠️ 依赖服务器位置 ✅ Cloudflare 全球边缘节点
成本 💰 按量付费,可能较高 🆓 免费额度 + 低价按量
隐私安全 ⚠️ 数据发送到第三方 ✅ 数据在 Cloudflare 边缘处理

谁适合使用?

  • 👨‍💻 开发者 - 快速搭建 AI 演示或原型
  • 🏢 小团队 - 无需 DevOps 的 AI 解决方案
  • 🎓 学习者 - 零成本体验大模型能力
  • 🔒 隐私敏感用户 - 数据不经过第三方服务

🚀 快速开始

前置要求

获取所需密钥

在部署之前,您需要获取以下信息:

1. Cloudflare 账户 ID

  1. 登录 Cloudflare Dashboard
  2. 在右侧边栏找到 账户 ID (Account ID)
  3. 复制备用

2. Cloudflare API Token

  1. 访问 API Tokens 页面
  2. 点击 创建令牌 (Create Token)
  3. 使用 自定义令牌 (Custom token) 模板
  4. 权限设置:
    • 账户 (Account) - Cloudflare AI - 编辑 (Edit)
    • 账户 (Account) - Worker 脚本 (Worker Scripts) - 编辑 (Edit) (可选)
  5. 账户资源: 包含您的账户
  6. 创建并复制令牌

3. 自定义配置 (可选)

  • AUTH_PASSWORD - 登录密码 (默认: Admin12345%)
  • SESSION_SECRET - JWT 签名密钥 (建议使用随机字符串)

部署步骤

方式一: 使用 Wrangler CLI

# 1. 克隆仓库
git clone https://github.com/stephenlzc/cf-chatui.git
cd cf-chatui

# 2. 安装依赖
npm install

# 3. 设置 Secrets (推荐方式)
# 注意: wrangler.toml 已包含在仓库中,无需额外配置
wrangler secret put CF_ACCOUNT_ID
# 输入您的 Cloudflare 账户 ID

wrangler secret put CF_API_TOKEN
# 输入您的 Cloudflare API Token

wrangler secret put AUTH_PASSWORD
# 输入您想要的登录密码

wrangler secret put SESSION_SECRET
# 输入随机生成的密钥 (可使用: openssl rand -base64 32)

# 4. 部署
wrangler deploy

方式二: 使用 .dev.vars (本地开发)

# 1. 创建本地环境变量文件
cp .dev.vars.example .dev.vars

# 2. 编辑 .dev.vars 填入实际值
# CF_ACCOUNT_ID=your_account_id
# CF_API_TOKEN=your_api_token
# AUTH_PASSWORD=your_password
# SESSION_SECRET=your_secret

# 3. 本地开发
wrangler dev

# 4. 部署到生产环境
wrangler deploy

方式三: Cloudflare Dashboard (无需命令行)

  1. Fork 此仓库到您的 GitHub 账户
  2. 登录 Cloudflare Dashboard
  3. 进入 Workers & Pages
  4. 点击 创建使用 Git 创建
  5. 连接您的 GitHub 账户并选择 fork 的仓库
  6. 设置环境变量:
    • 变量名: CF_ACCOUNT_ID, CF_API_TOKEN, AUTH_PASSWORD, SESSION_SECRET
    • 加密: 建议启用加密 (Secret)
  7. 部署

部署后配置

部署成功后,您将获得一个类似 https://cf-chatui.your-account.workers.dev 的 URL。

首次访问:

  • 使用设置的密码登录
  • 默认密码: Admin12345% (如果未自定义)

🛠️ 技术栈

📝 支持的 AI 模型

类型 模型 描述
对话 @cf/zai-org/glm-4.7-flash 智谱AI快速对话模型
对话 @cf/openai/gpt-oss-120b OpenAI 开源大语言模型
图像 @cf/black-forest-labs/flux-2-dev FLUX 高质量图像生成
嵌入 @cf/pfnet/plamo-embedding-1b 文本嵌入向量模型

🔧 开发指南

# 安装依赖
npm install

# 本地开发 (需配置 .dev.vars)
wrangler dev

# 部署到生产环境
wrangler deploy

# 查看日志
wrangler tail

项目结构

cf-chatui/
├── src/
│   └── index.ts          # 主入口 (Worker + 前端)
├── wrangler.toml         # Cloudflare Workers 配置
├── .wrangler.toml.example # 配置文件模板
├── .dev.vars.example     # 本地环境变量模板
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md

💰 Workers AI 定价

Cloudflare Workers AI 提供免费额度,对于个人使用通常足够:

模型类型 免费额度 超出后价格
文本生成 (GLM/GPT) 每天 10,000 次请求 $0.001-0.003 / 1K tokens
图像生成 (FLUX) 每天 100 张 $0.02-0.05 / 张
文本嵌入 每天 100,000 次 $0.0001 / 1K tokens

📌 提示: 免费额度每日重置,足够个人日常使用。查看 官方定价 获取最新信息。

🔒 安全建议

  1. 更改默认密码 - 部署后立即修改 AUTH_PASSWORD
  2. 使用强密钥 - SESSION_SECRET 建议使用 openssl rand -base64 32 生成
  3. 保护 API Token - 使用 wrangler secret put 加密存储
  4. 定期轮换密钥 - 建议定期更新 SESSION_SECRETCF_API_TOKEN

🐛 已知问题

⚠️ 详细的 Bug 清单请看 BUGS.md

主要已知问题:

  • 🔴 GPT-OSS-120B 模型响应不稳定
  • 🟠 中文编码 在某些浏览器下有问题
  • 🟡 聊天记录 页面刷新后丢失
  • 🟡 Token 过期 前端无自动检测

我们持续跟踪和修复问题,欢迎提交 Issue 报告新 Bug!

🗺️ 路线图

近期计划 (v1.x)

  • 📝 聊天记录持久化 - 支持查看历史对话
  • 💾 本地存储 - 浏览器本地缓存对话
  • 🎨 主题系统 - 可自定义界面颜色和风格
  • ⚙️ 模型参数配置 - 调整 temperature、max_tokens 等

中期计划 (v2.x)

  • 🌐 多语言支持 - 界面国际化 (i18n)
  • 🔑 多用户支持 - 用户管理和权限控制
  • 🧩 插件系统 - 支持自定义扩展
  • 📤 文件上传 - 支持文档和图片上传分析
  • 🤖 更多模型 - 集成更多 Workers AI 模型

长期愿景

  • 🏗️ 可视化配置器 - 无需代码即可定制功能
  • 🔌 API 网关 - 统一的 AI 模型接入层
  • 📊 使用分析 - 用量统计和成本监控

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建您的功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证。

🙏 致谢

本项目由 Kimi K2.5 协助开发

特别感谢

Moonshot AI
Cloudflare
Workers & Workers AI 平台
Tailwind CSS
优秀的 CSS 框架

Made with love

Powered by Kimi K2.5 × Cloudflare Workers

About

🤖 基于 Cloudflare Workers AI 的多功能 AI 对话 Web 界面 - 支持文本对话、图像生成和文本嵌入

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors