ZqinKing
4ec39f4df6
feat(fallback): 新增跨协议模型 Fallback 映射功能
...
## 功能概述
实现跨协议模型级别的 Fallback 映射机制,允许在主 Provider 不可用时,
根据模型名称自动映射到其他协议的 Provider 和模型。
## 设计原理
- 原有 providerFallbackChain 只支持同协议内回退
- 新增 modelFallbackMapping 支持跨协议映射(如 Gemini → Claude)
- 优先级:同协议回退 > 跨协议模型映射
## 代码修改
- configs/config.json.example: 新增 modelFallbackMapping 配置示例
- src/provider-pool-manager.js: 实现跨协议映射选择逻辑
- src/service-manager.js: 传递 actualModel 参数
- src/common.js: 处理模型 fallback 后的模型名更新
- src/ui-manager.js: UI配置读写支持
- static/app/config-manager.js: 前端配置管理
- static/app/i18n.js: 中英文国际化文案
- static/index.html: 高级配置区新增配置项
## 配置示例
modelFallbackMapping: {
"gemini-claude-opus-4-5-thinking": {
"targetProviderType": "claude-kiro-oauth",
"targetModel": "claude-opus-4-5"
}
}
2026-01-04 08:40:40 +08:00
Yoahoug
8cbbf57174
再次修复kiro 400问题,用占位符替换历史信息中的image,缩小包体大小
2026-01-03 22:03:49 +08:00
hex2077
0f335db090
Merge branch 'main' of https://github.com/justlovemaki/AIClient-2-API
2026-01-03 18:16:49 +08:00
hex2077
f691380482
feat: 新增主题切换功能并优化提供商池初始化
...
refactor: 重构配置管理移除冗余提供商配置
fix: 修复手动OAuth回调处理逻辑
style: 优化用量卡片UI增加折叠功能
perf: 提升服务启动时提供商池节点初始化效率
docs: 更新i18n翻译文本和配置说明
chore: 清理无用代码和配置文件
2026-01-03 18:02:16 +08:00
Yoahoug
10146e3cf0
fix: Kiro长上下文400错误修复 & 添加自定义代理支持
...
## Kiro 长上下文修复
- 添加请求体大小限制(默认240KB),避免超过Kiro API限制导致400错误
- 添加 cleanIncompleteToolCalls 方法,清理不完整的工具调用
- 确保截断后第一条消息是user类型
- 新增配置项 KIRO_MAX_REQUEST_SIZE_KB
## 自定义代理支持
- 为各Provider添加独立的代理配置选项
- 支持 USE_SYSTEM_PROXY_* 配置
- UI界面添加代理配置入口
- 新增 proxy-utils.js 代理工具模块
2026-01-02 23:32:10 +08:00
hex2077
bb6195ee2d
feat: 添加主进程管理和自动更新功能
...
- 引入主进程(master.js)管理子进程生命周期
- 实现子进程崩溃自动重启机制
- 添加服务管理API端点
- 支持通过Web界面检查更新和重启服务
- 更新文档添加FAQ章节
- 优化系统信息显示和UI交互
- autoLinkProviderConfigs增加更新providerPoolManager逻辑
2025-12-31 23:23:56 +08:00
何夕2077
ecdf7f31e7
Merge pull request #142 from clansty/feature/count-tokens-api
...
feat: 实现 Anthropic 兼容的 count_tokens API
2025-12-28 16:42:27 +08:00
Clansty
0fcc29c9af
fix
2025-12-27 21:16:59 +08:00
何夕2077
cdb936cfd6
Merge pull request #141 from yicone/main
...
fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility
2025-12-27 17:17:08 +08:00
hex2077
fc3eef0b3d
feat(oauth): 重构OAuth授权流程并支持自定义端口
...
- 重构OAuth回调服务器管理,改为按提供商而非端口存储
- 在授权模态框中添加端口自定义功能
- 支持在生成授权URL时指定自定义端口
- 更新Dockerfile和文档以反映新增的OAuth端口需求
- 将授权逻辑从event-handlers.js移至provider-manager.js
- 优化服务器关闭逻辑,避免端口冲突
2025-12-27 17:11:19 +08:00
yicone
d541c36b47
fix: resolve CORS for browser extensions & enhance OpenAI Responses compatibility
2025-12-27 17:01:02 +08:00
Clansty
13b34411fc
feat: 实现 Anthropic 兼容的 count_tokens API
...
- 在 KiroApiService 中添加 countTokens 方法,支持计算 messages、system、tools 的 token 数
- 使用 @anthropic-ai/tokenizer 进行准确的 token 计算
- 支持 text、tool_use、tool_result、image、document 等内容类型
- 修改 request-handler.js 处理 POST /v1/messages/count_tokens 请求
- 返回格式与 Anthropic 官方 API 一致:{ input_tokens: number }
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 23:01:10 +08:00
Clansty
839731fd48
fix(kiro): 修复 tool_use 的 input 字段序列化问题
...
将 tool_use 块的 input 字段从 JSON 字符串解析为对象,
修复 Claude SDK 校验不通过的问题。
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:28:29 +08:00
hex2077
3e0699a2fe
refactor(auth): 改进密码文件读取和验证逻辑
...
- 使用异步方式检查文件存在性避免竞态条件
- 增加详细的日志输出帮助调试
- 统一处理文件不存在和读取失败的情况
- 在验证函数中添加密码长度日志
2025-12-25 18:10:06 +08:00
hex2077
acb666d089
fix(auth): 处理空密码文件时使用默认密码
...
当密码文件存在但内容为空时,现在会正确使用默认密码。同时优化了错误日志信息,使其更清晰。
2025-12-25 17:58:47 +08:00
hex2077
8bfa7e1dbf
feat(认证): 添加默认密码作为备用方案
...
当密码文件不存在或读取失败时,使用默认密码作为备用方案,提高系统的容错能力
2025-12-25 17:43:12 +08:00
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
8f843f50f6
feat: 添加版本号显示功能并更新CI流程
...
- 创建VERSION文件存储版本号
- 在系统信息面板添加版本号显示
- 更新Docker发布流程以自动读取VERSION文件并创建Git标签
- 在OAuth授权模态框中添加端口号提示
- 添加相关i18n翻译字段
2025-12-24 18:26:25 +08:00
unihon
e663e85ef9
fix(usage): 修复provider_health接口过滤参数不生效问题
2025-12-23 18:21:43 +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
ca8a68261f
fix(claude-kiro): 确保历史消息以assistantResponseMessage结尾
...
当历史消息最后一条是用户消息时,添加空的assistantResponseMessage以满足Kiro API要求
默认存在configs目录,用于docker挂载
2025-12-23 15:21:37 +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
unihon
b25b2461c5
Merge branch 'justlovemaki:main' into feature/provider-health-api
2025-12-22 18:32:55 +08:00
hex2077
231505afd9
feat: 更新OAuth回调服务器主机和图片资源
...
fix: 修复curl命令中baseURL拼接问题
refactor: 将授权成功后的刷新逻辑移至provider-manager
docs: 更新README中的赞助者列表和图片引用
2025-12-22 13:44:35 +08:00
unihon
7a5ce6dbd5
feat(usage): 添加provider健康检查接口
2025-12-22 01:24:23 +08:00
hex2077
0816de2ba2
feat(ui): 添加图片放大功能并优化仪表盘布局
...
实现二维码图片点击放大功能,重构仪表盘顶部布局将联系信息与统计卡片并排显示
添加多语言图片切换功能,根据语言显示不同的赞助和联系方式图片
优化Kiro OAuth流程,增加自动关联凭据到Pools的功能
2025-12-21 21:09:16 +08:00
Ravens2121
2dc7514d37
feat: add claude-kiro-oauth provider OAuth authorization support
...
Amp-Thread-ID: https://ampcode.com/threads/T-019b4067-8a07-72db-b29f-20e581b9ea58
Co-authored-by: Amp <amp@ampcode.com>
2025-12-21 18:45:26 +08:00
hex2077
abe6a15b93
fix(claude-kiro): 修复社交认证方法下未检查profileArn的问题
...
当使用社交认证方法时,添加对profileArn的检查以避免潜在的错误
refactor(ui-manager): 改进console日志的错误处理
增强日志系统对复杂对象和错误的处理能力,避免字符串化时出现异常
2025-12-21 17:25:18 +08:00
hex2077
96587f1ad0
refactor(provider-pool-manager): 用LRU策略替换轮询算法以均衡分配
...
改进提供商选择逻辑,从简单的取模轮询改为基于最后使用时间和使用次数的LRU策略,确保在动态变化的可用列表情况下也能平均分配到各个账号
2025-12-20 17:43:50 +08:00
hex2077
fa8150701f
feat(i18n): 添加多语言支持并实现国际化功能
...
实现中英文双语支持,包括:
1. 添加i18n.js核心模块处理语言切换和翻译
2. 创建语言切换器组件
3. 更新所有UI文本使用翻译键
4. 添加I18N_GUIDE.md文档说明使用方法
5. 修改样式适配语言切换器
6. 添加adm-zip依赖支持配置文件打包下载
7. 更新登录页面支持多语言
8. 重构toast消息显示支持多语言标题
2025-12-20 17:27:30 +08:00
hex2077
f3761a4254
docs: 更新README文档并优化安装脚本和UI交互
...
- 更新三语言README,简化快速启动流程,强调Web UI可视化配置
- 移除详细的启动参数文档和模型协议关系图,简化文档结构
- 优化install-and-run脚本,添加--pull参数支持代码更新,统一依赖安装流程
- 改进Kiro服务的机器码生成机制,基于配置生成唯一ID而非MAC地址
- 优化OAuth授权UI,移除冗余的文件路径提示和回调地址警告
- 修复modal.js中OAuth凭据文件路径字段的兼容性检查
- 添加Qwen OAuth端点的初始化配置
- 优化service-manager降级逻辑注释说明
2025-12-20 15:23:56 +08:00
hex2077
e87d74f517
feat: 添加OAuth授权凭据自动生成功能并优化UI
...
- 实现OAuth授权成功后自动生成凭据文件并填充路径
- 添加"生成凭据"按钮到各提供商配置表单
- 优化文件上传组件的样式和布局
- 将autoLinkProviderConfigs函数导出供服务初始化使用
- 新增oauth_success事件处理逻辑
- 调整授权模态框位置避免遮挡
2025-12-19 18:05:32 +08:00
hex2077
e943819539
feat(配置管理): 添加提供商URL配置支持并优化UI
...
扩展配置系统以支持自定义提供商API端点URL,包括Gemini、Kiro、Qwen和Antigravity服务的可配置基础URL。同时优化了配置表单的UI,添加了可选标记和占位符提示。
- 在config.json.example中添加各提供商URL配置项
- 修改各提供商核心服务以支持自定义URL
- 更新配置管理器和UI管理器以处理新增URL字段
- 优化前端配置表单,添加可选标记和占位符
- 扩展字段映射和顺序定义以包含URL配置项
- 改进授权模态框,添加手动URL输入支持
2025-12-19 16:31:48 +08:00
hex2077
5af83e4473
feat(gemini): 添加新的 gemini-3-flash 模型并修复令牌过期检查
...
添加 gemini-3-flash-preview 和 gemini-2.5-flash 模型到 PROVIDER_MODELS 和映射表
修复 isTokenExpiringSoon() 方法在没有 expiry_date 时的默认返回值
添加调试日志打印可用模型列表
2025-12-18 16:57:42 +08:00
hex2077
d5417d9890
feat(provider): 添加自定义名称字段并优化OAuth处理流程
...
添加自定义名称字段以允许用户为节点设置个性化名称
重构OAuth处理逻辑,统一各提供商的授权流程
增加超时处理并优化错误提示
调整UI显示顺序和字段布局
2025-12-17 13:45:02 +08:00
hex2077
3887243528
feat(usage): 添加用量查询功能及界面
...
实现完整的用量查询功能,包括:
1. 新增用量查询页面和导航入口
2. 为各API服务适配器添加用量查询接口
3. 实现用量数据缓存机制
4. 添加响应式用量数据展示界面
5. 支持自动刷新和手动刷新用量数据
6. 显示模型配额、剩余用量和重置时间等信息
2025-12-16 15:29:15 +08:00
hex2077
7c976bdf0a
feat(安全): 添加后台登录密码配置功能
...
实现后台管理密码的设置和更新功能,包括:
- 在前端添加密码输入框和显示/隐藏切换按钮
- 在后端添加密码验证和存储逻辑
- 密码修改后需要重新登录生效
2025-12-14 20:20:31 +08: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
f851ac8bb2
fix(provider-pool): 修复提供者使用计数和健康状态更新逻辑
...
更新提供者使用计数时增加最后使用时间记录
修复流式请求和一元请求成功后的使用计数更新
移除不必要的模型映射和配置
调整服务选择时跳过使用计数的逻辑
2025-12-13 00:45:49 +08:00
hex2077
1c46bb547b
perf(api): 为所有API服务添加HTTP连接池配置防止资源泄漏
...
为Claude、OpenAI、Gemini、Qwen等API服务添加HTTP/HTTPS agent配置,设置keepAlive、maxSockets等参数以限制连接池大小,避免资源泄漏问题。同时统一了各服务的axios配置方式,提高网络请求的稳定性和性能。
2025-12-10 15:45:08 +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
lethanhson9901
abf32f6cb5
fix(antigravity): implement automatic project ID discovery and prevent overwrite
...
This commit introduces automatic Cloud Code project discovery for the Antigravity provider. It ports the onboarding logic from gemini-core.js, handles missing credentials by triggering the auth flow, and ensures the discovered Project ID is correctly passed to the request payload builder, fixing the 403 Permission Denied error caused by random ID generation.
2025-12-09 10:21:37 +07:00
hex2077
3ec219bcc7
feat: 增加模型token限制并添加AWS登录提示信息
...
增加Gemini和Antigravity模型的输入输出token限制,同时在AWS登录表单中添加必要的提示信息,确保用户正确配置授权文件
2025-12-06 16:36:22 +08:00