mouyong
|
ae9f6158d1
|
feat: gemini 流式响应
|
2025-08-04 22:37:06 +08:00 |
|
mouyong
|
f2312893d4
|
feat: gemini 流式响应
|
2025-08-04 22:36:36 +08:00 |
|
mouyong
|
54ad8452c3
|
feat: gemini 流式响应
|
2025-08-04 20:34:17 +08:00 |
|
mouyong
|
2eee902988
|
feat: 处理 openai 格式请求
|
2025-08-04 18:20:39 +08:00 |
|
mouyong
|
327d14bd5e
|
Merge branch 'main' of github.com:Wei-Shaw/claude-relay-service
* 'main' of github.com:Wei-Shaw/claude-relay-service:
fix: 修复 Gemini 统计功能的多个问题
fix: 修复API Keys页面时间窗口进度条和Token数值显示问题
chore: 清理 dist 目录
|
2025-08-04 17:42:08 +08:00 |
|
mouyong
|
c8f2abfedc
|
feat: 处理 openai 格式请求
|
2025-08-04 17:40:57 +08:00 |
|
shaw
|
2ad5d02468
|
fix: 修复 Gemini 统计功能的多个问题
主要修复:
1. geminiRoutes.js 主端点现在使用统一调度器(unifiedGeminiScheduler)
- 支持模型过滤
- 支持账户调度控制
- 与 Claude 保持一致的调度逻辑
2. 修复 Gemini 账户统计数据获取
- admin 路由现在正确获取 Gemini 账户的使用统计
- 使用 redis.getAccountUsageStats 获取真实数据
- 与 Claude 账户统计逻辑保持一致
这些修复确保了 Gemini 服务的数据统计功能正常工作,包括:
- 请求次数统计
- Token 使用量统计
- 模型级别的统计数据
- API Keys 页面和账户管理页面的数据显示
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 17:35:15 +08:00 |
|
shaw
|
ef4f7483d3
|
feat: 完善 Gemini 功能与 Claude 保持一致
- 添加 Gemini 账户的 schedulable 字段和调度开关 API
- 实现 Gemini 调度器的模型过滤功能
- 完善 Gemini 数据统计,记录 token 使用量
- 修复 Gemini 流式响应的 SSE 解析和 AbortController 支持
- 在教程页面和 README 中添加 Gemini CLI 环境变量说明
- 修复前端 Gemini 账户调度开关限制
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 16:53:11 +08:00 |
|
mouyong
|
0e5a49c86f
|
feat: 处理sse传输
|
2025-08-04 15:46:16 +08:00 |
|
千羽
|
9625e7f490
|
Merge branch 'Wei-Shaw:main' into main
|
2025-08-04 14:47:32 +09:00 |
|
千羽
|
33837c23aa
|
feat: 增强 Gemini 服务支持并添加统一调度器
- 新增 unifiedGeminiScheduler.js 统一账户调度服务
- 增强 geminiRoutes.js 支持更多 Gemini API 端点
- 优化 geminiAccountService.js 账户管理和 token 刷新机制
- 添加对 v1internal 端点的完整支持(loadCodeAssist、onboardUser、countTokens、generateContent、streamGenerateContent)
- 改进错误处理和流式响应管理
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 14:47:03 +09:00 |
|
shaw
|
fce6d8e1ac
|
fix: 修复仪表盘和API统计页面的多个问题
- 修复仪表盘天粒度下7天/30天快捷选择无数据的问题
- 修复API Keys页面统计按钮链接路由错误(admin -> admin-next)
- 改进统计页面限制展示,使用3个进度条更直观显示使用情况
- 后端API响应增加当前使用量数据(currentWindowRequests/Tokens/DailyCost)
- 修复教程页面window.location.origin为空的兼容性问题
- 无限制时使用无穷符号(∞)展示,提升用户体验
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 11:58:26 +08:00 |
|
shaw
|
4e3c826b6c
|
fix: 修复API Keys页面时间窗口进度条和Token数值显示问题
- 修复时间窗口限制的请求次数和Token使用量进度条不更新的问题
- 在apiKeyService.getAllApiKeys()中添加获取当前窗口统计数据的逻辑
- 从Redis读取rate_limit:requests和rate_limit:tokens键的值
- 优化Token数值展示,添加K/M单位格式化
- UsageDetailModal组件中5处Token数值改用formatTokenCount
- ApiKeysView模型统计中5处Token数值改用formatTokenCount
- 统一使用K/M单位简化大数字显示
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 10:55:17 +08:00 |
|
千羽
|
a80b36896d
|
feat: 更新 Gemini OAuth 流程支持新的授权方式
- 使用 codeassist.google.com 作为新的回调地址
- 实现 PKCE 认证流程增强安全性
- 更新前端授权流程指引
- 简化授权码输入流程
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-04 00:16:29 +08:00 |
|
shaw
|
a5c7eeaf84
|
fix: 修复专属账号下拉框,仅显示dedicated类型账号
- 修改CreateApiKeyModal和EditApiKeyModal的过滤逻辑
- 专属账号下拉框只显示accountType='dedicated'的账号
- 移除accountType='group'的账号,这些账号通过分组调度
- 更新标签文字为'专属账号'以更准确描述
|
2025-08-03 22:34:44 +08:00 |
|
shaw
|
9c9afe1528
|
feat: 实现账户分组管理功能和优化响应式设计
主要更新:
- 实现账户分组管理功能,支持创建、编辑、删除分组
- 支持将账户添加到分组进行统一调度
- 优化 API Keys 页面响应式设计,解决操作栏被隐藏的问题
- 优化账户管理页面布局,合并平台/类型列,改进操作按钮布局
- 修复代理信息显示溢出问题
- 改进表格列宽分配,充分利用屏幕空间
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-03 22:34:43 +08:00 |
|
shaw
|
329904ba72
|
fix: 修复仪表盘页面时间筛选功能
- 修复模型使用分布和详细统计数据不响应时间筛选的问题
- 后端/admin/model-stats端点添加startDate和endDate参数支持
- 支持自定义时间范围的模型统计数据聚合
- 前端loadModelStats函数添加时间范围参数传递
- 修复小时粒度和自定义时间筛选不生效的问题
现在时间筛选可以正确控制所有数据展示:
- Token使用趋势图 ✓
- 模型使用分布 ✓
- 详细统计数据 ✓
- API Keys使用趋势 ✓
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-03 22:34:42 +08:00 |
|
shaw
|
ecfc1050d3
|
feat: 优化移动端响应式设计
- 优化所有页面的移动端适配(手机、平板、PC)
- 修复AccountsView移动端状态显示和按钮功能问题
- 修复ApiKeysView移动端详情展开显示问题
- 移除ApiKeysView不必要的查看按钮
- 修复Dashboard页面PC版时间筛选按钮布局
- 改进所有组件的响应式设计
- 删除dist目录避免构建文件冲突
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-08-03 22:34:41 +08:00 |
|
shaw
|
8e89311dac
|
feat: 使用API响应头中的准确时间戳修正会话窗口和限流时间
- 从429响应中提取 anthropic-ratelimit-unified-reset 响应头
- 使用准确的重置时间戳设置限流结束时间和会话窗口
- 会话窗口开始时间 = 重置时间戳 - 5小时
- 兼容旧逻辑:无响应头时使用预估的会话窗口时间
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-31 16:29:44 +08:00 |
|
KevinLiao
|
b7f4c2a560
|
Merge branch 'main' of https://github.com/Wei-Shaw/claude-relay-service
|
2025-07-31 13:37:23 +08:00 |
|
KevinLiao
|
0e84a979e9
|
fix: 继续修正会话窗口的计算问题,这回应该正确了
|
2025-07-31 13:36:24 +08:00 |
|
shaw
|
7ebcdbe72d
|
fix: 优化限流机制,使限流时间与Claude会话窗口保持一致
- 限流结束时间现在基于5小时会话窗口而非硬编码1小时
- 新增 rateLimitEndAt 字段追踪限流结束时间
- 自动解除限流基于会话窗口结束时间
- 保持向后兼容,支持旧数据格式
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-31 13:00:19 +08:00 |
|
KevinLiao
|
d93ce8713d
|
fix: 修复session窗口计算问题
|
2025-07-31 09:15:33 +08:00 |
|
KevinLiao
|
3c797a85e0
|
feat: Claude Console账号增强,升级模型支持列表为模型映射表!
|
2025-07-30 23:13:59 +08:00 |
|
KevinLiao
|
6216433b0b
|
Merge branch 'main' of https://github.com/Wei-Shaw/claude-relay-service
# Conflicts:
# web/admin-spa/dist/assets/LoginView-BJ0LLv16.js
# web/admin-spa/dist/assets/LogoTitle-DHj-MjwS.js
# web/admin-spa/dist/assets/MainLayout-CLydIeqJ.js
# web/admin-spa/dist/assets/SettingsView-DicW12bL.js
# web/admin-spa/dist/assets/index-HYE9xPuR.js
# web/admin-spa/dist/index.html
# web/admin-spa/src/components/apikeys/CreateApiKeyModal.vue
# web/admin-spa/src/components/apikeys/EditApiKeyModal.vue
# web/admin-spa/src/views/ApiKeysView.vue
|
2025-07-30 20:41:10 +08:00 |
|
KevinLiao
|
b86adcd6d2
|
fix: 1.修复ClaudeConsole账号设置为专属绑定的功能
2. 修复Claude 官方账号会话窗口计算错误的问题
|
2025-07-30 20:20:12 +08:00 |
|
Gemini Wen
|
ef6de13084
|
fix: 修复仪表盘统计中遗漏 Claude Console 账户的问题
将 Claude Console 账户统计信息纳入系统概览,确保仪表盘显示完整的账户状态和健康检查。
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 17:22:40 +08:00 |
|
shaw
|
1ca753c79a
|
fix: 修复API Keys使用趋势图费用计算不准确的问题
- 使用模型级别的详细统计数据计算费用,而非固定模型
- 按实际使用的模型(sonnet/opus/haiku等)分别计算价格
- 累加各模型费用得到准确的总费用
- 降级方案改用sonnet模型(中等价格)而非haiku(最低价格)
问题原因:之前使用固定的haiku模型计算所有token的费用,导致价格偏低
解决方案:获取模型级别的使用数据,按实际模型价格计算
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 15:37:59 +08:00 |
|
shaw
|
321be986a6
|
feat: 优化仪表盘数据展示和用户体验
- 优化实时TPM显示格式,添加智能单位(K/M)
- 折线图tooltip添加token数单位格式化
- API Keys使用趋势图增加USD金额计算和显示
- 实现鼠标悬浮时数据倒序展示,前3名添加🥇🥈🥉标识
- 后端API添加费用计算支持
- 删除测试脚本,保持代码整洁
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 15:37:58 +08:00 |
|
shaw
|
21461863af
|
fix: 修复实时RPM/TPM指标显示为0的问题
- 添加调试日志以追踪数据读取过程
- 修复getRealtimeSystemMetrics中的数据验证逻辑
- 添加测试脚本用于验证时间戳匹配问题
- 改进错误处理和日志记录
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 15:37:58 +08:00 |
|
shaw
|
a6ab6b7abe
|
feat: 实现基于滑动窗口的实时RPM/TPM统计
- 添加系统级分钟统计,支持1-60分钟可配置时间窗口
- 新增 getRealtimeSystemMetrics 方法计算滑动窗口内的平均值
- 前端显示实时RPM/TPM,标注时间窗口和数据来源
- 修复 EditApiKeyModal 中模型限制和客户端限制复选框状态错误
- 优化性能:使用Pipeline批量操作替代Promise.all
- TPM包含所有token类型:input、output、cache_creation、cache_read
- 添加降级方案:实时数据不可用时返回历史平均值
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 15:37:57 +08:00 |
|
shaw
|
9a346a22d0
|
Merge branch 'dev' into main
合并dev分支的时区修复和其他改进:
- 修复仪表板图表时区处理问题
- 修复自定义时间选择器的UTC转换
- 删除dist构建产物目录
|
2025-07-30 12:50:20 +08:00 |
|
Alfonsxh
|
7cdb75bdaa
|
fix: 优化请求日志记录格式
- 将请求开始日志从 logger.request 改为 logger.info
- 调整请求完成日志的格式,使用更结构化的参数传递
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 11:35:22 +08:00 |
|
Alfonsxh
|
fc5c24e1ca
|
feat: 增强 API Key 标签选择功能
- 添加获取已存在标签的 API 端点 /admin/api-keys/tags
- 重构标签输入 UI,从下拉菜单改为平铺展示
- 支持点击选择已有标签,避免重复创建
- 增加弹框宽度 (max-w-4xl),改善布局和用户体验
- 统一创建和编辑 API Key 的标签管理体验
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 11:24:27 +08:00 |
|
shaw
|
a265ebf335
|
fix(admin-spa): 修复仪表板图表时区处理问题
- 修复前端时间计算逻辑,正确处理不同时区用户的时间范围选择
- 添加系统时区信息到dashboard API响应
- 修改getSystemTimezoneDay函数,确保正确处理系统时区的日期转换
- 修复"昨天"和"前天"时间范围计算,基于系统时区而非用户时区
- 添加后端调试日志以便追踪时间转换问题
问题描述:
- 选择"昨天"时显示29号7:00到30号6:00(错误)
- 选择"近24小时"时显示29号17:00到30号17:00(错误)
修复后:
- "昨天"正确显示完整一天(如29号0:00到29号23:59)
- "近24小时"正确显示从当前时间往前24小时
- 支持所有时区的用户,不再硬编码UTC+8偏移
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-30 10:52:26 +08:00 |
|
shaw
|
43dce7db4e
|
合并 main 分支到 dev 分支
|
2025-07-30 10:18:35 +08:00 |
|
shaw
|
d2ac3961e8
|
Merge remote-tracking branch 'origin/main' into main
|
2025-07-30 10:17:25 +08:00 |
|
shaw
|
4c64e6df4b
|
fix(timezone): 修复数据写入时的时区错误(关键修复)
- 修复 redis.js 中所有时区相关的日期获取方法
- 使用 getUTC* 方法替代 get* 方法获取正确的时区日期
- 影响:incrementTokenUsage, incrementAccountUsage, incrementDailyCost 等
- 修复 admin.js 中查询数据时的日期键生成
- 确保所有 Redis 键格式一致:
- 日期:YYYY-MM-DD
- 月份:YYYY-MM
- 小时:YYYY-MM-DD:HH
- 添加服务端时间标签,避免前端时区转换问题
这是核心修复,确保数据从源头就是正确的。
|
2025-07-30 10:07:25 +08:00 |
|
shaw
|
5503004b66
|
fix(admin): 修复时区转换和时间显示格式问题
- 修复小时粒度下时间显示为完整日期的问题
- 修复时区转换逻辑,使用正确的UTC偏移计算
- 统一时间标签格式:小时粒度显示MM/DD HH:00,天粒度显示MM/DD
- 修复图表时间显示比实际时间快7小时的问题
|
2025-07-30 09:42:09 +08:00 |
|
KevinLiao
|
34dca961ef
|
fix: 1. 修复调度优先级以及手动禁止调度逻辑的问题
2. 优化列表优先级显示
|
2025-07-30 09:30:11 +08:00 |
|
shaw
|
61b1a0ec32
|
fix(admin-spa): 修复时区问题导致的图表时间显示不一致和今日统计错误
|
2025-07-30 09:18:55 +08:00 |
|
KevinLiao
|
89f9f48576
|
fix: 完成调度优先级逻辑的处理
|
2025-07-30 08:56:42 +08:00 |
|
KevinLiao
|
27efca3afb
|
Merge branch 'main' of https://github.com/Wei-Shaw/claude-relay-service
|
2025-07-30 08:22:05 +08:00 |
|
KevinLiao
|
fddd5ee3e9
|
feat: 新增标准Claude Console API账号支持
|
2025-07-30 08:19:44 +08:00 |
|
shaw
|
25094fe5e7
|
feat(pricing): 添加模型价格文件本地fallback机制
|
2025-07-29 22:58:44 +08:00 |
|
shaw
|
03a5300b78
|
feat(admin-spa): 添加 API Key 标签管理功能
基于 PR #114 的功能需求,为新版 admin-spa 实现完整的标签系统:
后端改进:
- apiKeyService 支持标签的创建、查询和更新
- admin 路由添加标签验证和处理逻辑
- 标签以 JSON 数组形式存储在 Redis 中
前端功能:
- API Key 列表增加标签列,显示彩色标签徽章
- 添加标签筛选器,支持按标签过滤 API Keys
- 创建和编辑 API Key 时可添加/删除标签
- 标签输入支持 Enter 键快速添加
- 自动收集并排序所有可用标签
界面优化:
- 使用蓝色圆角标签样式,视觉清晰
- 无标签时显示"无标签"提示
- 标签管理操作流畅,支持即时添加删除
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-29 16:14:16 +08:00 |
|
shaw
|
414856f152
|
feat: 全新的Vue3管理后台(admin-spa)和路由重构
🎨 新增功能:
- 使用Vue3 + Vite构建的全新管理后台界面
- 支持Tab切换的API统计页面(统计查询/使用教程)
- 优雅的胶囊式Tab切换设计
- 同步了PR #106的会话窗口管理功能
- 完整的响应式设计和骨架屏加载状态
🔧 路由调整:
- 新版管理后台部署在 /admin-next/ 路径
- 将根路径 / 重定向到 /admin-next/api-stats
- 将 /web 页面路由重定向到新版,保留 /web/auth/* 认证路由
- 将 /apiStats 页面路由重定向到新版,保留API端点
🗑️ 清理工作:
- 删除旧版 web/admin/ 静态文件
- 删除旧版 web/apiStats/ 静态文件
- 清理相关的文件服务代码
🐛 修复问题:
- 修复重定向循环问题
- 修复环境变量配置
- 修复路由404错误
- 优化构建配置
🚀 生成方式:使用 Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-07-29 12:40:51 +08:00 |
|
shaw
|
f6948a04f6
|
Merge pull request #106 from kevinconan/main - feat: 账号管理页面,给Claude账号添加了会话窗口管理与显示
|
2025-07-29 11:08:56 +08:00 |
|
KevinLiao
|
718733b78b
|
feat: 增加账号session窗口管理与显示。后续可以据此优化账号轮转逻辑。
scripts目录有相关管理脚本,请自行探索
|
2025-07-28 15:51:38 +08:00 |
|
shaw
|
4913be3b21
|
Merge remote-tracking branch 'origin/main' into dev
|
2025-07-28 09:30:33 +08:00 |
|