Commit Graph

127 Commits

Author SHA1 Message Date
shaw
d44582dc31 feat: 适配claude新opus周限规则 2025-10-04 10:49:40 +08:00
shaw
ea28222c71 feat: 支持账号维度的数据统计 2025-09-27 22:55:06 +08:00
shaw
9c4dc714f8 Revert "Merge pull request #424 from Wangnov/feat/i18n"
This reverts commit 1d915d8327, reversing
changes made to 009f7c84f6.
2025-09-12 09:21:53 +08:00
Wangnov
99d72516ae feat: 完成 AccountForm.vue 组件的国际化文本替换
- 将多个文本替换为 i18n 语言包中的键,以提升多语言支持和一致性。
- 更新了模型支持描述、用户代理描述、凭证文件描述等文本内容。
- 通过引入 i18n 键,增强了用户界面的可读性和可维护性。
2025-09-12 00:04:11 +08:00
Wangnov
e36bacfd6b feat: 完成多个组件的国际化支持与文本替换
- 更新 AccountForm.vue 中的占位符文本为 i18n 语言包中的键
- 修改 ConfirmModal.vue 中的确认和取消按钮文本为 i18n 语言包中的键
- 更新 CustomDropdown.vue 中的占位符文本为 i18n 语言包中的键
- 修改 app.js 中的应用标题为英文版本
- 更新 router/index.js 中的日志输出为英文
- 在 accounts.js 和 apiKeys.js 中的错误处理信息中引入 i18n 键以提升多语言一致性
- 更新 dashboard.js 中的系统状态和错误日志为 i18n 键
- 在 DashboardView.vue 中的多个文本替换为 i18n 语言包中的键
2025-09-12 00:04:11 +08:00
Wangnov
97b94eeff9 feat: 完成web/admin-spa/src/components/apikeys的国际化并修复语法错误和警告 2025-09-12 00:03:05 +08:00
Wangnov
2de5191c05 feat: 完成三个核心组件的国际化实现
- 完成 GroupManagementModal.vue 组件国际化
  * 添加分组管理相关的所有翻译键
  * 实现创建、编辑、删除分组功能的多语言支持

- 完成 OAuthFlow.vue 组件国际化
  * 支持 Claude、Gemini、OpenAI 三个平台的授权流程
  * 修复模板中的语法错误(缺少引号)
  * 保留技术性地址不进行翻译

- 完成 ProxyConfig.vue 组件国际化
  * 添加代理配置相关的翻译键
  * 支持 SOCKS5 和 HTTP 代理类型的多语言显示

- 更新语言文件
  * 在 zh-cn.js、en.js、zh-tw.js 中添加所有新的翻译键
  * 保持三种语言文件的同步

变更统计:6 文件修改,526 行新增,116 行删除
2025-09-12 00:03:03 +08:00
Wangnov
2b40552eab feat: 完成AccountForm组件国际化的最终验证和修复
- 修复遗漏的API URL和API Key标签国际化
- 修复title属性的国际化(复制链接提示)
- 修复Claude Max/Pro订阅类型显示的国际化
- 修复剩余placeholder属性的国际化
- 完成系统性的多维度验证检查:
  *  模板中的硬编码文本
  *  JavaScript中的字符串常量
  *  特殊属性(title, placeholder等)
  *  翻译键在三语言文件中的存在性
  *  动态内容和条件渲染

现在AccountForm组件已真正实现完整的三语言国际化支持
2025-09-12 00:03:03 +08:00
Wangnov
30acf4a374 feat: 修复AccountForm组件中所有遗漏的国际化内容
- 添加60+个新的翻译键到三语言文件
- 国际化所有placeholder属性
- 国际化按钮文本和标签
- 国际化错误消息和验证提示
- 国际化OAuth步骤描述文本
- 国际化Claude功能描述和配置说明
- 确保三种语言完整覆盖所有UI文本
2025-09-12 00:03:03 +08:00
Wangnov
be7416386f feat: 完成AccountForm组件剩余模块国际化 2025-09-12 00:03:02 +08:00
Wangnov
1beed324d9 feat: 完成AccountForm组件剩余模块国际化
- 国际化剩余JavaScript错误消息和验证文本
- 完成AWS Bedrock配置字段和帮助文本国际化
- 完成Azure OpenAI特定字段和描述国际化
- 国际化了150+个翻译键,覆盖三种语言(zh-cn, zh-tw, en)
- 将所有硬编码中文字符串替换为响应式翻译
- 国际化了Toast消息、确认对话框、表单验证等用户交互元素
- 确保了编辑模式和创建模式的完整国际化支持

