Skip to content

RelayGo v1.0.3

Latest

Choose a tag to compare

@resooo resooo released this 08 Sep 06:49

RelayGo v1.0.3

Your AI Relay, Ready to Go — 本次聚焦「上游请求数限流」的自适应治理,并修复 Android 运行时崩溃。

✨ 新增:自适应 QPS/RPM 挡板

上游(OpenAI / Anthropic 等)除了按 token 限流(TPM),还会按请求数限流(RPM / QPS)。此前撞这类 429 只能反复换 Key,容易把整批 Key 一起打进冷却。v1.0.3 为每个 Key 建立了独立的「每分钟请求上限」学习通道:

  • AIMD 自适应:撞上游 QPS/RPM 429 时乘性下调学习值(×0.7),持续 30s 无 429 则加性上调(+5%),自动贴近上游真实上限。
  • 软挡板接入令牌桶:即使 Key 未配置 maxRequestsPerMinute(默认不限),一旦学习到上限也会自动收紧本地发速,从源头平滑掉队、减少无谓的 429 中断。
  • 同 Key 等待重试:识别为「可恢复请求数限流」时,优先采用上游 Retry-After,否则按本地令牌恢复时间退避,单请求等待预算 5s,超预算才返回 429 + Retry-After 并切换 Key —— 与既有 TPM 分支完全对称。
  • 安全边界:学习值受下限 6 / 上限 6000 QPM 保护(防止被压到近零卡死或无限上调再撞墙),首次撞墙以 30 QPM 为学习起点;从未限流过的 Key 不会凭空建立挡板。
  • 可观测:限流事件会记录 old → new 学习上限,便于在统计报表中回溯每个 Key 的真实吞吐。
  • 开关:设置页新增「自适应 QPS/RPM 挡板」开关(默认开启),旧数据升级后自动继承默认值。

🎨 优化:Key 管理页

  • 提供商分组标题行可点击折叠 / 展开,折叠后仅保留标题行,多提供商 + 大量 Key 时一屏可览。
  • 搜索态自动强制展开所有命中分组;新增「全部展开 / 折叠」快捷入口。
  • 「测试全部」「全部删除」等批量操作收敛到分组工具条,降低误触。

🐛 修复:Android 运行时崩溃(白屏)

  • 本 APK 以 compileSdk 36 / targetSdk 36 构建,解决 file_selector_android、path_provider_android、url_launcher_android 等插件要求 SDK 36+ 时旧包(targetSdk 34)在部分设备上启动白屏 / 崩溃的问题。
  • 版本标识同步为 versionName 1.0.3 / versionCode 3(com.relaygo.app)。

🧪 质量

  • flutter test 全量 234 个用例通过;新增 5 个 QPS 自适应专项用例(下调 / 上调 / 上下限保护 / 生效上限合成 / 恢复等待)。
  • 修正 2 个既有 TPM 用例的用量量级(改用真实 TPM 规模,避免与 minLearnedTpm 下限保护语义冲突);经基线比对确认非本次回归。

📦 下载与安装

文件 说明
relaygo-v1.0.3-android.apk Android arm64 Release 包(11.3 MB)
# 覆盖安装(保留数据)
adb install -r relaygo-v1.0.3-android.apk

# 若从 v1.0.2 覆盖安装后仍白屏,请先卸载再装
adb uninstall com.relaygo.app && adb install relaygo-v1.0.3-android.apk

SHA-256:573f89fb1ba9fd7a444b01081822bcea2182ce20d8de88ab3bad25a7867ebde1

🔗 相关链接