Commit Graph

259 Commits

Author SHA1 Message Date
Edric Li
8f43b9367b feat: 优化Excel导出功能,专注用量数据统计
- 简化导出内容,仅包含用量相关数据
- 保留API Key名称和所有者信息
- 导出详细的分模型用量统计:
  * 今日各模型请求数、费用、输入/输出/总Token
  * 累计各模型请求数、费用、输入/输出/总Token
  * 根据时间筛选条件导出对应周期的模型统计
- 文件名包含时间筛选条件,便于识别数据范围
- 动态设置列宽,优化Excel显示效果
- 移除冗余的配置信息,专注核心用量数据

🤖 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
8dd58900d6 feat: 优化API Keys表格显示和交互体验
- 添加可切换的复选框列,默认隐藏减少视觉干扰
- 复选框列隐藏时不占用宽度,优化表格布局
- 移除名称列的钥匙图标,使界面更简洁
- 数字列(请求数、费用、Token数量)右对齐,符合阅读习惯
- 新增Token数量列,支持K/M单位格式化显示
- 将使用统计拆分为独立的请求数和费用列
- 降低表格行高,提高信息密度
- 调整列顺序,将账号列移至名称列后
- 修复表格悬浮时出现额外横向滚动条的问题

🤖 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
Edric Li
3e6edae198 Merge remote-tracking branch 'upstream/main' 2025-09-06 19:09:59 +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
Edric Li
d7c80b69e8 feat: 移除API Key账号绑定的专属类型限制
- 允许所有账号类型被API Key绑定,不再限制必须是dedicated类型
- 移除AccountSelector组件中的accountType === 'dedicated'过滤条件
- 保持原有专属账号的显示文本不变,确保界面一致性
- 维持原有调度策略:绑定账号后只使用该账号,不回退到共享池

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 15:55:13 +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
Wesley Liddick
bdd17a85e9 Merge pull request #342 from sususu98/dev
feat(admin-spa): 在API视图中添加每日费用和总费用的排序,并默认按照每日费用排序
2025-09-04 14:17:32 +08:00
sususu
9d94475d3f feat(admin-spa): 在API视图中添加每日费用和总费用的排序,并默认按照每日费用排序 2025-09-04 14:15:21 +08:00
sczheng189
b2e7d686fe Fix:前端显示临时异常状态 2025-09-04 14:08:55 +08:00
shaw
0cc8714c3c docs: 增加codex额外参数配置说明 2025-09-04 11:03:20 +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
3e6b7c729f fix: prettier issue 2025-09-03 16:11:57 +08:00
Feng Yue
eba52a6e88 fix: improve frontend parameter handling for user role filtering
- Only send parameters with actual values to avoid undefined values in API calls
- Ensures 'All Roles' filter works correctly by not sending role parameter
- Works together with backend filtering fix from previous commit

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-03 16:10:26 +08:00
Feng Yue
6aeb05f685 Merge remote-tracking branch 'f3n9/main' into main-um-8 2025-09-03 15:40:28 +08:00
Wesley Liddick
2c0ffd07d0 Merge pull request #322 from f3n9/dev-um-8
用户API Key管理相关优化
2025-09-03 15:24:00 +08:00
shaw
941cfacea9 fix: 优化多key查询费用错误问题 2025-09-03 10:29:12 +08:00
Feng Yue
1fc35197e1 Merge remote-tracking branch 'f3n9/dev' into dev-um-8 2025-09-03 09:45:52 +08:00
shaw
2e6feeb1c1 fix: 优化多key查询卡片 2025-09-03 09:45:13 +08:00
shaw
da0ffa07ec fix: 修复apikeys聚合查询统计问题 2025-09-02 23:54:37 +08:00
shaw
886ec35edc feat: api-stats页面支持多key查询 2025-09-02 23:18:31 +08:00
Feng Yue
b0990e7169 fix: respect user delete api key config 2025-09-02 22:26:32 +08:00
Feng Yue
3860f7d9b3 update default limit of apikey number per user to one and disallow key deletion by default 2025-09-02 21:42:48 +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
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
4627475b7c filter apikeys by either key name or username 2025-09-02 19:40:45 +08:00
Feng Yue
5ee98597e7 fix get userlist issue 2025-09-02 18:40:16 +08:00
Wesley Liddick
1165427df0 Merge pull request #315 from zephyrcicd/dev
feat: 支持自定义API前缀配置
2025-09-02 18:19:31 +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
1a9746c84d feat: LDAP适配深色模式 2025-09-02 14:43:30 +08:00
Zephyr
aa04487c79 Merge branch 'Wei-Shaw:dev' into dev 2025-09-02 14:00:07 +08:00
Zephyr
3f570d5fc2 fix: 修复TutorialView.vue的代码格式问题
- 应用Prettier格式化规范
- 确保代码符合项目的格式要求
2025-09-02 13:59:15 +08:00
shaw
86c243e1a4 fix: 修复loading动画错误 2025-09-02 11:51:38 +08:00
Wesley Liddick
5406b5790c Merge pull request #308 from f3n9/um-5
增加用户管理及Azure/Gemini相关改进
2025-09-02 09:33:38 +08:00
Wesley Liddick
d0eef7e98e Merge pull request #314 from sczheng189/feat/5xx-error-circuit-breaker
feat: 改进5xx错误熔断机制和重置状态功能
2025-09-02 09:32:08 +08:00
Zephyr
96cf49d3b7 feat: 支持自定义API前缀配置
- 添加 VITE_API_BASE_PREFIX 环境变量支持
- 教程页面优先使用自定义前缀,未配置时使用浏览器访问地址
- 更新 .env.example 添加配置说明
2025-09-01 22:50:17 +08:00
sczheng189
f2c2bdf6d6 feat: 改进5xx错误熔断机制和重置状态功能
## 熔断机制优化
- 将5xx错误阈值从3次提升到10次,减少误触发
- 缩短临时错误恢复时间从60分钟到5分钟
- 支持所有5xx状态码(500-599)的统一处理

## 重置状态功能完善
后端 resetAccountStatus 新增清除:
- tempErrorAt 字段 (temp_error状态)
- sessionWindowStart/sessionWindowEnd 字段
- 5xx_errors Redis计数键

前端优化:
- 重置成功后强制刷新 loadAccounts(true)
- 避免缓存导致的状态显示不一致

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 21:39:39 +08:00
Feng Yue
68603bc046 Merge branch 'dev' into um-5 2025-09-01 12:19:53 +08:00
shaw
5cfa3cc72f feat: 添加精确的账户费用计算和时区支持
- 实现基于模型使用量的精确每日费用计算
- 添加 dateHelper 工具支持时区转换
- 移除未使用的 webhook 配置代码
- 清理环境变量和配置文件中的 webhook 相关设置
- 优化前端费用显示,使用后端精确计算的数据
- 添加 DEBUG_HTTP_TRAFFIC 调试选项支持

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 11:29:16 +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
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
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