AccountForm组件国际化工作已基本完成,支持完整的三语言切换体验。
2025-09-12 00:03:02 +08:00
Wangnov
2e09896d0b feat: 继续完成AccountForm组件国际化的核心模块
- 完成手动Token输入部分国际化,支持Claude/Gemini/OpenAI三个平台
- 完成编辑模式所有特定功能的国际化:账户信息、类型、分组管理
- 完成Claude高级功能国际化:订阅类型、自动停止调度、统一User-Agent、客户端标识
- 完成Gemini Project ID配置的国际化支持
- 新增150+翻译键,涵盖三种语言(简中/繁中/英文)
- 保持响应式特性和暗黑模式兼容性

技术改进:
- 采用结构化翻译键命名策略 (accountForm.module.item)
- 解决重复字符串精确匹配问题
- 使用上下文信息区分相似文本的不同用法
- 优化用户交互文本:占位符、提示、按钮等

进度:AccountForm组件(3730行)已完成约70%的国际化工作
2025-09-12 00:03:02 +08:00
Wangnov
e80c49c1ce feat: 开始 AccountForm 组件国际化
- 扩展语言文件,添加200+条 AccountForm 相关翻译键
- 支持简体中文、繁体中文、英文三种语言
- 添加 useI18n 组合式 API 支持
- 国际化模态框标题、步骤指示器、平台选择等关键UI元素
- 国际化账户类型、分组管理等核心功能
- 国际化 JavaScript 中的Toast消息和确认对话框
- 为多平台(Claude、Gemini、OpenAI、Azure OpenAI、Bedrock、Claude Console)提供完整翻译支持

这是一个大型组件(3730行)的渐进式国际化工作,后续将继续完善其余部分。
2025-09-12 00:03:02 +08:00
shaw
02989a7588 fix: 修复CCR账户表单验证和平台分组逻辑
- 修复CCR账户创建时的表单字段验证
- 统一CCR与Claude Console的处理逻辑
- 修复账户删除前的API Key绑定检查
- 修复Claude Console账户绑定的API Key计数
- 优化平台分组判断逻辑

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 11:54:27 +08:00
shaw
fef2c8c3c2 feat: 优化ProxyConfig组件添加代理URL智能识别功能
- 新增快速配置输入框,支持粘贴完整代理URL自动填充表单
- 支持多种格式自动识别:socks5://、http://、https://、host:port
- 自动忽略#后的别名部分
- 粘贴即解析,输入即智能识别
- 添加实时解析成功/失败提示
- 优化用户体验,无需失去焦点即可触发解析

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 11:52:41 +08:00
shaw
78adf82f0d fix: 优化账户表单组件的UI和功能
- 将 CCR 描述从 "Claude Connector" 更正为 "Claude Code Router"
- 隐藏限流时长输入字段,统一使用默认值 60 分钟
- 为 OpenAI-Responses 平台添加分组支持
- 清理 CcrAccountForm 中的冗余标签文字

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 22:44:05 +08:00
shaw
7712d5516c merge: 合并远程 dev 分支,整合 CCR 和 OpenAI-Responses 功能
## 合并内容
- 成功合并远程 dev 分支的 CCR (Claude Connector) 功能
- 保留本地的 OpenAI-Responses 账户管理功能
- 解决所有合并冲突,保留双方功能

## UI 调整
- 将 CCR 平台归类到 Claude 分组中
- 保留新的平台分组选择器设计
- 支持所有平台类型:Claude、CCR、OpenAI、OpenAI-Responses、Gemini、Azure OpenAI、Bedrock

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 15:49:52 +08:00
shaw
08946c67ea feat: 新增 OpenAI-Responses 账户管理功能和独立自动停止标记机制
## 功能新增
- 实现 OpenAI-Responses 账户服务(openaiResponsesAccountService.js)
  - 支持使用账户内置 API Key 进行请求转发
  - 实现每日额度管理和重置机制
  - 支持代理配置和优先级设置
- 实现 OpenAI-Responses 中继服务(openaiResponsesRelayService.js)
  - 处理请求转发和响应流处理
  - 自动记录使用统计信息
  - 支持流式和非流式响应
- 新增管理界面的 OpenAI-Responses 账户管理功能
  - 完整的 CRUD 操作支持
  - 实时额度监控和状态管理
  - 支持手动重置限流和每日额度

