Fetching metadata from the HF Docker repository...
-
大香蕉支持设置4k和2k
-
修复签名传入
-
加上缺失的参数兜底操作
-
feat: 统一参数处理模块 + 多 API 格式参数支持
ZhaoShanGeng
## 新增文件
### 1. src/utils/parameterNormalizer.js (新建)
统一参数处理模块,将 OpenAI、Claude、Gemini 三种格式的参数统一转换为内部格式:
- normalizeOpenAIParameters() - 规范化 OpenAI 格式参数
- normalizeClaudeParameters() - 规范化 Claude 格式参数(处理 thinking.budget_tokens)
- normalizeGeminiParameters() - 规范化 Gemini 格式参数(处理 thinkingConfig.thinkingBudget)
- toGenerationConfig() - 转换为上游 API 的 generationConfig 格式
### 2. src/utils/converters/common.js (新建)
转换器公共模块,提取三个转换器的公共函数:
- getSignatureContext() - 获取思维签名和工具签名
- pushUserMessage() - 添加用户消息
- findFunctionNameById() - 根据工具调用 ID 查找函数名
- pushFunctionResponse() - 添加函数响应
- createThoughtPart() - 创建带签名的思维 part
- createFunctionCallPart() - 创建带签名的函数调用 part
- processToolName() - 处理工具名称映射
- pushModelMessage() - 添加模型消息
- buildRequestBody() - 构建 Antigravity 请求体
- mergeSystemInstruction() - 合并系统指令
### 3. src/utils/toolConverter.js (新建)
统一工具定义转换模块:
- convertOpenAIToolsToAntigravity() - OpenAI 工具格式转换
- convertClaudeToolsToAntigravity() - Claude 工具格式转换
- convertGeminiToolsToAntigravity() - Gemini 工… -
额外创建openai、claude、gemini的转化器
-
gemini修复思考模型调用工具后报错
-
Merge branch 'binary-test' into binary-build
liuw1535
-
初步添加claude接口
-
refactor: 代码模块化重构与前端优化
ZhaoShanGeng
## 代码重构
- 将 utils.js (500+行) 拆分为6个模块:
- openai_mapping.js: 请求体构建
- openai_messages.js: 消息格式转换
- openai_tools.js: 工具格式转换
- openai_generation.js: 生成配置
- openai_system.js: 系统指令提取
- openai_signatures.js: 签名常量
- 将 client.js 的流式解析抽取为 stream_parser.js
## 路径与常量统一
- 新增 paths.js 统一处理 pkg 打包和开发环境的路径
- 新增 constants/index.js 集中管理所有魔法数字和配置默认值
## 错误处理
- 新增 errors.js 统一错误类层次结构
- 新增 Express 错误处理中间件
## Token管理优化
- 新增 TokenStore 类处理文件读写
- 文件操作改为异步 (async/await)
- API方法 (addToken/updateToken/deleteToken/getTokenList) 改为异步
- 额度耗尽策略新增高性能可用列表维护
## 前端优化
- 防闪烁: 页面加载前根据登录状态和Tab状态设置初始显示
- 字体异步加载: 使用 media=print onload 技术避免阻塞渲染
- 本地背景图: 替代远程 Unsplash 图片加快加载
- Tab状态持久化: 保存到 localStorage
## 新功能
- 新增 passSignatureToClient 配置控制签名透传
- 轮询策略默认改为 request_count -
兼容google的接口(思考模型不能连续调用工具)
-
优化代码结构、前端逻辑、认证提示、前端添加原生axios和系统提示词收集配置的配置
-
refactor: 移除工具调用图片处理,新增 getDefaultIp 函数
ZhaoShanGeng
修改文件:
- src/utils/utils.js:移除 transformToolOutputForImages 函数,新增 getDefaultIp 函数获取本机 IP -
feat: 思维链/工具签名缓存、适配更多工具调用格式
ZhaoShanGeng
修改文件:
- src/api/client.js:流式/非流式响应透传 thoughtSignature,写入全局缓存供后续请求复用
- src/utils/utils.js:历史 assistant 消息补充思考块+签名块,支持 Claude/Gemini 不同签名,工具名 sanitize
- src/server/index.js:流式响应中透传 reasoning_content 和 thoughtSignature
新增文件:
- src/utils/thoughtSignatureCache.js:按 sessionId + model 维度缓存思维链签名和工具签名
- src/utils/toolNameCache.js:工具名映射缓存,sanitize 后可还原原始工具名 -
feat: 错误信息返回客户端、自动重试、工具调用格式适配、思考模型多轮工具调用
ZhaoShanGeng
文件改动:
src/server/index.js:
- 新增 with429Retry() 通用重试工具函数,处理 429 状态码自动重试
- 新增 buildOpenAIErrorPayload() 构造 OpenAI 兼容错误响应
- 错误信息直接返回客户端:HTTP 状态码 + { error: { message, type, code } }
- 流式/非流式请求均使用 with429Retry 包装,支持配置重试次数
- 移除旧的错误处理逻辑,改为标准 OpenAI 错误格式
src/utils/utils.js:
- 新增 sanitizeToolName() 规范工具名称为 Vertex 要求格式 ^[a-zA-Z0-9_-]{1,128}$
- 新增 DEFAULT_THOUGHT_SIGNATURE 思维链签名占位常量
- handleAssistantMessage() 新增 enableThinking 参数
- 思考模型多轮工具调用支持:历史 assistant 消息补充思考块 + 签名块
- openaiMessageToAntigravity() 传递 enableThinking 参数
- convertOpenAIToolsToAntigravity() 使用 sanitizeToolName 规范工具名
src/api/client.js:
- 新增 createApiError() 创建带状态码的 API 错误对象
- handleErrorResponse() 使用 createApiError 抛出错误,保留原始状态码和响应体
src/config/config.js:
- 新增 retryTimes 配置项,默认 3 次重试
config.json:
- other 新增 retryTimes: 3 配置
public/index.html:
- 新增 429重试次数 配置输入框
public/app.js:
- loadConfig() 加载 retryTimes 配置
- 表单提交时保存 retryTimes 配置
API.md:
- 新增 429 自动重试配置说明文档 -
feat: 多项修复与代码简化
ZhaoShanGeng
文件改动:
src/utils/utils.js:
- 修复非思考模型识别: isEnableThinking() 从 endsWith 改为 includes 匹配 -thinking
- 修复工具参数 Schema: EXCLUDED_KEYS 新增 anyOf/oneOf/allOf 等过滤
- convertOpenAIToolsToAntigravity() 确保顶层有 type 和 properties
- 新增 prepareImageRequest() 统一图片请求处理
- 移除 httpAgent/httpsAgent,DNS 优化移至 httpClient.js
- 简化 getDefaultIp() 遍历所有网卡
src/server/index.js:
- 修复工具调用流式响应: tool_calls 添加 index 字段符合 OpenAI schema
- 使用 prepareImageRequest() 简化图片模型处理
- 使用 registerMemoryPoolCleanup() 简化内存清理
src/utils/httpClient.js (新增):
- 统一 HTTP 请求和 DNS 解析优化 (IPv4 优先回退 IPv6)
public/app.js:
- 前端额度显示不取整: percentage 从 toFixed(0) 改为 toFixed(2)
- 重构 createTokenFormBody() 提取表单生成逻辑
src/api/client.js:
- 引入 httpClient 统一 HTTP 请求处理
- 简化代码结构
src/utils/memoryManager.js:
- 新增 registerMemoryPoolCleanup() 工具函数
src/config/config.js:
- 新增 getProxyConfig() 导出
src/utils/configReloader.js:
- 移除重复的 getProxyConfig(),改为从 config.js 导入
- 默认 thinking_budget 从 16000 改为 1024
src/constants/oauth.js:
- 新增 OAUTH_SCOPES 常量统一管理
src/routes/sd.js:
-…
-
feat: 大规模性能优化与功能增强
ZhaoShanGeng
### 新增功能
1. 自定义思考预算:支持 reasoning_effort 参数 (low:1024/medium:16000/high:32000) 和 thinking_budget 参数 (1024-32000)
2. 适配 DeepSeek 思考格式:reasoning_content 字段单独输出,避免思维链混在 content 中
3. 资格校验自动回退:无资格时自动生成随机 ProjectId,避免添加 Token 失败
4. 真 System 消息支持:开头连续多条 system 与 SystemInstruction 合并
5. 三种轮询策略:round_robin / quota_exhausted / request_count
6. 心跳机制:SSE 心跳防止 Cloudflare 等 CDN 超时断连
7. 模型缓存:自动缓存模型列表和额度,减少 API 请求频率
### 前端优化
- 重构 Web 管理界面,优化 PC 体验
- 隐私模式:默认隐藏敏感信息(Token、ProjectId 等)
- 新增设置项:思考预算、图片地址、轮询策略、内存阈值、心跳间隔、字体大小
- 采用 MiSans + Ubuntu Mono 字体,增强可读性
### 性能优化
- 内存占用:从 100MB+ 降至 50MB+,进程数从 8+ 减少为 2 个
- 对象池复用:减少 50%+ 临时对象创建,降低 GC 频率
- 预编译常量:正则表达式、格式字符串等预编译
- LineBuffer 优化:高效流式行分割
- 自动内存清理:堆内存超阈值时自动触发 GC
### Bug 修复
- Token 刷新失败时返回 400 而非 401,避免触发 JWT 登出
- 修复流式响应内存泄漏问题
-
非思考模型支持ccr的工具调用格式
-
增加token计数,增加前端额度查询,更新readme
-
追加op模型的适配,同时支持思考和非思考
-
小追加
-
优化生图功能,优先存在本地,然后对外提供链接,修复轮询token的bug
-
添加复用id机制,修复潜在的问题,添加npm run refresh刷新所有token的功能
-
优化路径分布