Commit graph

98 commits

Author SHA1 Message Date
hex2077
1dde8b5a74 refactor(api): 将健康检查和令牌计数处理逻辑移至请求处理器
重构代码结构,将原本在api-manager.js中的健康检查端点和令牌计数请求处理
2025-11-14 15:10:58 +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
80d4e16840 feat: 添加可视化Web UI管理控制台及相关功能模块
新增完整的Web UI管理控制台,包含以下主要功能:
1. 响应式设计的现代化界面
2. 实时监控系统状态和提供商统计
3. 配置管理功能,支持多种模型提供商
4. 文件上传和OAuth凭据管理
5. 路径路由调用示例和curl命令生成
6. 实时日志查看和事件流处理
7. 提供完整的UI文档说明

新增多个前端模块文件,包括导航、事件处理、文件上传等功能组件,并更新package.json添加multer依赖以支持文件上传功能。同时添加详细的UI_README.md文档说明所有功能特性和使用方法。
2025-11-11 18:53: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
abf7b15781 feat(gemini): 新增对 Gemini 3 预览版的支持
更新 README 文档和模型列表,添加 Gemini 3 预览版支持并增强兼容性
2025-11-06 11:58:57 +08:00
何夕2077
1917837065 Update README.md 2025-11-05 22:42:49 +08:00
hex2077
6ffa327044 docs: 重构README文件结构并添加多语言支持
- 移除README-EN.md文件,将其内容合并到README.md作为英文版本
- 新增README-ZH.md文件作为简体中文版本
- 更新README-JA.md中的链接引用
- 调整.dockerignore文件,移除不再需要的README文件
- 统一多语言文档的格式和内容结构
2025-11-05 22:40:26 +08:00
hex2077
13defe0622 fix: 添加凭证过期调试日志并移除冗余日志
添加Qwen凭证过期检查的调试日志以便排查问题
移除api-server中冗余的token刷新成功日志
2025-10-31 20:55:55 +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
06eacb0419 feat(api): 添加 token 过期自动刷新和 count_tokens 端点支持
在 API 服务器中添加对 count_tokens 请求的处理,返回不支持的提示。
在 Kiro 客户端的内容生成方法中增加 token 过期检查,在即将过期时
自动刷新认证凭证,避免请求失败。
2025-10-20 23:54:26 +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
52417dd805 chore(kiro): 更新默认模型名称并添加调试日志
- 将默认模型名称从 claude-sonnet-4-20250514 更新为 claude-sonnet-4-5
- 在 generateContent 和 generateContentStream 方法中添加模型调用日志
- 便于调试和追踪实际使用的模型版本
2025-10-18 15:04:54 +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
d36a9466a8 无法测试可用性,暂时回滚droid供应商 2025-10-15 22:05:41 +08:00
何夕2077
c8855912f6 Merge pull request #65 from bee4come/feature/add-droid-provider
feat: Add Droid (Factory.ai) provider support
2025-10-15 21:05:01 +08:00
bee4come
e91aaa02e5 fix: improve droid provider with context isolation and message parsing
Changes:
- Add context isolation using --cwd flag to prevent project context leakage
- Fix message content parsing to support both string and array formats
- Add debug logging for troubleshooting
- Create isolated temporary working directory for each service instance

This prevents Droid from seeing the current project directory and mentioning
it in responses, providing a cleaner API experience.

Tested:
 Context isolation verified - Droid reports empty temp directory
 Message parsing works with OpenAI format
 API responses no longer mention project context
2025-10-15 14:02:21 +08:00
bee4come
66b6363ad4 feat: improve Droid provider implementation and configuration
- Add --skip-permissions-unsafe flag to droid exec commands for non-interactive execution
- Improve error handling to accept output from both stdout and stderr
- Map droid protocol to claude in getProtocolPrefix for proper request conversion
- Add DROID_AUTH_FILE and DROID_COMMAND to config.json.example
- Add droid-factory-oauth provider pool example to provider_pools.json.example

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-10-15 13:26:58 +08:00
bee4come
3111119f93 Add Droid (Factory.ai) provider support
This commit adds support for Factory.ai's Droid CLI as a provider,
enabling users to use Droid through an OpenAI-compatible API interface.

