Fetching metadata from the HF Docker repository...
-
大香蕉支持设置4k和2k
-
修复签名传入
-
集中错误处理,增加openai接口的兼容性
-
初步解决合并冲突
-
Merge branch 'binary-test' into binary-build
liuw1535
-
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 -
使用统一httpclient,复用axios配置逻辑
-
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 登出
- 修复流式响应内存泄漏问题
-
解决超出上下文后导致错误禁用token的bug
-
简单兼容一下sd的接口格式,方便工具调用
-
增加token计数,增加前端额度查询,更新readme
-
追加op模型的适配,同时支持思考和非思考
-
优化生图功能,优先存在本地,然后对外提供链接,修复轮询token的bug
-
更新生图功能
-
使用axios替换fetch,优化代码结构,添加超时和代理支持,改为从.env加载
-
为非流也加上请求器逻辑,优化重复代码
-
添加指纹请求器,添加真正的非流
-
Reapply "添加指纹请求器,使用useNativeFetch: false启用,并且添加回退机制"
This reverts commit 21271e5bc45cbe45a58cc2a17a42aed2c33029bd. -
Revert "添加指纹请求器,使用useNativeFetch: false启用,并且添加回退机制"
This reverts commit 7d6ec494eb61113b4c1174a5ae90472e4e0df996.
-
添加指纹请求器,使用useNativeFetch: false启用,并且添加回退机制
-
特殊情况下为工具调用生成备用的id
-
更智能的提醒
-
优化路径分布