Commit graph

23 commits

Author SHA1 Message Date
hex2077
da8ad6cddb feat(forward): 新增通用转发API提供商支持
- 添加 forward-api 提供商类型,支持将请求透明转发到任意API端点
- 实现 ForwardStrategy、ForwardApiService 和适配器,支持流式和非流式响应
- 在转换逻辑中跳过 forward 协议的数据转换以保持透明性
- 更新UI支持:添加提供商配置字段、多语言标签和显示名称
- 扩展提供商状态检查和健康监测配置
- 为转发请求保留原始路径作为端点参数
2026-01-23 18:33:56 +08:00
hex2077
8afe41870d refactor: 优化Claude-》Gemini的转换逻辑,增加tools适配 2026-01-22 22:39:19 +08:00
hex2077
d8ec86918f feat(provider): 添加请求时凭证临近过期自动刷新功能
在多个provider的核心代码中添加凭证过期检查逻辑,当检测到凭证即将过期时自动标记为需要刷新
新增formatLog和formatExpiryLog工具函数统一日志格式
修改provider-pool-manager以支持带优先级的刷新队列
2026-01-22 17:30:31 +08:00
hex2077
ba4ec31f9a fix(provider): 增加provider.needsRefresh重置并调整最大错误次数为10
- 在重置provider健康状态时增加needsRefresh标志重置
- 将MAX_ERROR_COUNT默认值从3调整为10,提高容错性
- 忽略400状态码的错误计数,避免客户端参数问题影响provider健康状态
2026-01-22 12:24:33 +08:00
hex2077
ccd97c1066 feat(provider): 添加refreshCount重置逻辑并优化模型显示
refactor(ui): 将模型列表从指南页移动到仪表盘页
fix(api): 移除健康检查中的abortController信号
style(css): 迁移模型列表样式到仪表盘样式文件
2026-01-21 00:43:35 +08:00
hex2077
fe131b33d2 fix(provider): 优化节点刷新逻辑
- 修改节点刷新逻辑,当健康节点少于5个时立即刷新
- 移除刷新时的随机延迟以避免并发问题
- 更新Claude Kiro版本号至0.8.140
- 在初始化API服务时添加isReady参数控制预热逻辑
- 在modal.js中排除更多字段
2026-01-20 00:10:04 +08:00
hex2077
f8faee93fc Revert "add letta"
This reverts commit 3faa599b95523160232df3d5483840b56d5a4702.
2026-01-19 21:55:44 +08:00
hex2077
b7f2142411 add letta 2026-01-19 21:55:35 +08:00
hex2077
464c156fd2 fix(provider-pool-manager): 修复节点权重计算逻辑问题
改进权重计算算法,解决未使用节点(lastUsed为null)排序异常问题。将未使用节点视为1小时前使用过,并调整使用次数惩罚为每分钟偏移量,确保公平排序。
2026-01-18 16:45:38 +08:00
hex2077
dc4e6fe0b2 feat(oauth): 修复Kiro提供商403错误处理逻辑
优化令牌刷新队列机制,增加缓冲队列减少重复刷新
更新提供商健康检查模型配置,添加iFlow和Codex相关模型
统一OAuth模块导出结构,整理各提供商OAuth实现
修复Kiro提供商403错误处理逻辑,改为标记需刷新而非直接标记不健康
2026-01-18 14:53:14 +08:00
hex2077
be814c5a56 fix: 优化凭证刷新和重试机制以避免并发冲突
- 移除 Gemini 服务中不必要的过期检查逻辑
- 在凭证刷新时添加随机延迟和最大重试次数限制
- 在流式和非流式请求重试时添加随机延迟
2026-01-18 00:04:22 +08:00
hex2077
35f3f81d3e feat(provider): 实现提供商节点自动刷新与预热机制
- 新增提供商节点自动刷新队列和并发控制
- 添加系统启动预热功能,按配置预热指定数量节点
- 重构CPU使用率统计,支持子进程独立统计
- 扩展适配器接口,增加强制刷新和过期检查方法
- 更新配置管理,新增预热目标和刷新并发数配置
- 优化提供商选择策略,基于评分系统选择最佳节点
- 改进错误处理,401错误自动触发后台刷新
2026-01-17 17:08:17 +08:00
hex2077
56ef11a168 refactor: 移除 CredentialCacheManager 及相关缓存逻辑
重构多个 provider 模块,移除了 CredentialCacheManager 的依赖及相关内存缓存逻辑,改为直接读写文件系统。简化了凭证管理流程,减少了代码复杂度。

- 移除 provider-pool-manager 中的快速预检逻辑
- 移除 service-manager 中的凭证缓存初始化及同步逻辑
- 修改各 provider 核心模块的凭证加载和保存逻辑,直接操作文件系统
- 移除并发刷新时的去重锁和缓存同步机制
2026-01-17 13:16:19 +08:00
hex2077
0974a5e83d refactor(auth): 使用 axios 替代 fetch 以支持代理配置
重构 OAuth 处理中的网络请求模块,将原生 fetch 替换为 axios,以正确处理代理配置。axios 提供了更完善的代理支持和错误处理机制,同时保持与原有 fetch API 的兼容性。

