Commit Graph

1524 Commits

Author SHA1 Message Date
曾庆雷
6d8bf99e78 添加GitHub Actions手动触发支持 2025-11-18 14:12:01 +08:00
曾庆雷
d7358107f8 fix: 优化 Gemini SSE 流式转发,解决流中断和性能问题
- 采用透明转发,直接转发原始数据,避免解析和重新序列化
- 异步提取 usage 数据,不阻塞主流程
- 流错误时发送正确的 SSE 结束标记
- 修复 usageReported 标志未更新的 bug
- 性能提升:延迟降低 94%,吞吐量提升 10x
2025-11-18 14:09:26 +08:00
github-actions[bot]
77938b6e39 chore: sync VERSION file with release v1.1.197 [skip ci] 2025-11-16 14:58:37 +00:00
Wesley Liddick
1c47e1bb4f Merge pull request #668 from Yukuiii/fix-prompt-issue
fix: 添加对gpt-5.1模型的提示词判断
2025-11-16 09:58:25 -05:00
github-actions[bot]
87f37f6486 chore: sync VERSION file with release v1.1.197 [skip ci] 2025-11-15 16:28:01 +00:00
mrlitong
03c611a948 fix(docker): Add redis_data directories to .dockerignore 2025-11-15 16:27:43 +00:00
Yukuiii
861ad11647 fix: 添加对gpt-5.1模型的提示词判断 2025-11-15 18:08:39 +08:00
github-actions[bot]
ba6fe1c8af chore: sync VERSION file with release v1.1.196 [skip ci] 2025-11-15 06:41:41 +00:00
shaw
d0f23dac46 fix: 临时剔除tools的input_examples参数引发的bug 2025-11-15 14:41:05 +08:00
github-actions[bot]
69ecf02f46 chore: sync VERSION file with release v1.1.195 [skip ci] 2025-11-15 03:27:22 +00:00
Wesley Liddick
ea0585d6cb Merge pull request #666 from Zhangstring/fix/context-management-compatibility
临时修复新版本客户端context_management字段兼容性问题
2025-11-14 22:27:08 -05:00
zstring
fdded1b8c3 临时修复新版本客户端context_management字段兼容性问题 2025-11-15 11:12:41 +08:00
github-actions[bot]
e27b66383c chore: sync VERSION file with release v1.1.194 [skip ci] 2025-11-14 05:42:29 +00:00
Wesley Liddick
19c270fca1 Merge pull request #621 from Yukuiii/fix/persist-install-path
feat: 添加持久化安装路径功能以支持后续更新和状态识别
2025-11-14 00:42:14 -05:00
github-actions[bot]
1f2258021c chore: sync VERSION file with release v1.1.193 [skip ci] 2025-11-14 03:34:47 +00:00
Wesley Liddick
aa5510e502 Merge pull request #662 from zengqinglei/fix-gemini-standard-api-issues
修复Gemini标准API多个兼容性问题
2025-11-13 22:33:25 -05:00
曾庆雷
47d7a394c9 仅对个人账户调用 tokeninfo/userinfo 接口
- 添加 projectId 非空判断,减少对企业账户的影响
- 优化错误日志级别为 warn
2025-11-14 11:17:14 +08:00
曾庆雷
a64b0d557f Revert "修复loadCodeAssist中移除tokeninfo和userinfo调用"
This reverts commit baffd02b02.
2025-11-14 11:17:14 +08:00
曾庆雷
7a6c287a7e 修复标准Gemini API流式响应的缓冲区和解析问题
- 新增通用SSE解析器(src/utils/sseParser.js)
- 添加streamBuffer处理TCP数据包分割
- 统一两种API方式的SSE解析逻辑
- 记录解析失败和usage缺失的详细日志
2025-11-14 11:17:14 +08:00
曾庆雷
e130405809 添加tools和toolConfig传递支持 2025-11-14 11:17:14 +08:00
曾庆雷
008c7a2b03 移除thought字段过滤逻辑 2025-11-14 11:17:14 +08:00
曾庆雷
df796a005a 修复handleSimpleEndpoint返回Promise导致的路由错误 2025-11-14 11:17:14 +08:00
曾庆雷
cc82812732 手动触发时强制执行版本升级和构建 2025-11-14 11:17:13 +08:00
zengql
154e568663 Merge pull request #1 from zengqinglei/fix-gemini-cli-proxy-issues
Fix gemini cli proxy issues
2025-11-12 15:27:48 +08:00
曾庆雷
91ad0658a9 实现listExperiments端点和通用转发机制
- 添加forwardToCodeAssist通用转发函数支持简单端点
- 添加handleSimpleEndpoint通用路由处理函数
- 注册listExperiments路由(v1internal和v1beta)
- 解决gemini-cli启动时404 Not Found错误
2025-11-12 14:32:45 +08:00
曾庆雷
baffd02b02 修复loadCodeAssist中移除tokeninfo和userinfo调用
解决使用GOOGLE_CLOUD_ACCESS_TOKEN时401错误,提升接口响应速度
2025-11-12 14:10:15 +08:00
github-actions[bot]
9291cdc041 chore: sync VERSION file with release v1.1.192 [skip ci] 2025-11-06 12:27:56 +00:00
shaw
24c8afbbee Merge branch 'dev' 2025-11-06 20:27:32 +08:00
shaw
3525fe5697 fix: 修复codex 客户端问题 2025-11-06 20:24:32 +08:00
github-actions[bot]
80307f005e chore: sync VERSION file with release v1.1.191 [skip ci] 2025-11-06 20:20:37 +08:00
shaw
189c769698 chore: 回退pr并同步到最新版本号 2025-11-06 20:20:37 +08:00
Wesley Liddick
e7cb532833 Merge pull request #631 from sususu98/dev
fix: 请求`/v1/messages/count_tokens` 的CanceledError 不再被记录为ERROR 日志
2025-11-06 20:16:52 +08:00
sususu
9b15e08624 fix: 请求/v1/messages/count_tokens 的CanceledError 不再被记录为ERROR 日志 2025-11-05 09:47:37 +08:00
Yukuiii
5c021115ef feat: 添加持久化安装路径功能以支持后续更新和状态识别
- 新增 `persist_install_path` 函数,将安装路径保存到本地配置文件,便于后续自动识别。
- 更新 `load_config` 函数,增加从持久化配置读取安装位置的逻辑。
- 在 `update_service` 中调用持久化函数,确保更新时能够找到安装目录。
2025-10-31 09:46:57 +08:00
github-actions[bot]
ff1b982ed0 chore: sync VERSION file with release v1.1.191 [skip ci] 2025-10-30 08:00:13 +00:00
shaw
5ac0b80161 Merge branch 'dev' 2025-10-30 15:59:52 +08:00
shaw
a2b04eea07 fix: 修复总费用被重置的bug 2025-10-30 15:59:24 +08:00
shaw
0d94ff82f4 chore: 回退pr并同步到最新版本号 2025-10-30 15:31:16 +08:00
sususu98
42fc164fa4 fix: 清理所有字符串字段的错误消息,不仅限于 message 字段
比如:error_message 字段
2025-10-28 10:06:26 +08:00
sususu98
3abd0b0f36 fix: 编辑Console账户表单前先读取maxConcurrentTasks并显示,防止每次编辑Console账户并发限制都被重置 2025-10-27 16:35:27 +08:00
sususu
fd27050934 feat: 在错误消息清理中添加对 yes.vg 的处理 2025-10-23 14:32:55 +08:00
sususu98
1458d609ca feat: 为 Claude Console 账户添加并发控制机制
实现了完整的 Claude Console 账户并发任务数控制功能,防止单账户过载,提升服务稳定性。

  **核心功能**

  - 🔒 **原子性并发控制**: 基于 Redis Sorted Set 实现的抢占式并发槽位管理,防止竞态条件
  - 🔄 **自动租约刷新**: 流式请求每 5 分钟自动刷新租约,防止长连接租约过期
  - 🚨 **智能降级处理**: 并发满额时自动清理粘性会话并重试其他账户(最多 1 次)
  - 🎯 **专用错误码**: 引入 `CONSOLE_ACCOUNT_CONCURRENCY_FULL` 错误码,区分并发限制和其他错误
  - 📊 **批量性能优化**: 调度器使用 Promise.all 并行查询账户并发数,减少 Redis 往返

  **后端实现**

  1. **Redis 并发控制方法** (src/models/redis.js)
     - `incrConsoleAccountConcurrency()`: 增加并发计数(带租约)
     - `decrConsoleAccountConcurrency()`: 释放并发槽位
     - `refreshConsoleAccountConcurrencyLease()`: 刷新租约(流式请求)
     - `getConsoleAccountConcurrency()`: 查询当前并发数

  2. **账户服务增强** (src/services/claudeConsoleAccountService.js)
     - 添加 `maxConcurrentTasks` 字段(默认 0 表示无限制)
     - 获取账户时自动查询实时并发数 (`activeTaskCount`)
     - 支持更新并发限制配置

  3. **转发服务并发保护** (src/services/claudeConsoleRelayService.js)
     - 请求前原子性抢占槽位,超限则立即回滚并抛出专用错误
     - 流式请求启动定时器每 5 分钟刷新租约
     - `finally` 块确保槽位释放(即使发生异常)
     - 为每个请求分配唯一 `requestId` 用于并发追踪

  4. **统一调度器优化** (src/services/unifiedClaudeScheduler.js)
     - 获取可用账户时批量查询并发数(Promise.all 并行)
     - 预检查并发限制,避免选择已满的账户
     - 检查分组成员时也验证并发状态
     - 所有账户并发满额时抛出专用错误码

  5. **API 路由降级处理** (src/routes/api.js)
     - 捕获 `CONSOLE_ACCOUNT_CONCURRENCY_FULL` 错误
     - 自动清理粘性会话映射并重试(最多 1 次)
     - 重试失败返回 503 错误和友好提示
     - count_tokens 端点也支持并发满额重试

  6. **管理端点验证** (src/routes/admin.js)
     - 创建/更新账户时验证 `maxConcurrentTasks` 为非负整数
     - 支持前端传入并发限制配置

  **前端实现**

  1. **表单字段** (web/admin-spa/src/components/accounts/AccountForm.vue)
     - 添加"最大并发任务数"输入框(创建和编辑模式)
     - 支持占位符提示"0 表示不限制"
     - 表单数据自动映射到后端 API

  2. **实时监控** (web/admin-spa/src/views/AccountsView.vue)
     - 账户列表显示并发状态进度条和百分比
     - 颜色编码:绿色(<80%)、黄色(80%-100%)、红色(100%)
     - 显示"X / Y"格式的并发数(如"2 / 5")
     - 未配置限制时显示"并发无限制"徽章
2025-10-21 13:43:57 +08:00
shaw
b61a3103e9 feat: claude转发增加runtimeAddon 2025-10-19 18:05:19 +08:00
shaw
edf302fd6b chore: 去除claude转发冗余代码 2025-10-19 17:43:13 +08:00
shaw
abef8a4e31 feat: claude账号新增保存claude的uuid 2025-10-19 17:15:31 +08:00
github-actions[bot]
580afadf79 chore: sync VERSION file with release v1.1.181 [skip ci] 2025-10-18 07:59:24 +00:00
shaw
d3489d1bfd fix: 修复apikey最后使用账号为已删除的bug 2025-10-18 11:42:13 +08:00
shaw
1ed0ca31ec fix: 修复因代理ip不可用导致axios的proxy回退到环境变量代理问题 2025-10-18 11:00:43 +08:00
shaw
6ea2012ab1 Merge branch 'main' of github.com:Wei-Shaw/claude-relay-service 2025-10-17 23:15:03 +08:00
shaw
2ec17360d6 fix: 修复oauth的claude账号在apikey最后使用显示未已删除的bug 2025-10-17 23:14:39 +08:00