Implementation details:
- Created DroidApiService that wraps the droid CLI
- Added DroidStrategy for protocol conversion (Claude-compatible)
- Supports both streaming and non-streaming responses
- No API keys or token management required - uses droid CLI directly

Files added:
- src/droid/droid-core.js: Core service using CLI wrapper
- src/droid/droid-strategy.js: Strategy pattern implementation
- src/droid/README.md: Comprehensive documentation
- test-droid.js: Test script for validation

Files modified:
- src/adapter.js: Added DroidApiServiceAdapter
- src/common.js: Added DROID constants
- src/provider-strategies.js: Registered DroidStrategy
- README.md: Updated with Droid provider information
2025-10-15 11:29:17 +08:00
hex2077
262f119213 feat: 添加新的 Gemini 模型到支持列表 2025-10-11 00:14:28 +08:00
hex2077
7a483e49b5 feat: 添加防截断模型支持和错误处理优化
1. 在gemini-core.js中实现anti-truncation模型支持,通过流式续写解决长文本截断问题
2. 增强common.js中的错误处理,统一返回错误响应格式
3. 更新README文档,优化描述并添加Claude Sonnet 4.5支持
4. 调整.gitignore,添加新的提示词文件
5. 优化convert.js中的默认参数和模型映射逻辑
6. 在claude-kiro.js中添加Claude Sonnet 4.5模型支持
2025-10-08 19:10:54 +08:00
hex2077
76b115f35f chore: 更新.gitignore并删除过期配置文件和文档内容
删除已不再使用的config.json和provider_pools.json配置文件
移除README中关于kiro免费使用的过期信息
在.gitignore中添加config.json和provider_pools.json
2025-10-08 13:52:43 +08:00
hex2077
a0261f3211 Merge branch 'main' of https://github.com/justlovemaki/GeminiCli2API 2025-10-08 13:47:37 +08:00
hex2077
d287f4dc77 docs: 添加示例配置文件config.json和provider_pools.json
添加两个示例配置文件,帮助用户了解配置格式和参数
2025-10-08 13:46:52 +08:00
何夕2077
0d6b8a2c19 Merge pull request #56 from eltociear/add-ja-readme
docs: add Japanese README
2025-10-06 11:14:36 +08:00
hex2077
10c6f34b21 feat: 更新模型列表并添加模型未找到警告
在gemini-core.js中添加gemini-2.5-pro-preview-06-05模型
在qwen-core.js中移除未使用的QWEN_LOCK_FILENAME常量并添加模型未找到时的警告日志
2025-10-05 15:10:52 +08:00
hex2077
b9d77090c9 feat(gemini-core): 添加客户端元数据并支持默认项目ID
在调用API时添加完整的客户端元数据信息,包括IDE类型、平台和插件类型等,并使用默认项目ID进行初始化。这有助于服务端更好地识别客户端环境并提供更准确的响应。
2025-10-05 14:44:27 +08:00
hex2077
bf573bb8f5 refactor(convert): 使用固定阈值替换环境变量配置
移除对环境变量的依赖,改为使用代码中定义的固定阈值来判断推理努力程度。这简化了配置并提高了代码的可维护性。
2025-10-05 14:37:26 +08:00
Ikko Ashimine
602ea74190 docs: add Japanese README 2025-09-21 18:55:18 +09:00
何夕2077
917d89bffa Merge pull request #52 from d7185540/feature/qwen-auth-and-providers
feat(server): 多提供商数组配置与启动初始化; fix(qwen-auth): 复用缓存凭据与账号级刷新清理 (src-only)
2025-09-18 15:59:46 +08:00
AIClient Bot
006b96f422 feat(server): 多提供商数组配置与启动初始化; fix(qwen-auth): 复用缓存凭据与账号级刷新清理 (src-only)
- Qwen OAuth/认证修复
  - 复用本地缓存凭据,避免误入设备授权流
  - 修正缓存凭据有效性判断(access_token + expiry_date)
  - 刷新 400 仅清理当前上下文凭据文件,避免误删其他账号
  - 保留 Qwen 模型名容错回退逻辑

