Skip to content

Releases: lza6/new-api-Max

v1.3.114–116 — 按分组切换计费方式(token计费分组)+ 密钥加密修复 + 类型全绿

Choose a tag to compare

@lza6 lza6 released this 09 Oct 02:05

v1.3.114–116 — 按分组/渠道切换计费方式 + 渠道密钥加密修复 + 前端类型全绿

v1.3.114 feat: 计费表达式支持 group / channel 变量

单模型可同时支持多种计费方式(如某些渠道按 token、某些按次),无需新增存储维度、不改表、不迁移。

  • pkg/billingexpr:RequestInput 增 Group / ChannelID,编译环境与运行时 env 同步支持
  • 预扣费从 RelayInfo 填充;结算时重新取最终值(auto 分组重试/渠道 fallover 会改变二者,沿用冻结值会按错误维度计价)
  • 任务(异步)计费同样注入

v1.3.115 test: 「token 计费分组」阶梯计费回归测试

  • 6 例覆盖 199999/200000/499999/500000/1200000/0 边界
  • 断言其他分组在 800K 上下文下仍固定按次价(分文不变)
  • TestElseBranchEqualsLegacyPerRequestPrice:断言 else 分支与现状按次价逐分组等值,防止「改计费方式误伤其他分组」

v1.3.116 docs: 按 token 计费分组运维说明

新增 计划书/ops/token-billing-group.md:改价需同时改 4 处、强制变更安全流程、排障表、日志字段说明。

顺带交付

  • v1.3.112 fix: 渠道密钥加密 2 个 P1 —— Codex OAuth 刷新直写绕过 BeforeSave 导致明文落库(已实测复现 + RED 验证);关闭开关对已加密库会致全渠道 401(订正误导注释 + 新增启动自检)
  • v1.3.113 fix: 前端 typecheck 从 9 错 → 0 错(React.ElementType 收窄为 ComponentType<{className?: string}>,修 nav-group / chat-presets-item / account-bindings 共 8 处 + 补缺失默认值)
  • v1.3.109–111 fix: CSP 拦截 blob: 导致游乐场图生图「点发送无反应」(P1);登录失败按注册来源精确提示「请用 X 登录」

生产验证(真实请求)

模型 分组 prompt_tokens matched_tier fixed_price
deepseek-v4.1-flash token计费 690 tok_lt200k $0.001
deepseek-v4.1-flash token计费 333,354 tok_200k_500k $0.0015
deepseek-v4.1-flash token计费 746,694 tok_ge500k $0.002
glm-5.3-flash token计费 500 tok_lt200k $0.004
glm-5.3-flash token计费 250,000 tok_200k_500k $0.005
glm-5.3-flash token计费 560,000 tok_ge500k $0.006
两模型 default(对照) — per_request 与原价完全一致

v1.3.109 — 修复 CSP blob: 拦截导致游乐场图生图无法发送 (P1)

Choose a tag to compare

@lza6 lza6 released this 08 Oct 10:18

v1.3.109 — 修复:CSP 拦截 blob: 导致游乐场图生图「点发送无反应」(P1)

问题

生产环境游乐场中选择参考图后点击「发送」无任何反应:无请求发出、无报错、文字与附件仍留在输入框。

根因链

  1. Caddy CSP 的 connect-src 'self' 未放行 blob: → 游乐场把附件 blob: URL fetch 成 data: URL 时被 CSP 拒绝;
  2. web/src/components/ai-elements/prompt-input.tsx 的 Promise.all(...).catch(() => {}) 静默吞掉该拒绝 → onSubmit 永不调用;
  3. 同时 img-src 缺 blob: → 附件缩略图预览也不显示。

修复

  • deploy/Caddyfile.example:img-src 与 connect-src 各放行 blob:,并补充注释说明二者缺失各自的症状;
  • prompt-input.tsx:附件转换失败不再静默吞错,改为上报 onError(新增 code: 'attachment_conversion');
  • playground-input.tsx:接住 onError 并 toast 提示,用户可见可诊断;
  • i18n 7 语言新增对应文案(按行插入,未做 JSON 重序列化);
  • 新增回归测试 prompt-input-attachment.test.tsx(2 例):blob 读取失败必须上报 onError 且不得调用 onSubmit;正常路径应提交转换后的附件。

验证

  • 生产 Caddyfile 已同步修改并 reload,新 CSP 响应头经实测确认生效;
  • Playwright 真实浏览器 E2E(打生产):图生图请求成功发出,请求体内联 data:image/png;base64 的 image_url part,结果 {thumb:1, delivered:1, userText:true, rawMd:false};
  • 单元测试:NODE_OPTIONS=--max-old-space-size=3072 bunx vitest run src/components/ai-elements/__tests__/prompt-input-attachment.test.tsx → 2 passed;
  • typecheck / lint:改动文件无新增错误。

部署

已蓝绿零停机部署至生产(new-api:v1.3.109),公网 200,/api/status 返回 1.3.109。

v1.3.108 — 渠道系统提示词透传路径修复 (P1) + 游乐场思考程度

Choose a tag to compare

@lza6 lza6 released this 08 Oct 10:21

v1.3.108 — 渠道系统提示词透传路径修复 (P1) + 游乐场思考程度可调/可关

P1:渠道内置系统提示词在透传路径不生效

现象:渠道同时配置 system_prompt 与 pass_through_body_enabled(如渠道 50)时,用户使用游乐场/接口都拿不到内置提示词,提示词被静默丢弃。

根因:非透传分支已做注入,但透传分支直接转发原始 body,完全跳过注入。

修复:

  • relay/chat_completions_via_responses.go 新增 injectSystemPromptIntoPassThroughBody(JSON 级改写 messages,其余字段原样透传)+ applySystemPromptIntoMessages;
  • relay/compatible_handler.go 透传分支在 SystemPrompt 非空时调用;注入失败退回原始体(不阻断请求)。

测试:chat_completions_via_responses_test.go 新增 4 例(前插 / override 合并 / 无 override 保留 / 无提示词 noop)。

注意:渠道级 system_prompt 注入共 5 处路径(claude / gemini / codex / chat-via-responses / 透传)——改任一处务必检查是否遗漏。

游乐场思考程度(reasoning_effort)

参数面板新增「思考程度」下拉(默认 / 关闭(none) / 低 / 中 / 高)+ 启用开关;仅启用且非空时发送。

v1.3.107

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。

v1.3.106

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。

v1.3.105

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。

v1.3.104

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。

v1.3.103

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。

v1.3.102

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。

v1.3.101

Choose a tag to compare

@lza6 lza6 released this 07 Oct 19:09

详见 计划书/reports/v1.3.101-104-change-report.html 与 commit 历史。