将项目中所有文档、注释和用户界面中的"供应商"术语统一修改为"提供商",提升术语一致性。同时: - 优化提供商健康检查频率从30分钟调整为10分钟,提高监控及时性 - 新增路由URL动态更新功能,支持不同部署环境的路径适配 - 更新相关样式类名和注释,确保代码与文档术语保持一致
8.2 KiB
8.2 KiB
AIClient2API 可视化管理控制台
概述
AIClient2API 现在包含一个功能完整的可视化 Web UI 管理控制台,允许您通过浏览器轻松管理配置、监控提供商池状态、查看实时日志、配置AI模型提供商等。
功能特性
🎨 现代化界面
- 响应式设计,支持桌面和移动设备
- 直观的仪表盘展示系统统计信息
- 侧边栏导航,方便快速切换功能模块
- 协议标签切换(OpenAI协议/Claude协议)
📊 实时监控
- 仪表盘:显示运行时间、系统信息、Node.js版本、服务器时间、内存使用
- 提供商池管理:查看各提供商账户状态、使用统计、错误率
- 活动统计:活动连接、活跃提供商、健康提供商数量
⚙️ 配置管理
- 在线修改 API 密钥、监听地址、端口
- 支持多种模型提供商:
- Gemini CLI OAuth - 支持突破限制的Gemini访问
- OpenAI Custom - 自定义OpenAI API配置
- Claude Custom - 自定义Claude API配置
- Claude Kiro OAuth - 突破限制/免费使用的Claude服务
- Qwen OAuth - 通义千问OAuth认证
- OpenAI Responses - OpenAI新版本API
- 编辑系统提示词
- 高级配置选项:
- 系统提示文件路径和模式
- 提示日志配置
- 请求重试机制(最大重试次数、基础延迟)
- OAuth令牌自动刷新设置
- 提供商池配置文件路径
🔧 上传配置管理
- 搜索配置文件功能
- 按关联状态过滤(已关联/未关联)
- 配置文件列表展示
- 配置统计信息(总数、已关联数、未关联数)
- 实时刷新配置列表
🛣️ 路径路由调用示例
- 即时切换:通过修改URL路径即可切换不同的AI模型提供商
- 跨协议调用:支持OpenAI协议调用Claude模型,或Claude协议调用OpenAI模型
- 客户端配置指导:为Cherry-Studio、NextChat、Cline等客户端提供配置示例
- 提供完整的curl使用示例
- 一键复制端点路径功能
支持的路由路径示例:
/gemini-cli-oauth/v1/chat/completions- Gemini CLI OAuth (OpenAI协议)/gemini-cli-oauth/v1/messages- Gemini CLI OAuth (Claude协议)/openai-qwen-oauth/v1/chat/completions- Qwen OAuth (OpenAI协议)/openai-qwen-oauth/v1/messages- Qwen OAuth (Claude协议)/claude-custom/v1/chat/completions- Claude Custom (OpenAI协议)/claude-custom/v1/messages- Claude Custom (Claude协议)/claude-kiro-oauth/v1/chat/completions- Claude Kiro OAuth (OpenAI协议)/claude-kiro-oauth/v1/messages- Claude Kiro OAuth (Claude协议)/openai-custom/v1/chat/completions- OpenAI Custom (OpenAI协议)/openai-custom/v1/messages- OpenAI Custom (Claude协议)
📜 实时日志
- 实时显示服务器输出日志
- 清空日志功能
- 自动滚动和手动滚动切换
- 日志缓冲区管理
🔔 通知系统
- 操作成功/失败提示
- 优雅的 Toast 通知
- 3秒自动消失
快速开始
启动服务器
服务器启动时会自动打开浏览器到管理控制台:
node src/api-server.js --port 3000 --api-key 123456
界面导航
- 仪表盘 - 系统概览、统计信息和路径路由示例
- 配置管理 - 修改服务器配置和提供商设置
- 提供商池管理 - 管理多个API提供商账户
- 上传配置管理 - 管理配置文件和搜索过滤
- 实时日志 - 查看服务器运行日志
API 端点
管理控制台使用以下 RESTful API 端点:
配置管理
GET /api/config- 获取当前配置POST /api/config- 更新配置GET /api/configs- 获取配置文件列表POST /api/configs/search- 搜索配置文件
系统信息
GET /api/system- 获取系统信息GET /api/providers- 获取提供商池信息
实时数据
GET /api/events- Server-Sent Events 流,用于实时更新
静态文件
GET /- 主页面GET /index.html- HTML页面GET /app/styles.css- 样式文件GET /app/mobile.css- 移动端样式GET /app/app.js- JavaScript主逻辑GET /app/utils.js- 工具函数GET /app/config-manager.js- 配置管理GET /app/provider-manager.js- 提供商管理GET /app/event-stream.js- 事件流处理GET /app/event-handlers.js- 事件处理器GET /app/navigation.js- 导航逻辑GET /app/modal.js- 模态框组件GET /app/file-upload.js- 文件上传GET /app/upload-config-manager.js- 上传配置管理GET /app/routing-examples.js- 路由示例GET /app/constants.js- 常量定义
技术实现
前端技术栈
- HTML5 - 语义化结构,支持无障碍访问
- CSS3 - 现代化样式(CSS Variables、Flexbox、Grid)
- JavaScript (ES6+) - 模块化交互逻辑
- Server-Sent Events - 实时数据推送
- Font Awesome 6.4.0 - 图标库
后端集成
- 集成到现有
api-server.js中 - 零额外依赖
- ES 模块语法
- 异步处理
实时通信
使用 Server-Sent Events 实现实时双向通信:
- 自动广播日志到所有连接的客户端
- 每5秒发送统计更新
- 轻量级实现,无需 WebSocket
文件结构
static/
├── index.html # 主页面
└── app/
├── styles.css # 主样式文件
├── mobile.css # 移动端样式
├── app.js # 主应用逻辑
├── constants.js # 常量定义
├── utils.js # 工具函数
├── config-manager.js # 配置管理
├── provider-manager.js # 提供商管理
├── upload-config-manager.js # 上传配置管理
├── event-stream.js # 事件流处理
├── event-handlers.js # 事件处理器
├── navigation.js # 导航逻辑
├── modal.js # 模态框组件
├── file-upload.js # 文件上传
└── routing-examples.js # 路由示例
支持的提供商
突破限制类型
- Gemini CLI OAuth - 通过OAuth突破Gemini API限制
- Claude Kiro OAuth - 免费使用的Claude服务
- Qwen OAuth - 通义千问OAuth认证
官方API/三方类型
- OpenAI Custom - 自定义OpenAI API端点
- Claude Custom - 自定义Claude API端点
- OpenAI Responses - OpenAI最新版本API
浏览器兼容性
- Chrome 60+
- Firefox 55+
- Safari 11+
- Edge 79+
常见问题
Q: 服务器启动后浏览器没有自动打开?
A: 检查是否使用 localhost 或 127.0.0.1 启动服务器。自动打开仅在本地部署时启用。
Q: 如何使用路径路由功能?
A: 在仪表盘的"路径路由调用示例"中,查看不同提供商的使用示例。修改客户端的API端点URL即可切换不同的AI模型。
Q: 如何配置OAuth提供商?
A: 在配置管理页面选择对应的OAuth提供商,填写项目ID和OAuth凭据(支持文件路径或Base64编码)。
Q: 上传配置文件有什么作用?
A: 上传配置文件可以将本地配置文件上传到服务器,方便管理和在不同环境间同步配置。
Q: 如何查看更详细的提供商信息?
A: 在"提供商池"页面可以看到每个提供商的使用次数、错误次数、最后使用时间等详细信息。
Q: 配置修改后需要重启服务器吗?
A: 大部分配置(如系统提示、API密钥)会立即生效,但网络端口等更改需要重启服务器。
Q: 支持哪些客户端配置?
A: 支持Cherry-Studio、NextChat、Cline等主流AI客户端,只需将API端点设置为对应的路由路径即可。
路由使用指南
1. 选择提供商
根据需要访问的AI模型选择对应的提供商路径。
2. 选择协议格式
- OpenAI协议:使用
/v1/chat/completions端点 - Claude协议:使用
/v1/messages端点
3. 配置客户端
在AI客户端中设置:
- API端点:
http://localhost:3000/{提供商路径}/{协议路径} - API密钥:对应提供商的密钥
- 模型名称:使用提供商支持的具体模型
4. 发送请求
使用对应的协议格式发送请求,可以实现跨协议调用。
贡献
欢迎提交 Issue 和 Pull Request 来改进这个管理控制台!
许可证
本项目使用与主项目相同的许可证。