## 架构改进
- 引入独立的自动停止标记机制,区分不同原因的自动停止
  - rateLimitAutoStopped: 限流自动停止
  - fiveHourAutoStopped: 5小时限制自动停止
  - tempErrorAutoStopped: 临时错误自动停止
  - quotaAutoStopped: 额度耗尽自动停止
- 修复手动修改调度状态时自动恢复的问题
- 统一清理逻辑,防止状态冲突

## 其他优化
- getAccountUsageStats 支持不同账户类型参数
- 统一调度器支持 OpenAI-Responses 账户类型
- WebHook 通知增强,支持新账户类型的事件

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 15:41:52 +08:00
sususu98
7f9869ae20 feat: 添加 CCR (Claude Code Router) 账户类型支持
实现通过供应商前缀语法进行 CCR 后端路由的完整支持。
用户现在可以在 Claude Code 中使用 `/model ccr,model_name` 将请求路由到 CCR 后端。
暂时没有实现`/v1/messages/count_tokens`,因为这需要在CCR后端支持。
CCR类型的账户也暂时没有考虑模型的支持情况

## 核心实现

### 供应商前缀路由

- 添加 modelHelper 工具用于解析模型名称中的 `ccr,` 供应商前缀
- 检测到前缀时自动路由到 CCR 账户池
- 转发到 CCR 后端前移除供应商前缀

### 账户管理

- 创建 ccrAccountService 实现 CCR 账户的完整 CRUD 操作
- 支持账户属性:名称、API URL、API Key、代理、优先级、配额
- 实现账户状态:active、rate_limited、unauthorized、overloaded
- 支持模型映射和支持模型配置

### 请求转发

- 实现 ccrRelayService 处理 CCR 后端通信
- 支持流式和非流式请求
- 从 SSE 流中解析和捕获使用数据
- 支持 Bearer 和 x-api-key 两种认证格式

### 统一调度

- 将 CCR 账户集成到 unifiedClaudeScheduler
- 添加 \_selectCcrAccount 方法用于 CCR 特定账户选择
- 支持 CCR 账户的会话粘性
- 防止跨类型会话映射(CCR 会话仅用于 CCR 请求)

### 错误处理

- 实现全面的错误状态管理
- 处理 401(未授权)、429(速率限制)、529(过载)错误
- 成功请求后自动从错误状态恢复
- 支持可配置的速率限制持续时间

### Web 管理界面

- 添加 CcrAccountForm 组件用于创建/编辑 CCR 账户
- 将 CCR 账户集成到 AccountsView 中,提供完整管理功能
- 支持账户切换、重置和使用统计
- 在界面中显示账户状态和错误信息

### API 端点

- POST /admin/ccr-accounts - 创建 CCR 账户
- GET /admin/ccr-accounts - 列出所有 CCR 账户
- PUT /admin/ccr-accounts/:id - 更新 CCR 账户
- DELETE /admin/ccr-accounts/:id - 删除 CCR 账户
- PUT /admin/ccr-accounts/:id/toggle - 切换账户启用状态
- PUT /admin/ccr-accounts/:id/toggle-schedulable - 切换可调度状态
- POST /admin/ccr-accounts/:id/reset-usage - 重置每日使用量
- POST /admin/ccr-accounts/:id/reset-status - 重置错误状态

## 技术细节

- CCR 账户使用 'ccr' 作为 accountType 标识符
- 带有 `ccr,` 前缀的请求绕过普通账户池
- 转发到 CCR 后端前清理模型名称内的`ccr,`
- 从流式和非流式响应中捕获使用数据
- 支持缓存令牌跟踪(创建和读取)
2025-09-10 14:21:48 +08:00
shaw
e824858d60 feat: claude账户支持使用统一的客户端标识 2025-09-08 11:35:44 +08:00
shaw
d2f3f6866c feat: Codex账号管理优化与API Key激活机制
 新功能
- 支持通过refreshToken新增Codex账号,创建时立即验证token有效性
- API Key新增首次使用自动激活机制,支持activation模式设置有效期
- 前端账号表单增加token验证功能,确保账号创建成功

🐛 修复
- 修复Codex token刷新失败问题,增加分布式锁防止并发刷新
- 优化token刷新错误处理,提供更详细的错误信息和建议
- 修复OpenAI账号token过期检测和自动刷新逻辑

📝 文档更新
- 更新README中Codex使用说明,改为config.toml配置方式
- 优化Cherry Studio等第三方工具接入文档
- 添加详细的配置示例和账号类型说明

🎨 界面优化
- 改进账号创建表单UI,支持手动和OAuth两种模式
- 优化API Key过期时间编辑弹窗,支持激活操作
- 调整教程页面布局,提升移动端响应式体验

