Chat2API 是一个多平台 AI 服务统一管理工具,通过利用官方 Web UI 实现零成本访问领先的 AI 模型。它支持 DeepSeek、GLM、Kimi、MiniMax、Qwen、Z.ai 等提供商,并与 openlcaw、Cline、Roo-Code 等工具无缝集成,使任何 OpenAI 兼容客户端都能开箱即用。
- OpenAI 兼容 API:提供标准的 OpenAI 兼容 API 端点,实现无缝集成
- 多提供商支持:连接 DeepSeek、GLM、Kimi、MiniMax、Perplexity、Qwen、Z.ai 等
- 上下文管理:智能对话上下文管理,支持滑动窗口、令牌限制和摘要策略
- 函数调用支持:通过提示工程实现所有模型的通用工具调用能力,兼容 Cherry Studio、Kilo Code 等客户端
- 模型映射:灵活的模型名称映射,支持通配符和首选提供商/账户选择
- 自定义参数:支持自定义 HTTP 头,启用网络搜索、思考模式和深度研究功能
- 仪表板监控:实时请求流量、令牌使用和成功率
- API 密钥管理:为本地代理生成和管理密钥
- 模型管理:查看和管理所有提供商的可用模型
- 请求日志:详细的请求日志,用于调试和分析
- 代理配置:灵活的代理设置和路由策略
- 系统托盘集成:从菜单栏快速访问状态
- 多语言支持:英语和简体中文支持
- 现代 UI:清洁、响应式界面,支持明暗主题
Chat2API 采用 Electron 架构,分为主进程和渲染进程两部分。主进程负责核心功能实现,包括代理服务器、账户管理、模型管理等;渲染进程负责用户界面展示。
Chat2API/
├── src/
│ ├── main/ # Electron 主进程
│ │ ├── index.ts # 应用入口点
│ │ ├── tray.ts # 系统托盘集成
│ │ ├── proxy/ # 代理服务器管理
│ │ ├── ipc/ # IPC 处理器
│ │ ├── store/ # 数据存储
│ │ ├── oauth/ # OAuth 认证
│ │ ├── providers/ # 提供商管理
│ │ └── utils/ # 工具函数
│ ├── preload/ # 上下文桥接
│ └── renderer/ # React 前端
│ ├── components/ # UI 组件
│ ├── pages/ # 页面组件
│ ├── stores/ # Zustand 状态管理
│ └── hooks/ # 自定义钩子
├── build/ # 构建资源
└── scripts/ # 构建脚本
- 应用启动和初始化
- 窗口管理
- 系统托盘集成
- 异常处理
- 提供 OpenAI 兼容的 API 端点
- 管理请求路由和转发
- 实现负载均衡策略
- 模型映射和转换
- 会话管理
- 管理应用配置
- 存储提供商和账户信息
- 日志管理
- 处理不同提供商的认证流程
- 令牌提取和管理
- 内置提供商支持
- 自定义提供商配置
- 提供商状态检查
- 仪表板组件
- 提供商管理组件
- 代理设置组件
- 模型管理组件
- 日志查看组件
- 仪表板页面
- 提供商页面
- 代理设置页面
- 模型页面
- API 密钥页面
- 日志页面
- 设置页面
- 仪表板状态
- 提供商状态
- 代理状态
- 日志状态
- 设置状态
- 职责:实现基于 Koa 的代理服务器
- 主要方法:
start(port, host):启动代理服务器stop():停止代理服务器restart(port, host):重启代理服务器isRunning():检查服务器是否运行getStatistics():获取服务器统计信息
- 职责:实现负载均衡策略
- 主要方法:
selectAccount(model, strategy, preferredProviderId, preferredAccountId):选择合适的账户markAccountFailed(accountId):标记账户失败clearAccountFailure(accountId):清除账户失败状态getAvailableAccounts(model, preferredProviderId, excludeFailed):获取可用账户列表
- 职责:支持请求模型到实际模型的映射
- 主要方法:
mapModel(requestedModel, provider):映射模型名称getActualModel(requestedModel, providerId):获取实际模型名称getPreferredProvider(requestedModel):获取首选提供商addMapping(requestModel, actualModel, preferredProviderId, preferredAccountId):添加模型映射
- 职责:管理应用数据存储
- 主要方法:
getConfig():获取应用配置updateConfig(config):更新应用配置getProviders():获取提供商列表getAccountsByProviderId(providerId, activeOnly):获取指定提供商的账户addLog(level, message, data):添加日志
- 职责:展示应用仪表板,包括请求统计、提供商状态等
- 职责:管理 AI 服务提供商和账户
- 职责:配置代理服务器设置,包括端口、负载均衡策略等
- 职责:管理和查看可用的 AI 模型
- 职责:管理 API 密钥
| 依赖 | 版本 | 用途 |
|---|---|---|
| Electron | 33+ | 跨平台桌面应用框架 |
| React | 18+ | UI 框架 |
| TypeScript | 5+ | 类型安全的 JavaScript |
| Koa | 2.15+ | HTTP 服务器 |
| Zustand | 5+ | 状态管理 |
| Tailwind CSS | 3.4+ | CSS 框架 |
| Axios | 1.7+ | HTTP 客户端 |
| electron-store | 10+ | 数据存储 |
| eventsource-parser | 3+ | 处理 Server-Sent Events |
| i18next | 25+ | 国际化 |
| 依赖 | 版本 | 用途 |
|---|---|---|
| electron-vite | 2.3+ | 构建工具 |
| vite | 5.4+ | 前端构建工具 |
| typescript | 5.6+ | 类型检查 |
| tailwindcss | 3.4+ | CSS 框架 |
| electron-builder | 25.1+ | 应用打包 |
npm install# Linux/macOS
npm run dev
# Windows
npm run dev:winnpm run build # 构建应用
npm run build:mac # 构建 macOS 版本
npm run build:win # 构建 Windows 版本
npm run build:linux # 构建 Linux 版本
npm run build:all # 构建所有平台版本# 预览构建版本
npm start
# 无沙箱模式启动
npm run start:sandbox应用数据存储在 ~/.chat2api/ 目录:
config.json- 应用配置providers.json- 提供商设置accounts.json- 账户凭证(加密)logs/- 请求日志
- 端口:默认 8080,可在设置中修改
- 路由策略:轮询(Round Robin)、填充优先(Fill First)、故障转移(Failover)
- API 密钥:可在设置中启用 API 密钥认证
支持的提供商:
- DeepSeek
- GLM
- Kimi
- MiniMax
- Perplexity
- Qwen (CN)
- Qwen AI (Global)
- Z.ai
每个提供商需要配置相应的认证信息,如令牌或凭证。
- 主进程:
src/main/目录,包含核心功能实现 - 渲染进程:
src/renderer/src/目录,包含 UI 组件和页面 - 共享代码:
src/shared/目录,包含主进程和渲染进程共享的代码
要添加新的提供商支持,需要:
- 在
src/main/providers/builtin/目录添加提供商实现 - 在
src/main/oauth/adapters/目录添加 OAuth 适配器 - 在
src/main/proxy/adapters/目录添加代理适配器 - 在渲染进程中添加提供商图标和配置界面
- 使用
npm run dev启动开发模式,支持热重载 - 主进程日志可在终端查看
- 渲染进程可使用 Chrome 开发者工具调试(在开发模式下自动打开)
由于 macOS 安全机制,从 App Store 外下载的应用可能会触发此警告。运行以下命令修复:
sudo xattr -rd com.apple.quarantine "/Applications/Chat2API.app"如果默认端口 8080 被占用,可在设置中修改代理端口。
- 检查令牌是否有效
- 确保网络连接正常
- 查看应用日志获取详细错误信息
| 组件 | 技术 |
|---|---|
| 框架 | Electron 33+ |
| 前端 | React 18 + TypeScript |
| 样式 | Tailwind CSS |
| 状态管理 | Zustand |
| 构建工具 | Vite + electron-vite |
| 打包工具 | electron-builder |
| 服务器 | Koa |
GNU General Public License v3.0。详见 LICENSE 文件。
- Fork 项目
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开 Pull Request
- Implemented automatic application update feature
- Added real-time download progress tracking
- Added one-click install and restart functionality
- Improved error handling and user experience
- Added multi-language support for update UI
- 新增 Perplexity 提供商支持
- 改进上下文管理功能
- 优化模型映射逻辑
- 修复已知 bug
- 新增函数调用支持
- 改进代理服务器性能
- 优化 UI 界面
- 新增 Qwen AI (Global) 支持
- 改进 OAuth 认证流程
- 修复稳定性问题
- 新增系统托盘集成
- 改进日志系统
- 修复 minor bug
- 初始版本发布
- 支持多个 AI 提供商
- 提供 OpenAI 兼容 API
- 实现基本的代理功能