- 多提供商同时生效(配置与启动增强)
  - 新增 normalizeConfiguredProviders,支持 MODEL_PROVIDER 数组/逗号分隔
  - 启动期依据 DEFAULT_MODEL_PROVIDERS 与号池集合进行适配器初始化
  - 启动日志展示 Primary + Additional Model Providers

- 提交范围
  - 本提交仅包含 src/* 目录下的改动
2025-09-18 14:58:29 +08:00
hex2077
2930437616 fix(convert): 修复Claude到Gemini工具转换的结构问题
重构工具转换逻辑以匹配Gemini API要求的格式,确保工具名称和描述为字符串类型,并移除input_schema中的$schema字段。当没有有效工具时正确删除tools数组。
2025-09-16 20:21:52 +08:00
hex2077
7f7fc78072 refactor(convert): 简化工具转换逻辑并统一处理方式
重构了从OpenAI和Claude请求转换Gemini工具的逻辑,移除了functionDeclarations包装层,直接映射工具名称和参数。同时优化了无效工具的过滤处理,保持代码一致性。
2025-09-14 21:37:39 +08:00
hex2077
1f9a26aa5a docs: 更新README中的Docker部署链接
将README中的Docker部署部分从本地锚点改为外部链接,方便用户直接访问部署文档
2025-09-09 16:00:30 +08:00
hex2077
cec97ff3ae refactor(provider-pool): 将日期对象统一转换为ISO字符串格式
修改ProviderPoolManager中日期处理逻辑,将所有Date对象统一转换为ISO字符串格式存储,确保数据一致性并简化序列化过程。
2025-09-08 00:59:09 +08:00
hex2077
7b0aee7959 feat: 添加账号池管理功能并更新文档
- 在convert.js中为工具调用添加index字段支持
- 在common.js中添加fullOldResponseJson变量用于调试
- 更新README文档,添加账号池管理功能说明和快速导航
- 同步更新英文版README文档
2025-09-07 22:16:14 +08:00
hex2077
71fc06ad91 docs: 更新Gemini提供商参数名称从gemini-cli到gemini-cli-oauth
更新中英文README文档中Gemini提供商的参数名称,以更准确地反映其OAuth认证方式
2025-09-06 13:52:09 +08:00
hex2077
d8e42ed1db docs: 更新README中Claude协议支持的provider列表
修正Claude协议支持的provider列表,添加openai-custom以保持与OpenAI协议的一致性
2025-09-06 13:48:35 +08:00
hex2077
8033c16533 feat(qwen): 更新Qwen模型支持及文档
- 调整Qwen模型列表顺序并更新默认API地址
- 在SharedTokenManager中添加凭证设置
- 更新README文档,添加Qwen支持说明及启动参数
2025-09-06 13:29:41 +08:00
何夕2077
85021b3e61 Update README-EN.md 2025-09-06 01:23:00 +08:00
何夕2077
5729cd1f24 Update README.md 2025-09-06 01:22:30 +08:00
hex2077
1fa595c5e0 docs: 更新README文档添加Claude供应商路由和环境变量说明
添加关于通过不同路径路由和环境变量配置Claude API供应商的详细说明,包括各系统的环境变量设置方法
2025-09-06 01:16:22 +08:00
hex2077
66f758d741 feat(convert): 增强协议转换功能,支持更多模型和工具调用
- 新增OpenAI到Claude的协议转换支持
- 添加工具调用状态管理器和JSON Schema清理功能
- 实现智能的reasoning_effort等级判断
- 优化错误处理和日志记录
- 重构代码结构,增加注释和辅助函数
2025-09-05 18:03:34 +08:00
hex2077
1b7c143971 docs: 更新README以突出开发者特性和免费额度
更新了中英文README文件,强调项目为开发者打造的特性以及提供大量免费API请求额度的优势。同时修改了Qwen API服务中的工具合并逻辑,使其能够正确处理请求中已定义的工具。
2025-09-02 16:07:04 +08:00
hex2077
a23a3af4c6 feat: 添加openai-qwen-oauth到provider_pools.json 2025-09-02 01:13:12 +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
55801682da docs: 添加各服务授权文件的默认路径说明
在README中补充Gemini、Kiro和Qwen授权文件的默认存储路径信息,方便用户查找和使用
2025-09-01 19:14:17 +08:00