Commit graph

31 commits

Author SHA1 Message Date
hex2077
8a1ccb9877 refactor(config): 重构配置文件路径至configs目录并更新相关引用
- 将配置文件统一迁移至configs目录
- 更新所有相关代码中对配置文件的引用路径
- 删除不再使用的run-docker脚本文件
- 更新文档中关于配置文件路径的说明
- 调整默认配置参数和路径引用方式
2025-12-25 16:48:42 +08:00
hex2077
7e16afd806 fix: 更新模型名称并修复节点选择逻辑
更新 PROVIDER_MODELS 中的 gemini-3-flash 模型名称
在 ProviderPoolManager 中更新错误节点的 lastUsed 时间,防止 LRU 策略导致重复选择失败节点
2025-12-24 21:44:15 +08:00
hex2077
dfce4a6aac feat(provider): 添加跨类型 Fallback 链支持
实现当主 Provider Type 无可用账号时自动切换到配置的 Fallback 类型功能,包括:
1. 在 config.json 中添加 providerFallbackChain 配置项
2. 扩展 ProviderPoolManager 支持 Fallback 逻辑
3. 新增 getApiServiceWithFallback 方法处理带 Fallback 的服务获取
4. 更新 UI 界面和文档说明
2025-12-23 17:22:42 +08:00
hex2077
96587f1ad0 refactor(provider-pool-manager): 用LRU策略替换轮询算法以均衡分配
改进提供商选择逻辑,从简单的取模轮询改为基于最后使用时间和使用次数的LRU策略,确保在动态变化的可用列表情况下也能平均分配到各个账号
2025-12-20 17:43:50 +08:00
hex2077
f851ac8bb2 fix(provider-pool): 修复提供者使用计数和健康状态更新逻辑
更新提供者使用计数时增加最后使用时间记录
修复流式请求和一元请求成功后的使用计数更新
移除不必要的模型映射和配置
调整服务选择时跳过使用计数的逻辑
2025-12-13 00:45:49 +08:00
hex2077
b364341f67 feat(provider): 增强健康检测和自动配置关联功能
- 新增 provider-utils.js 公共模块,提取共用工具函数
- 添加提供商健康检测 API 端点和 UI 按钮
- 实现配置文件自动关联功能(启动时和手动触发)
- 支持 gemini-antigravity 新提供商类型
- 增强健康检测结果记录(时间、模型、错误信息)
- 添加提供商列表分页功能
- 修复 OpenAIResponsesConverter 中 systemMessages 未定义问题
- 更新默认健康检测模型配置
2025-12-10 15:18:42 +08:00
hex2077
c5cd1ab2c7 Revert "Merge pull request #103 from leonaii/main"
This reverts commit 4f336889fd46193f5d6b32d95738070e4aecb7b0, reversing
changes made to 4a645cdf3ffaeb922d97141dbf699807ccc2d240.
2025-12-10 12:13:11 +08:00
leonai
d99f0d77a5 feat: 增强提供商池管理和UI功能
- 新增 Kiro OAuth 配置自动扫描和关联功能 (service-manager.js)

- 增强提供商池管理器,支持健康检测和状态持久化 (provider-pool-manager.js)

- 新增 UI 管理功能:登录认证、配置文件上传、提供商管理 (ui-manager.js)

- 新增上传配置管理模块,支持配置文件查看/删除/一键关联 (upload-config-manager.js)

- 增强模态框组件,支持更多交互功能 (modal.js)

- 新增 Windows PowerShell 部署脚本 (run-docker.ps1)

- 优化 run-docker.sh 脚本,增强跨平台兼容性

