hex2077
0b071f261d
feat(converter): 为Grok协议添加完整的转换支持
...
- 在GeminiConverter、ClaudeConverter和OpenAIResponsesConverter中增加toGrokRequest方法
- 扩展GrokConverter以支持向Gemini、OpenAI Responses、Codex等协议的响应转换
- 移除IFLOW_API适配器的注册以清理未使用的代码
- 修复Grok媒体URL处理中不必要的SSO令牌追加逻辑
2026-03-02 19:47:43 +08:00
hex2077
3f8fdc0b8e
feat(grok): 使用 UUID 替换 SSO token 进行资源代理以提高安全性
...
- 在 Grok 资源代理接口中优先使用 UUID 获取 token,避免 token 泄露在 URL 中
- 为 ProviderPoolManager 添加 findProviderByUuid 方法,支持通过 UUID 查找配置
- 重构 GrokConverter,将 SSO token 依赖改为 UUID 依赖
- 更新 VERSION 文件至 2.10.2.1
2026-03-02 00:14:37 +08:00
hex2077
c91d2ce3ab
feat(grok): 添加资源代理功能并优化用量显示
...
- 新增 Grok 资源代理接口,将 assets.grok.com 的资源通过本地代理访问
- 在请求处理中注入 requestBaseUrl 配置,供转换器生成正确的代理链接
- 统一各提供商核心服务中删除 _requestBaseUrl 字段的逻辑
- 优化 Grok 用量显示逻辑,支持按 token 或 query 显示剩余额度
- 更新 UI 管理器,允许 /api/grok/assets 接口免认证访问
- 改进 Grok 转换器,在流式输出中智能处理被截断的 URL
2026-03-01 23:55:07 +08:00
hex2077
517120a000
fix: 修复Claude内容处理和iFlow模型验证问题
...
- 修复ClaudeConverter中字符串内容处理逻辑,确保字符串能正确转换为OpenAI格式
- 移除claude-kiro.js中重复的内容处理代码,避免重复计算tokens
- 修复iFlow模型验证逻辑,当模型不存在时使用默认模型
- 优化插件状态提示信息,使用通用的"已启用/已禁用"翻译
2026-02-28 17:52:45 +08:00
hex2077
68719879c5
feat(architecture): 重构适配器注册机制并引入并发控制系统
...
建立可扩展的提供商适配器注册表,实现动态服务发现与插槽管理:
架构改进:
- 采用 Map 注册表替代 switch-case 硬编码,支持热插拔适配器
- 实现 acquireSlot/releaseSlot 机制,精确追踪活跃请求与等待队列
- 新增节点评分算法,综合考量并发数、队列长度、健康状态
核心能力:
- 支持并发限制与队列等待,避免单节点过载 (concurrencyLimit/queueLimit)
- 实现 Fallback 链式调用,429 错误自动切换备用凭证
- 添加请求级 IP 追踪,日志格式优化为 `clientIp:requestId`
配套更新:
- 管理界面新增并发/队列配置字段与 Grok 逆向提供商选项
- 用量查询服务扩展 Grok 支持,同步剩余查询次数 (固定总量 80)
- 新增并发测试脚本 (tests/concurrent-test.js),支持自定义并发数与 RPM 限制
配置项:
- GROK_COOKIE_TOKEN, GROK_CF_CLEARANCE, GROK_USER_AGENT, GROK_BASE_URL
2026-02-26 18:19:38 +08:00
hex2077
ed8b889586
fix: 确保工具结果消息内容在转换时被正确序列化
...
- 修复 OpenAIConverter 中工具结果消息内容为对象时未序列化为字符串的问题
- 修复 ClaudeConverter 中工具结果消息内容为对象时未序列化为字符串的问题
- 修复 Kiro 提供程序中工具描述为空时导致请求失败的问题
- 更新 README 文档,添加 Kiro 扩展思考和提供商优先级配置说明
- 清理过时和未使用的测试文件以保持代码库整洁
2026-02-20 19:52:50 +08:00
何夕2077
f16f972d97
Merge pull request #320 from Asoubra12/pr/kiro-extended-thinking-slim
...
feat(kiro): add extended thinking passthrough and structured reasoning outputs
2026-02-20 19:27:04 +08:00
hex2077
55879396c8
feat(converters): 为请求添加 metadata 支持并优化会话缓存
...
- 在 CodexConverter 和 ClaudeConverter 中增加 metadata 字段,透传上游元数据
- 重构 CodexApiService 的缓存键生成逻辑,优先使用 session_id 或 conversation_id
- 从上游请求体中移除 metadata 避免透传,仅用于生成缓存键
2026-02-15 11:21:26 +08:00
hex2077
6ee7e78c90
feat: 增强模型支持和修复流处理问题
...
- 添加新的Qwen模型(coder-model, vision-model)到提供者列表
- 修复OpenAI Responses流结束事件处理,避免下游类型校验错误
- 更新Qwen API端点地址和版本号
- 重构Codex转换器,分离OpenAI和OpenAI Responses的转换逻辑
- 优化工具调用处理,支持嵌套function结构
- 移除健康检查功能,简化API管理初始化
- 修复消息角色转换(developer→assistant)和类型标记
2026-02-13 20:47:47 +08:00
Codex
9f3040cf49
feat(kiro): add request-side extended thinking support and structured reasoning outputs
2026-02-11 12:26:03 +03:00
hex2077
27acc72dfd
feat: 增加登录过期配置并优化错误处理
...
- 新增 LOGIN_EXPIRY 配置项,支持自定义管理后台登录 Token 有效期
- 优化 provider 错误计数逻辑,当 MAX_ERROR_COUNT 为 0 时禁用自动标记不健康
- 修复工具消息转换中对象内容未序列化的问题
- 增强网络错误处理,可重试的网络错误不再导致进程退出
- 过滤 Claude Kiro provider 中描述为空的工具,避免 API 调用失败
2026-02-09 19:50:35 +08:00
hex2077
ae10e9e365
feat(GeminiConverter): 支持从Gemini响应中提取tool_calls
...
在toOpenAIResponse方法中添加对Gemini响应中functionCall部分的解析,将其转换为OpenAI格式的tool_calls。当检测到工具调用时,自动设置finish_reason为"tool_calls",并构建包含tool_calls字段的assistant消息。
2026-02-04 18:36:15 +08:00
hex2077
03a1a656f4
feat: 新增 OpenAI Codex OAuth 支持与用量查询功能
...
- 添加 Codex OAuth 提供商支持,包括核心服务、适配器和策略实现
- 在用量管理页面新增支持用量查询的提供商列表显示
- 为 Codex 添加专用的用量查询接口和格式化显示
- 更新 Docker 配置以暴露 Codex OAuth 回调端口 1455
- 完善多语言文档,记录 Codex 配置和使用方法
- 修复流式响应中工具调用的 finish_reason 处理逻辑
- 增强 AI 监控插件对数组类型 chunk 的处理能力
2026-01-27 16:31:23 +08:00
hex2077
a5236b6709
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
2026-01-25 23:25:04 +08:00
hex2077
d3c853de94
fix: 更新Codex策略以适配新的Responses API格式
...
将Codex的provider策略从OpenAIStrategy切换为ResponsesAPIStrategy,以适配新的API接口。
更新请求头信息,包括版本号、beta特性标志和连接设置。
调整消息转换逻辑,将assistant角色映射为developer角色。
优化token刷新逻辑,确保在刷新成功后重置provider状态。
2026-01-25 23:23:15 +08:00
Yoahoug
cd15a3a637
修复codex
2026-01-25 23:09:45 +08:00
hex2077
245583b96a
feat(logging): 添加日志系统配置和下载功能
...
- 新增日志系统配置选项,支持日志级别、输出模式、文件大小等设置
- 添加当日日志文件下载功能,可通过Web界面直接下载
- 将console.log/error替换为结构化logger,提升日志可管理性
- 在日志页面添加自动滚动到底部功能
- 更新配置示例文件,包含完整的日志配置参数
2026-01-25 17:24:39 +08:00
hex2077
8afe41870d
refactor: 优化Claude-》Gemini的转换逻辑,增加tools适配
2026-01-22 22:39:19 +08:00
hex2077
ad2432a37c
feat(converter): 完善Claude和Gemini转换器对thinking块和工具调用的支持
...
- 在ClaudeConverter中添加thinking块和redacted_thinking块的处理逻辑
- 改进tool_use和tool_result块的转换,支持ID映射和参数规范化
- 在GeminiConverter中实现thinking块与Claude格式的互转
- 添加工具参数重映射逻辑,解决Gemini与Claude参数命名差异问题
- 支持流式场景下的thinking_delta和signature_delta事件处理
2026-01-22 21:36:05 +08:00
Yoahoug
47ad305b4e
feat: add Codex provider support
2026-01-16 16:53:06 +08:00
hex2077
2d317e0333
refactor(项目结构): 重构项目目录结构并优化代码组织
...
将常用工具函数移动到utils目录
重构提供商策略模式实现
新增docker-compose构建配置文件
优化UI配置选择器的样式和交互
重构代理工具和API管理模块
更新脚本路径和依赖引用
2026-01-10 18:19:06 +08:00
Zhafron Kautsar
60161fd2bc
feat(converters): add display_name field to model list responses
...
Add display_name field to model list conversions across all converter strategies to improve model identification in API responses. ClaudeConverter and GeminiConverter now include display_name in their toOpenAIModelList methods, while OpenAIConverter adds ensureDisplayName method to guarantee the field exists for native OpenAI models.
2026-01-08 08:20:19 -05:00
hex2077
8f39295655
feat: 改进错误处理、Ollama兼容性和文档结构
...
refactor(converters): 优化Claude到Gemini的转换逻辑
fix(kiro): 修复社交认证刷新问题
perf(ollama): 提升模型列表获取效率
docs: 为README添加可折叠区块
style: 清理控制台日志
2026-01-06 18:14:02 +08:00
yicone
d541c36b47
fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility
2025-12-27 17:01:02 +08:00
lemon07r
902bee1aa5
fix: map finish_reason to 'tool_calls' in Gemini stream when tool calls are present
2025-12-22 19:46:26 -05:00
lemon07r
ac47e04cf9
fix: add missing 'index' to Gemini streaming tool calls and improve tests
2025-12-22 19:36:01 -05:00
hex2077
c2bc2f1c07
fix(converters): 更新AI模型相关常量以匹配最新API限制
...
调整OpenAI、Claude、Gemini等模型的token限制常量,使其与各平台最新API规格保持一致
2025-12-13 17:38:42 +08:00
hex2077
839fc2d9de
refactor(converters): 使用常量替换模型默认参数硬编码
...
将各模型转换器中的硬编码默认参数替换为统一的常量定义,提高代码可维护性
2025-12-13 17:30:04 +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
何夕2077
f4b30ed596
Merge pull request #103 from leonaii/main
...
先合并,后处理
2025-12-10 12:12:42 +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
lethanhson9901
9701d98c55
feat: Add structured output support for OpenAI to Gemini conversion
...
- Add support for response_format parameter in OpenAI requests
- Map json_object type to Gemini's responseMimeType: application/json
- Map json_schema type to Gemini's responseSchema with schema definition
- Update buildGeminiGenerationConfig to handle response_format parameter
This enables users to request structured JSON outputs using OpenAI's
response_format API when calling Gemini models through the converter.
2025-12-09 11:08:35 +07:00
hex2077
bc3725e901
feat: 添加统一错误响应生成功能
...
refactor(service-manager): 移除NoAvailableProviderError和严格池检查
feat(converters): 增强token统计功能,支持缓存和推理token详情
refactor(claude-kiro): 改进JSON解析和工具调用处理
feat(common): 添加统一错误响应生成功能
2025-12-03 20:21:20 +08:00
hex2077
8252d45f89
fix(converter): 清理OpenAI消息转换中的空白字符
...
final assistant content cannot end with trailing whitespace
移除消息内容中的前后空白字符,包括普通消息和最后一条assistant消息的尾部空白,确保转换后的数据更整洁
2025-12-01 15:06:50 +08:00
hex2077
a435b137e7
feat(ollama): 新增Ollama协议支持,统一接口访问所有支持的模型
...
- 添加OllamaConverter处理Ollama协议与其他协议的转换
- 实现Ollama处理器处理Ollama特定端点
- 支持Ollama API标准接口如/api/tags、/api/chat、/api/generate
- 更新README文档添加Ollama使用说明和示例
- 优化模型前缀处理,支持通过前缀指定不同提供商
- 改进认证处理,允许空Bearer token以兼容VS Code Copilot等客户端
2025-11-16 21:35:03 +08:00
hex2077
a212a71385
refactor(converters): 重构协议转换器架构并迁移至策略模式
...
- 创建新的转换器基础架构,包括BaseConverter、ConverterFactory和策略模式实现
- 迁移OpenAI、Claude、Gemini和OpenAI Responses(仅对话,无工具)转换器到新的策略模式
- 移除旧的ensureRolesInContents函数,优化内容处理逻辑
- 添加注册转换器机制,支持动态协议转换
- 更新API服务器以使用新的转换器工厂
- 优化流式响应处理和协议映射逻辑
- 添加详细的转换器工具和实用函数
- 改进错误处理和调试日志记录
2025-11-09 22:22:22 +08:00