shaw
|
ea28222c71
|
feat: 支持账号维度的数据统计
|
2025-09-27 22:55:06 +08:00 |
|
shaw
|
0ba048aced
|
feat: 优化专属账号删除逻辑
|
2025-09-23 15:48:38 +08:00 |
|
shaw
|
ff73375f0a
|
fix: 优化codex错误抛出 增强客户端限制条件
|
2025-09-22 11:56:54 +08:00 |
|
shaw
|
588b181eb9
|
fix: 修复服务账户数量少了response账户
|
2025-09-20 22:03:43 +08:00 |
|
shaw
|
08c2b7a444
|
fix: 修复PR #458中的totalCostLimit功能问题
主要修复:
- 移除重复的totalUsageLimit字段,统一使用totalCostLimit
- 删除auth.js中重复的总费用限制检查逻辑
- 删除admin.js中重复的totalCostLimit验证代码
- 更新所有前端组件,移除totalUsageLimit引用
功能改进:
- 确保totalCostLimit作为永久累计费用限制正常工作
- 与dailyCostLimit(每日重置)功能互补
- 适用于预付费、一次性API Key场景
测试:
- 删除有逻辑错误的test-total-usage-limit.js
- 创建新的test-total-cost-limit.js验证功能正确性
- 所有测试通过,功能正常工作
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-20 17:37:20 +08:00 |
|
itzhan
|
a929ff4242
|
chore: fix prettier formatting
|
2025-09-20 08:27:41 +08:00 |
|
itzhan
|
200149b9ee
|
chore: fix prettier formatting
|
2025-09-19 22:41:46 +08:00 |
|
itzhan
|
ec28b66e7f
|
feat: 给key增加总用量限制
|
2025-09-19 21:57:24 +08:00 |
|
shaw
|
43cfb0f4f3
|
fix: 修复openai账号代理问题
|
2025-09-18 17:39:45 +08:00 |
|
shaw
|
158a9b9a31
|
feat: 优化API Key批量创建和账户限流状态显示
- 添加 bedrockAccountId 和 rateLimitCost 字段到批量创建 API Key 功能
- 格式化 claudeAccountService 中的日志输出
- 改进账户视图中会话进度条样式,限流状态显示红色
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-14 11:59:09 +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
|
5938180583
|
Merge branch 'Wei-Shaw:dev' into dev
|
2025-09-10 14:40:46 +08:00 |
|
Wesley Liddick
|
3c5068866c
|
Revert "合并所有新功能到Wei-Shaw仓库(排除ApiStatsView.vue)"
|
2025-09-10 14:37:52 +08:00 |
|
sususu98
|
c0059c68eb
|
Merge branch 'Wei-Shaw:dev' into dev
|
2025-09-10 14:22:45 +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 |
|
DuanNaiSheQu
|
af3d688e98
|
合并所有新功能到Wei-Shaw仓库(排除ApiStatsView.vue)
✨ 新增功能:
- GPT-5 High推理级别费用追踪和限制
- API Key图标上传功能
- 优化的进度条显示组件
- 暗黑模式UI兼容
- 完整的前后端集成
🔥 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-10 13:38:27 +08:00 |
|
shaw
|
7f8fae70e6
|
fix: azure转发问题修复
|
2025-09-08 17:26:14 +08:00 |
|
Wesley Liddick
|
5c8136ddd4
|
Merge branch 'dev' into main
|
2025-09-08 16:14:54 +08:00 |
|
Edric Li
|
3aa7c89e25
|
feat: 完全移除 API Key 图标功能
彻底删除 API Key 图标功能的所有相关代码:
前端改动:
- 删除 IconPicker.vue 组件文件
- 移除 ApiKeysView.vue 中的图标显示和 updateApiKeyIcon 方法
- 清理 CreateApiKeyModal.vue 中的图标选择器
- 清理 EditApiKeyModal.vue 中的图标选择器
- 移除所有 IconPicker 组件的引用
后端改动:
- 从 apiKeyService.js 中移除 icon 字段更新支持
- 从 admin.js 路由中移除 icon 参数处理和验证逻辑
- 清理创建和更新 API Key 时的 icon 参数
此改动简化了 API Key 管理界面,移除了不必要的图标功能。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-08 16:06:12 +08:00 |
|
shaw
|
f284d5666f
|
feat: 支持隐藏后台登录入口按钮
|
2025-09-08 12:19:14 +08:00 |
|
shaw
|
e824858d60
|
feat: claude账户支持使用统一的客户端标识
|
2025-09-08 11:35:44 +08:00 |
|
Edric Li
|
92ec3ffc72
|
feat: API Keys页面恢复今日时间选项并设为默认
- 添加"今日"时间筛选选项,使用fa-calendar-day图标
- 将默认时间范围从"最近7天"改为"今日"
- 优化日期处理逻辑,确保今日选项从0点开始
- 调整UsageDetailModal宽度以适应内容显示
- 同步更新所有相关的初始化和重置逻辑
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-07 22:18:34 +08:00 |
|
Edric Li
|
8c9d6381f3
|
feat: API Keys图标系统和UI优化
主要功能增强:
- 实现API Key自定义图标功能,支持图片上传、裁剪和智能压缩
- 新增IconPicker组件,提供内置图标选择和图片上传功能
- 支持固定尺寸裁剪区域,可拖拽定位选择头像区域
- 智能图片压缩:PNG保留透明度,JPEG用于不透明图片
UI/UX改进:
- 优化表格布局:移除账号列,在名称下方显示账号绑定信息
- 调整行高和字体大小,提升信息密度
- 最后使用时间改为相对时间显示,悬浮显示具体时间
- 过期时间编辑改为点击文本触发,带悬浮下划线效果
- 更新默认API Key图标为蓝色渐变设计
- 修复表格悬浮偏移和横向滚动条问题
- 将"TOKEN 数量"改为"Token数"
后端支持:
- apiKeyService增加icon字段持久化
- admin路由增加图标数据处理和验证
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-07 22:18:34 +08:00 |
|
Edric Li
|
4e67e597b0
|
feat: API Keys页面添加全部时间选项和UI改进
- 添加"全部时间"选项到时间范围下拉菜单,可查看所有历史使用数据
- 统一费用显示列,根据选择的时间范围动态显示对应标签
- 支持自定义日期范围查询(最多31天)
- 优化日期选择器高度与其他控件对齐(38px)
- 使用更通用的标签名称(累计费用、总费用等)
- 移除调试console.log语句
后端改进:
- 添加自定义日期范围查询支持
- 日期范围验证和31天限制
- 支持all时间范围查询
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-07 22:18:34 +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
|
c16cfe60ab
|
Merge branch 'dev' of https://github.com/sususu98/claude-relay-service into dev
|
2025-09-05 16:41:25 +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 |
|
iaineng
|
8c158d82fa
|
fix: 添加创建Claude账户时缺失的useUnifiedUserAgent字段处理
- 在 /admin/claude-accounts POST 路由中添加 useUnifiedUserAgent 参数解构
- 将 useUnifiedUserAgent 参数传递给 claudeAccountService.createAccount() 方法
- 保持与前端 AccountForm.vue 和服务层 claudeAccountService.js 的一致性
|
2025-09-05 12:18:33 +08:00 |
|
Wesley Liddick
|
5bed7c932b
|
Merge pull request #333 from sczheng189/dev
feat: 添加统一Claude Code User-Agent支持及缓存管理功能(仅支持Claude账户,不支持api)
|
2025-09-03 21:35:51 +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 |
|
Feng Yue
|
26c57148f7
|
Merge remote-tracking branch 'f3n9/main' into main-um-8
|
2025-09-03 17:43:36 +08:00 |
|
shaw
|
16d397125a
|
feat: 支持apikey名称修改
|
2025-09-03 17:28:13 +08:00 |
|
Feng Yue
|
8ab8cf4a7a
|
fix: user role filtering issue
|
2025-09-03 16:03:43 +08:00 |
|
Feng Yue
|
6aeb05f685
|
Merge remote-tracking branch 'f3n9/main' into main-um-8
|
2025-09-03 15:40:28 +08:00 |
|
Feng Yue
|
1fc35197e1
|
Merge remote-tracking branch 'f3n9/dev' into dev-um-8
|
2025-09-03 09:45:52 +08:00 |
|
shaw
|
81ad098678
|
fix: 修复apikeys页面的一些bug
|
2025-09-02 21:38:54 +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
|
945e0ac198
|
refactor: 精简Azure OpenAI多分组功能实现
- 移除不必要的分组清理逻辑
- 简化组成员端点实现,使用简单的members.push()
- 移除OpenAI账户路由中的groupInfos添加
- 保持最小化修改原则,只保留必要的功能实现
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-02 20:21:24 +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
|
5ee98597e7
|
fix get userlist issue
|
2025-09-02 18:40:16 +08:00 |
|
Feng Yue
|
7a9e4abdd5
|
admin now is able to reassign apikey to admin/user
|
2025-09-02 17:17:06 +08:00 |
|
Feng Yue
|
e973158472
|
show owner's name in apikey management page
|
2025-09-02 16:16:43 +08:00 |
|
shaw
|
86c243e1a4
|
fix: 修复loading动画错误
|
2025-09-02 11:51:38 +08:00 |
|
Feng Yue
|
50b372473c
|
Merge remote-tracking branch 'f3n9/main' into um-5
|
2025-08-31 23:12:46 +08:00 |
|
shaw
|
9a46310238
|
fix: 修复会话窗口使用统计问题
|
2025-08-31 20:14:12 +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
|
b00d0eb9e1
|
use proxy if configured in all Gemini API requests
|
2025-08-31 01:21:25 +08:00 |
|
shaw
|
a54622e3d7
|
Revert "Merge pull request #292 from iRubbish/dev"
This reverts commit 9e8e74ce6b, reversing
changes made to 222f4e44fe.
|
2025-08-30 20:09:41 +08:00 |
|
Wesley Liddick
|
9e8e74ce6b
|
Merge pull request #292 from iRubbish/dev
feat: 新增AD域控用户认证系统
|
2025-08-28 08:43:21 +08:00 |
|