# 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秒自动消失 ## 快速开始 ### 启动服务器 服务器启动时会自动打开浏览器到管理控制台: ```bash node src/api-server.js --port 3000 --api-key 123456 ``` 访问地址:http://127.0.0.1:3000/ ### 界面导航 1. **仪表盘** - 系统概览、统计信息和路径路由示例 2. **配置管理** - 修改服务器配置和提供商设置 3. **提供商池管理** - 管理多个API提供商账户 4. **上传配置管理** - 管理配置文件和搜索过滤 5. **实时日志** - 查看服务器运行日志 ## 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 来改进这个管理控制台! ## 许可证 本项目使用与主项目相同的许可证。