💡 代码改进
- 重构token刷新服务,增强错误处理和重试机制
- 优化代理配置处理,确保OAuth请求正确使用代理
- 改进webhook通知,增加token刷新失败告警
2025-09-06 18:04:06 +08:00
sususu
4cc937a144 feat(Claude Console): 添加Claude Console账号每日配额
1. 额度检查优先级更高:即使不启用限流机制,超额仍会禁用账户
2. 状态会被覆盖:quota_exceeded 会覆盖 rate_limited
3. 两种恢复时间:
  - 限流恢复:分钟级(如60分钟)
  - 额度恢复:天级(第二天重置)
4. 独立控制:
  - rateLimitDuration = 0:只管理额度,忽略429
  - rateLimitDuration > 0:同时管理限流和额度
2025-09-05 14:58:59 +08:00
sczheng189
39c49fe2bb feat: 添加统一Claude Code User-Agent支持及缓存管理功能
### **核心功能**
*   **自动更新**:自动获取并使用最新的 “Claude Code” 客户端版本号。
*   **智能缓存**:获取到的版本会缓存25小时,然后自动刷新。
*   **独立开关**:每个账户都可以单独设置是否启用此功能。

### **前端界面**
*   **新增开关**:账户设置里增加了“使用统一版本”的选项。
*   **信息显示**:能直接看到当前正在使用的版本号。
*   **手动刷新**:提供“清除缓存”按钮,可手动强制更新。

### **后端技术**
*   **核心方法**:开发了新的后台功能,用于捕获、比较和管理版本号。
*   **管理接口**:为管理员提供了新的API (`/admin/claude-code-version`),方便查询和刷新。
2025-09-03 20:14:58 +08:00
sczheng189
9c7ec8758d resolve: 解决与upstream/dev的合并冲突
- 合并admin.js中的groupIds和autoStopOnWarning参数
- 统一AccountForm.vue中的错误提示文案和平台判断逻辑
- 保留AccountsView.vue中的分组过滤和ungrouped功能
- 确保Azure OpenAI账户创建和更新逻辑完整性

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 20:32:42 +08:00
sczheng189
37e6c14eac feat: 完善账户多分组功能和Azure OpenAI支持
主要功能:
- 实现账户多分组调度功能完整支持
- 修复Azure OpenAI账户优先级显示问题(前端条件判断缺失)
- 修复未分组筛选功能失效(API参数处理)
- 修复Azure OpenAI账户创建错误调用Gemini API的问题
- 完善各平台分组信息支持和使用统计显示
- 统一删除账户时的分组清理逻辑
- 添加前端请求参数处理支持

技术改进:
- 前端支持多平台账户请求构造
- 后端统一groupInfos返回格式
- API客户端完善查询参数处理

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 20:16:20 +08:00
Feng Yue
50b372473c Merge remote-tracking branch 'f3n9/main' into um-5 2025-08-31 23:12:46 +08:00
shaw
e84c6a5555 feat: 实现基于费用的速率限制功能
- 新增 rateLimitCost 字段,支持按费用进行速率限制
- 新增 weeklyOpusCostLimit 字段,支持 Opus 模型周费用限制
- 优化速率限制逻辑,支持费用、请求数、token多维度控制
- 更新前端界面,添加费用限制配置选项
- 增强账户管理功能,支持费用统计和限制
- 改进 Redis 数据模型,支持费用计数器
- 优化价格计算服务,支持更精确的成本核算

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 17:27:37 +08:00
Feng Yue
06f7e3c28f fix azure account editing issue 2025-08-30 18:20:31 +08:00
Feng Yue
90574bc4e6 fix azure account editing issue 2025-08-30 18:16:11 +08:00
Feng Yue
d01bcdbaca fix azure account issue 2025-08-30 17:58:50 +08:00
Feng Yue
76ec2e6afb add new models to supported model list 2025-08-30 17:40:50 +08:00
shaw
e56a49d7ed fix: 修复codex 添加账号缺少oauth步骤 2025-08-24 16:47:45 +08:00
shaw
b426a759a8 feat: 支持后台配置webhook 2025-08-23 20:20:32 +08:00
shaw
74bcb99142 feat: 新增支持Azure OpenAI账户 2025-08-23 10:30:29 +08:00
shaw
d2f0ac37a9 feat: 支持Dark Mode 2025-08-22 22:09:38 +08:00
shaw
4aa562be21 fix: 去除logger自动添加metadata字段 2025-08-20 21:45:48 +08:00
mouyong
54dca0f285 fix(frontend): 修复编辑分组模态框显示问题
WHAT: 修复账户分组管理中编辑分组表单无法显示的问题
WHY: 编辑模态框使用无效的 z-60 类名导致层级冲突,编辑表单被主模态框遮挡
HOW: 将编辑模态框的 z-index 类名从 z-60 改为 z-50,与主模态框同级但利用 DOM 顺序确保正确显示;保持其他样式和功能不变
2025-08-20 21:37:19 +08:00
shaw
812e98355f feat: 实现 OpenAI token 自动刷新功能并优化账户管理界面
主要更改:
1. OpenAI Token 自动刷新
   - 实现 refreshAccessToken 函数,支持 OAuth 2.0 refresh_token grant type
   - 使用 Codex CLI 官方 CLIENT_ID (app_EMoamEEZ73f0CkXaXp7hrann)
   - 支持 SOCKS5 和 HTTP/HTTPS 代理
   - 自动更新 access token、id token 和 refresh token