refactor(providers): 优化健康检查逻辑

- 提前返回未启用健康检查的情况
- 仅在开启自动刷新 token 时执行快速预检
- 使用 AbortController 替代 Promise.race 实现超时控制
- 优化错误消息和日志信息
2026-01-16 17:35:15 +08:00
leonai
025828868e feat(pool): 添加账号池轮询上限配置默认全部,并优化服务端重载问题
1. 新增 POOL_SIZE_LIMIT 配置项,限制每个提供商类型参与轮询的最大健康凭证数量
2. 优化 provider-pool-manager 选择逻辑,按使用次数升序取 Top N 候选池
3. 修复 credential-cache-manager 配置重载时的实例锁检测问题
4. 完善前端配置界面和中英文国际化支持
2026-01-16 12:34:41 +08:00
leonai
9f58db2c1f feat: 引入凭证缓存管理器,优化 OAuth Token 并发处理
- 新增 CredentialCacheManager 替代文件锁机制
- 所有 OAuth Provider 迁移到内存缓存
- Token 刷新策略优化:过期阻塞,即将过期后台刷新
- 健康检查增加 Token 预检和超时保护
- 进程退出时自动同步凭证到文件
2026-01-15 21:49:54 +08:00
leonai
ec82841c26 Merge branch 'main' of https://github.com/leonaii/AIClient-2-API 2026-01-14 20:14:55 +08:00
leonai
92c2f44a73 feat(kiro): 添加凭证错误处理和配额恢复机制
1. 新增 CredentialError 自定义错误类,支持凭证切换标记
2. 添加 402 配额耗尽错误处理,支持验证用量并设置下月恢复时间
3. 重构 429/5xx 错误处理策略,改为等待后切换凭证而非指数退避重试
4. 新增 markProviderUnhealthyWithRecoveryTime 方法支持计划恢复
5. 添加 _checkAndRecoverScheduledProviders 自动恢复已到期凭证
6. 调整凭证切换最大重试次数从 2 次增加到 5 次
7. 支持 skipErrorCount 标记避免临时错误影响凭证健康度统计
2026-01-14 20:14:40 +08:00
hex2077
5c90100997 feat(并发控制): 实现去重锁机制并优化提供者选择并发安全
为关键操作添加去重锁机制,确保并发请求只执行一次共享结果
重构 provider-pool-manager 使用链式锁保证选择操作的原子性
更新各服务提供者使用 withDeduplication 替代自定义单例锁
2026-01-14 16:01:04 +08:00
leonai
b14ae21917 fix(kiro): 增强401错误处理并支持Gemini格式请求体转换,修复健康KIRO健康检查错误。
1. 在callApi和callApiStream方法中添加contents到messages格式的自动转换
2. 401错误时先刷新UUID再刷新token,提高认证恢复成功率
3. 新增_refreshUuid方法用于生成新的UUID标识
4. ProviderPoolManager新增refreshProviderUuid方法支持UUID刷新
5. 移除Kiro OAuth的contents格式备用请求,统一使用messages格式
2026-01-14 11:31:28 +08:00
leonai
948283187c feat(kiro): 添加认证错误自动标记不健康及凭证切换重试机制,解决401 和403的问题
1. Kiro API 新增 401/403 错误处理逻辑,401 尝试刷新 token 后重试,403 直接标记凭证不健康
2. 新增 _markCredentialUnhealthy 辅助方法,统一处理凭证健康状态标记
3. ProviderPoolManager 新增 markProviderUnhealthyImmediately 方法,用于认证错误立即标记
4. handleStreamRequest/handleUnaryRequest 支持重试上下文,认证失败后自动切换健康凭证重试
5. provider-api 健康检查增加认证错误识别,触发立即标记不健康逻辑
2026-01-13 18:44:34 +08:00
Done-0
46ea3e707b fix(provider-pool): 优化错误计数逻辑,避免并发请求导致误判 unhealthy
问题:
  - 多个项目并发请求时,临时性 500 错误会快速累计
  - 即使内部重试成功,错误计数已经触发 unhealthy 标记

  解决方案:
  - 引入 10 秒滑动窗口机制
  - 超过窗口期的错误重置计数,而不是累加
  - 只有窗口期内连续失败才标记 unhealthy
2026-01-10 22:12:16 +08:00
hex2077
2d317e0333 refactor(项目结构): 重构项目目录结构并优化代码组织
将常用工具函数移动到utils目录
重构提供商策略模式实现
新增docker-compose构建配置文件
优化UI配置选择器的样式和交互
重构代理工具和API管理模块
更新脚本路径和依赖引用
2026-01-10 18:19:06 +08:00
Renamed from src/provider-pool-manager.js (Browse further)