Skip to content

iPaper 1.12.0 — 结构化翻译额度:更大默认值、可调整上限与增额续跑

Choose a tag to compare

@ifzzh ifzzh released this 20 Sep 07:49
· 36 commits to main since this release

iPaper 1.12.0 修掉结构化翻译被自身小额度挡住的问题:整篇翻译默认额度提高、上限可按任务与部署调整、已停止的任务可以增额续跑。仅 Web 变化;Translation/Document Worker 复用已验证的 1.2.0 摘要。

原因

用户选 15 页 / 271 块 / 0 可复用,估算 245 次请求、273,044 输入、247,782 输出 token,被应用自己的 200 次请求上限挡住(不是供应商余额)。旧实现把默认值与上限写成同一常量,API 只能降低;旧任务保存独立的 budget_json,续跑入口不接受新额度。

A. 额度

项目 原默认=硬上限 新默认(整篇翻译) 部署上限(可配置)
模型请求 200 500 2,000
输入 token 保守预留 500,000 1,000,000 5,000,000
输出 token 预留 250,000 500,000 2,000,000
累计执行时间 2 小时 4 小时 12 小时
  • 只有 translate / parse_translate / retranslate 使用新值;概览、深度解读、分析导出、划词翻译与纯解析保持 200/50 万/25 万/2 小时,API 也无法调大。
  • 部署上限可用 IPAPER_TRANSLATION_MAX_REQUESTS / _INPUT_TOKENS / _OUTPUT_TOKENS / _SECONDS 覆盖;非正整数配置启动即失败,不静默夹取。
  • 超出时明确指出是哪一项(所需 vs 当前额度)并提供一键"使用所需额度";估算分别给出基础请求、允许的 429 重试余量与两者之和,不再把重试上限称作"最多请求数"。
  • 估算与提交使用同一份已确认额度;页码/语言/解析版本/额度变化都会重新估算,过期预览不能提交。
  • 任务详情把"已预留"(保守预扣)与"供应商实际用量"分开显示,缺失的实际用量不补零。
  • 保留单请求 120 秒、SDK 重试关闭、全局并发 2、每 owner 一个活动任务、队列/文件配额、取消与防重复提交。

B. 增额续跑

  • 新增只读 POST /api/processing/jobs/<id>/resume-plan:已用量 + 剩余范围估算(应用单元检查点)+ 所需额度与部署上限。
  • POST /api/processing/jobs/<id>/resume 支持可选 budget:校验 owner/CSRF/类型/状态/上限,不得低于已用量,新额度是整个任务的累计总额;变更与排队同事务完成并记录前后额度事件。重复点击不重复排队。
  • 已完成的块与子单元继续复用;解析后超预算保留解析结果并展示新的调整入口,等用户明确继续。

组件

仓库 版本 Registry 摘要
ifzzh520/ipaper 1.12.0 sha256:2a9b2b602fea34c2d01b8184d6efb1c891a32d50fffaed1d3d649f7d0208c943
ifzzh520/ipaper-translation-worker 1.2.0 sha256:a5fa3b4316802c15e99a7387baa49604166fb6092a1aca34b8c5e34de3d52003
ifzzh520/ipaper-document-worker 1.2.0 sha256:2c501ad68bdfc2e282518a813c46e548f598b1af85acc1069058741a45587298

源码提交 494cca0。

验证

  • tests/test_translation_budget.py 19 项:类型边界、部署上限与非法输入、环境变量覆盖与非法配置失败、截图量级(271 块 / 245 基础请求)在旧 200 上限被拒而新默认通过、超限维度明细、增额续跑用量保留与幂等、低于已用量/超上限拒绝、只读续跑计划、已完成单元不重复、非翻译类型拒绝、预扣与实际用量分离、跨 owner 拒绝。
  • 浏览器套件 translation-budget.spec.ts(独立配置 + 合成假云/假模型):默认与上限来自 API、解析前如实说明、超限项与一键调整、超上限与非法值就地拒绝、任务记录确认额度、预扣与实际用量分列、停止任务续跑全流程。
  • 门禁:Docker 非集成测试 539 passed, 1 deselected, 84 subtests passed;前端类型/20 单元/构建;统一 16 与 topics 2、daily 1、keywords 3、metadata 2、reading-tools 3、structured 1、understanding 1、translation-budget 2;四份 pip-audit 0;Trivy 源码 0;三镜像 0 个 HIGH/CRITICAL;三 SBOM;dev/main CI 通过。
  • 正式只读复核:报告论文解析仍为 271 块(现已有 265 块可复用、仅需 6 次请求,样例已变化);同账号另一篇 223 块 / 0 可复用的论文在旧上限因输出预留 292,348 > 250,000 被判超限,新默认 500,000 通过。复核不创建任务、不调用模型。

限制与回退

  • 额度是准入上限,不代表必然完成;实际耗时与用量取决于供应商。提高额度不会让任务主动多发请求。
  • 回退基线 Web 1.11.0 + Workers 1.2.0;本轮无数据库 schema 改动,回退只切镜像。