2. 账户管理界面优化
   - 移除手动刷新 token 按钮(桌面端和移动端)
   - 保留后端自动刷新机制
   - 优化代码结构,删除不再需要的函数和变量

3. 测试和文档
   - 添加 test-openai-refresh.js 测试脚本
   - 创建详细的实现文档

技术细节:
- Token 端点: https://auth.openai.com/oauth/token
- 默认有效期: 1小时
- 加密存储: AES-256-CBC

所有平台现在都支持自动 token 刷新:
 Claude - OAuth 自动刷新
 Gemini - Google OAuth2 自动刷新
 OpenAI - OAuth 自动刷新(新实现)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-15 16:56:44 +08:00
KevinLiao
f1febd320e fix: 去掉Free账号 2025-08-14 16:49:20 +08:00
KevinLiao
0e5f4e03c1 feat: 新增Claude账号订阅类型设置
1. OAuth可自动判断订阅类型,Setup Token请自行选择。无论那种类型都可以自己改
2. 优化调度,Pro账号不再接受opus模型请求的调度
2025-08-14 16:43:58 +08:00
shaw
5428462f55 fix: 修复 OpenAI 账户代理配置保存问题
- 修复 OAuth 方式添加 OpenAI 账户时缺少 priority 字段
- 修复创建 OpenAI 账户时错误检查 proxy.enabled 导致代理未保存
- 添加 OpenAI OAuth token 交换时的 SOCKS5 代理支持
- 添加 OpenAI API 请求转发时的代理支持
- 参考 Claude/Gemini 实现统一代理处理逻辑
2025-08-13 22:44:48 +08:00
Wesley Liddick
ceb1749859 Merge pull request #243 from tanaer/fixed
Fixed: 新增 Claude Console 账户限流机制开关
2025-08-13 17:49:47 +08:00
wt
171d35f33e Fix: Claude Console 账户的限流开关 2025-08-13 10:36:15 +08:00
wt
e338fb0e03 Fix: Claude Console 账户的限流开关 2025-08-13 00:05:03 +08:00
shaw
4ca9674772 feat: 完善多平台账户管理和API Keys页面展示
- 修复OpenAI路由中的gpt-5模型ID处理
- 增强统一调度器的账户选择日志输出
- 优化OAuth流程中的账户类型处理
- 完善API Keys页面的多平台账户信息展示

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-12 17:55:45 +08:00
wt
6dfaf637aa feat: 新增 Claude Console 账户限流机制开关 2025-08-12 15:48:41 +08:00
shaw
f462684f97 feat: 实现OpenAI账户管理和统一调度系统
- 新增 OpenAI 账户管理服务,支持多账户轮询和负载均衡
- 实现统一的 OpenAI API 调度器,智能选择最优账户
- 优化成本计算器,支持更精确的 token 计算
- 更新模型定价数据,包含最新的 OpenAI 模型价格
- 增强 API Key 管理,支持更灵活的配额控制
- 改进管理界面,添加教程视图和账户分组管理
- 优化限流配置组件,提供更直观的用户体验

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 13:58:43 +08:00
千羽
11fc856999 chore: commit all changes 2025-08-10 17:46:31 +09:00
Wesley Liddick
27ca140fc3 Merge pull request #219 from kevinconan/main
fix: 修复Claude Console账号的模型映射功能
2025-08-08 20:39:18 +08:00
KevinLiao
1ff0824a81 fix: 修复prettier格式化 2025-08-08 15:56:32 +08:00