- 更新 .gitignore 排除敏感配置文件
2025-12-09 22:12:40 +08:00
hex2077
029d97236b fix: 使用 ?? 替代 || 运算符确保默认值正确设置
将逻辑或(||)运算符替换为空值合并(??)运算符,确保当配置值为0时不会被错误地替换为默认值。同时更新了相关日志信息以显示当前设置的maxErrorCount值。
2025-12-04 18:05:38 +08:00
hex2077
211d677d00 fix(provider): 避免重复增加provider使用计数
当从provider池重新选择服务时跳过usageCount增加,因为初次选择时已经增加过。同时优化token刷新逻辑,合并强制刷新和即将过期的检查条件。
2025-12-04 12:53:17 +08:00
hex2077
41e1b8f25a fix(provider-pool): 修正 Gemini 和 OpenAI 提供者的请求格式判断
将 Gemini 提供者的判断条件从精确匹配改为前缀匹配,以支持更多 Gemini 变体
使用常量 MODEL_PROVIDER.OPENAI_CUSTOM_RESPONSES 替代硬编码字符串
2025-12-01 17:04:37 +08:00
hex2077
203f0a4e65 feat(antigravity-core): 添加PROJECT_ID配置支持
refactor(provider-pool-manager): 修改markProviderHealthy调用方式
2025-12-01 13:20:00 +08:00
hex2077
fec0b19bd4 feat(provider): 实现基于模型选择的提供商池管理功能
添加 provider-models.js 集中管理各提供商支持的模型列表
修改 provider-pool-manager.js 支持根据请求模型过滤提供商
更新服务管理器和请求处理逻辑以支持模型感知的提供商选择
添加前端UI支持配置不支持的模型列表
更新示例配置文件展示新功能
2025-11-29 16:56:59 +08:00
hex2077
9c114e2a7d refactor(provider-pool): 优化提供商池配置管理和健康检查逻辑
- 移除未使用的提供商池配置输入监听器
- 默认启用提供商池配置文件路径配置
- 修改健康检查方法参数名以更清晰表达意图
- 仅在明确要求时重置提供商使用计数
- 调整文件扫描深度以支持嵌套凭证目录结构
- 重载配置时更新提供商池管理器状态
2025-11-26 13:44:55 +08:00
hex2077
1c22b8c5c9 refactor(provider-pool): 重构提供者池管理器的日志和健康检查逻辑
- 添加日志级别控制和统一的日志输出方法
- 重构健康检查逻辑,使用默认模型配置和标准化的请求构建
- 优化批量保存机制,减少文件I/O操作
- 添加参数校验和错误处理
- 重命名方法以更准确表达其功能
2025-11-25 16:02:30 +08:00
hex2077
f07d1361c8 feat(ProviderPoolManager): 添加健康检查跳过逻辑和重置健康状态方法
添加markProviderZero方法用于重置提供商的错误计数和使用计数
当健康检查未实现时跳过检查并自动标记为零状态
优化健康检查返回null时的处理逻辑
2025-11-24 18:08:25 +08:00
hex2077
0149bf6558 docs(terminology): 统一术语标准 - 将"供应商"规范为"提供商"
将项目中所有文档、注释和用户界面中的"供应商"术语统一修改为"提供商",提升术语一致性。同时:
- 优化提供商健康检查频率从30分钟调整为10分钟,提高监控及时性
- 新增路由URL动态更新功能,支持不同部署环境的路径适配
- 更新相关样式类名和注释,确保代码与文档术语保持一致
2025-11-14 00:10:27 +08:00
hex2077
ee050c77f2 feat: 新增Web UI管理控制台和认证系统
新增Web UI管理控制台,支持实时配置管理和健康状态监控
添加登录认证系统,包含token生成和验证机制
实现供应商池的启用/禁用功能
更新README文档,添加安装脚本和Web UI使用说明
优化配置文件管理界面,增加API客户端封装
新增登录页面和认证中间件
2025-11-12 17:37:39 +08:00
hex2077
a212a71385 refactor(converters): 重构协议转换器架构并迁移至策略模式
- 创建新的转换器基础架构,包括BaseConverter、ConverterFactory和策略模式实现
- 迁移OpenAI、Claude、Gemini和OpenAI Responses(仅对话,无工具)转换器到新的策略模式
- 移除旧的ensureRolesInContents函数,优化内容处理逻辑
- 添加注册转换器机制,支持动态协议转换
- 更新API服务器以使用新的转换器工厂
- 优化流式响应处理和协议映射逻辑
- 添加详细的转换器工具和实用函数
- 改进错误处理和调试日志记录
2025-11-09 22:22:22 +08:00
hex2077
484d71fcd3 feat(provider): 添加初始化健康检查时重置使用计数功能
在初始化健康检查时重置provider的使用计数,确保初始化时状态完全重置
同时优化请求处理逻辑,提前处理OPTIONS和健康检查请求
2025-10-31 18:01:38 +08:00
hex2077
f0201a484e refactor(system): 优化内部协议判断与配置路径管理
调整模型列表转换的协议匹配条件,以提升不同提供者间数据适配的精确性。
同步更新提供者池配置的持久化逻辑,允许通过全局配置自定义存储文件路径,增强系统部署的灵活性。
2025-10-22 22:09:35 +08:00
hex2077
6b0c323dfe feat(core): 增强网络代理控制与 OAuth 凭证管理能力
核心改进:
- 实现 HTTP 客户端代理可配置化,新增 USE_SYSTEM_PROXY_* 系列开关
- 引入 CredentialsClearRequiredError 异常,优化 Qwen 令牌过期处理流程
- 重构 provider-pool-manager 配置传递,支持全局代理设置继承
- 封装 commonFetch 统一方法,规范 fetch 和 axios 的代理行为

文档更新:
- 三语言 README 全面改版,突出协议转换和免费模型使用价值
- 新增授权配置分步指南,覆盖 Gemini/Qwen/Kiro 完整流程
- 补充 Path 路由切换表格,明确各提供商适用场景
- 修正 OpenAI Responses API 标识符拼写错误
2025-10-22 21:04:14 +08:00
hex2077
db3c63ffe4 refactor(stream): 重构流式响应处理器与资源池调度算法
针对 claude-kiro 模块的事件流解析器进行架构升级,引入双模式
正则匹配策略实现向后兼容。provider-pool-manager 模块通过引入
延迟写入队列机制重构持久化层,消除冗余的迭代逻辑。

核心变更:
- 实现 SSE 标准格式与遗留格式的自适应解析器
- 重构 JSON 边界检测算法,增强空白字符处理
- 引入基于 Set 的批量写入队列替代即时持久化
- 移除供应商选择中的多余循环,采用直接索引计算
- 调整异常传播策略,将错误向上层抛出而非内部消化

技术细节:通过定时器合并多次保存请求,将 I/O 操作从 O(n)
降低到 O(1);时间戳标准化逻辑由多分支条件简化为三元表达式;
转义字符处理采用负向后查找断言避免误替换。
2025-10-20 21:16:06 +08:00
hex2077
5d4283edc6 feat(kiro): 增强账号池健康检查配置并优化凭证加载逻辑
为 provider_pools.json 配置文件新增 checkHealth 字段,允许灵活控制各账号的健康检查行为。同时重构 Kiro OAuth 凭证加载机制,统一处理指定文件和目录扫描的逻辑,提升凭证管理的可靠性。

此外,在多语言 README 文档中补充 10.18 版本更新说明,告知用户 Kiro 服务的最新动态。
2025-10-18 16:12:13 +08:00
hex2077
dfe7ce914e feat(api): 添加 OpenAI Responses API 支持
新增对 OpenAI Responses API 端点的部分支持,包括请求转换、流式响应处理和供应商适配。主要变更:

- 新增 OpenAIResponsesApiService 核心服务实现
- 实现 Claude/Gemini 到 Responses API 的双向协议转换(能聊天,不能调用工具)
- 添加流式响应状态管理和事件生成机制
- 扩展路由支持 /v1/responses 端点
- 更新文档说明配置方法和使用示例
2025-10-16 23:26:36 +08:00
hex2077
cec97ff3ae refactor(provider-pool): 将日期对象统一转换为ISO字符串格式
修改ProviderPoolManager中日期处理逻辑,将所有Date对象统一转换为ISO字符串格式存储,确保数据一致性并简化序列化过程。
2025-09-08 00:59:09 +08:00
hex2077
bc6e317638 fix(provider-pool): 将默认错误阈值从1调整为3
docs: 更新Qwen Code授权方式和README-EN协议图
feat(qwen-core): 添加工具支持并优化请求头
2025-09-02 01:10:20 +08:00
hex2077
c1f203c40e feat(qwen): 新增Qwen Code支持及相关功能实现
1. 在common.js中添加QWEN_API常量
2. 实现QwenApiService核心服务类
3. 添加QwenOAuth2Client认证客户端
4. 实现SharedTokenManager共享令牌管理
5. 更新适配器、API服务端和README文档
6. 添加相关依赖包
2025-09-01 17:28:37 +08:00
hex2077
bd30a5f8d3 fix(provider): 修复健康检查逻辑并添加checkModelName字段
实现实际的健康检查逻辑,通过临时服务适配器进行API调用验证
为所有provider配置添加checkModelName字段用于健康检查
修正初始化日志中的服务名称错误
2025-08-30 17:29:55 +08:00
hex2077
b60593085e feat(provider): 添加健康状态跟踪并持久化到JSON文件
添加provider健康状态跟踪功能,包括使用次数、错误计数和最后使用时间
将provider状态持久化到JSON文件,确保重启后状态不丢失
重构provider选择逻辑,将状态管理移至config对象
2025-08-30 14:02:13 +08:00
hex2077
bdcb4320f4 feat: 新增提供商账号池模式支持
实现账号池功能,支持为所有提供商配置多个账号,提供轮询、故障转移和配置降级能力
修改适配器和服务处理逻辑以支持账号池管理
添加 ProviderPoolManager 类管理账号池健康状态和选择策略
更新文档说明账号池配置和使用方法
2025-08-29 17:00:18 +08:00