vibe-code
795cc99faa
feat: 软踢预警线提前至 1.95M 用量墙与 10万余额墙
...
- should_soft_evict: usage ≥ min(effective_limit, 1.95M) 或
(balance_at_sync < 10万 且 usage>0)——usage>0 防小额初始池(B0<10万)
模型误杀永久死锁
- should_restore_model 恢复对称: usage < min(额度,1.95M) 且
(余额≥10万 或 usage==0),否则踢了立即被同步恢复成抖动
- _check_request_block 对已软踢条目(*-limit-reached)恒 429,
防踢后 1.95M~2M 区间小请求放行→路由原名缺失→400
- startup_audit / restore_blocked_models / restore_model_if_healthy
统一接入判定; SOFT_EVICT_USAGE_LIMIT/SOFT_EVICT_BALANCE_LIMIT env 可调
- docs §7.6 新增软踢预警线小节(两墙条件/恢复对称/前置联动/2.5% 采集代价)
- 数字用例 9/9 验证(踢/不踢/死锁防护/防抖动/动态墙取 min)
2026-08-13 08:56:26 +00:00
vibe-code
6a2760bd03
feat: 每日消耗任务触发时点 23:00 改为 23:20
...
- volc_limit_sync:_maybe_trigger_daily_consume 改分钟级判断(23:20 起触发),
线程内 0-10 分钟随机抖动保留,实际执行窗口 23:20~23:30
- volc_consume:main 手动运行门卫同步 23:20 窗口(--force/--dry-run 不受限)
- docs/volc-quota-notes §9:consume clamp2 余额快照滞后在最新思路(§4.2 量化
L=149,616)下确认为必改项,方向待定;消耗任务口径同步收紧标记 [x]
- 全仓文档/注释 23:00 统一同步为 23:20(AGENTS/README/docker-compose/两 docs)
2026-08-13 06:08:26 +00:00
vibe-code
f86aa59af1
docs: 采纳独立复核精化 v6 注释与不变量(reserve 阈值/consume 快照口径)
2026-08-13 05:51:41 +00:00
vibe-code
729b1a3987
chore: 移除撞墙验证临时 80w 覆盖,恢复统一 2M 默认限额
2026-08-13 05:19:33 +00:00
vibe-code
6edb40d01e
chore: 临时 80w 限额覆盖用于撞墙验证(验证后移除)
2026-08-13 03:21:22 +00:00
vibe-code
8a6416f28f
feat: 前置闸门预计算输入 token 增加 DEBUG 日志
2026-08-13 03:21:22 +00:00
vibe-code
82502dda05
fix: 前置闸门 reserve 改用 token_counter 精确估算输入 token
...
reserve 从单凭 max_tokens fallback 50k 改为:
reserve = litellm.token_counter(messages) + max_tokens(声明值)
- 输入 token 精确计数(未知模型 fallback cl100k_base,对中文偏高更安全)
- 输出用请求声明的 max_tokens,未声明时 fallback PREBLOCK_RESERVE_TOKENS
- 修复 2M 采集上限被单个大请求(176k output)击穿的问题
2026-08-12 14:58:04 +00:00
vibe-code
23778a8f7c
feat: Snapshot-Offset 限额策略替换 BUFFER 盲猜
...
核心改动:不再用 BUFFER 猜滞后窗口消耗,而是用同步时点快照
直接计算累计限额。
- BUFFER=300000 → SMALL_BUFFER=50000(仅覆盖非消耗性跳降)
- get_effective_limit: limit = B0 - SMALL_BUFFER,不依赖 current_usage
- 同步循环:写 balance_at_sync + usage_at_sync 替代 remaining/stable_limit
- 突发检测/低额度判断:读 balance_at_sync 替代 remaining
- volc_consume.py: vls.BUFFER → vls.SMALL_BUFFER
- debug/debug_volc_sync.py: 同步更新
- docs/volc-quota-notes.md: 新增 §7.6 v6 设计文档,更新各节口径
2026-08-12 12:22:22 +00:00
vibe-code
97484cb7f8
fix: v5 恢复 v2 骨架,修正 v4 误拦
...
v4(stable = balance - BUFFER)把「剩余余额」当「从 0 累计的上限」,
U>0 时低估初始池:15:09:51 实测 Bal=596,869(剩 59.7 万)却被
usage 1,696,135 >= 296,869 全拦。守恒反推(U+B=2,293,004)证明
v2 公式数学正确——B 滞后收敛后满足 B = B0 - U,今日消耗 1.696M <
B0 2.293M 无扣费(此前「超余额 13.8 万扣费」基于滞后快照的推断
不成立)。v5 = 恢复 v2(stable = usage + balance - BUFFER),
残留风险仅同步时点 B 滞后(13:36 高估 ~50 万),由 BUFFER + 低余额
加密同步覆盖。文档同步:volc-quota-notes §7.3/§7.5、merge-auto-consume §4.5。
2026-08-12 07:21:13 +00:00
vibe-code
dd349b64cf
fix: 限额改 v4 冻结快照,余额红线防扣费
...
v2 的 stable_limit = usage + balance - BUFFER 依赖余额 API 随消耗实时递减,
实测滞后(08-12 快照 1,558,307 在 usage 涨 45 万期间不动)导致池膨胀、限额
虚高,放行到扣费区(当日超余额 13.8 万已扣费)。
扣费口径(用户确认):是否扣费只取决于当下免费额度,超出即扣费,采集量只
决定明日发放。v4:stable_limit = balance - BUFFER 冻结快照,本地 usage 实时
撞线即拦,等价于本地实时扣减余额;effective = min(2M 配额, stable_limit)。
新增 docs/volc-quota-notes.md 额度机制速查;merge-auto-consume.md 补 §4.5。
2026-08-12 06:58:03 +00:00
vibe-code
c6c122426a
fix: 同步间隔打印重算 + 恢复/审计口径对齐,清理死代码
...
- 同步后按新 Min Rem 重算'下一次同步'间隔(compute_sync_interval 唯一实现),
修复'旧 interval + 新 Min Rem'混打误导;删除过时的五档注释
- restore_blocked_models / startup_audit 补 MONITORED hash 过滤,
与 soft_evict/请求闸门/即时恢复口径一致,防误恢复/误踢同名非监控条目
- 删除 THRESHOLD 死常量
2026-08-12 03:53:02 +00:00
vibe-code
505a55987f
fix: 限额恢复即时解锁 + 前置预留闸门,修复有额度却被禁
...
- 同步守护写健康限额后立即恢复被软踢模型(restore_model_if_healthy),
不等 restore_blocked_models 的 30min/4h 闸门,修复日返还额度到账后
模型带额度空转被禁(no healthy deployments)
- 前置闸门改为 usage + reserve >= limit 即拦截,预留优先取请求
max_tokens(零采集损失),堵住并发请求集体撞线的超限窗口
2026-08-12 03:40:44 +00:00
vibe-code
56b46652f2
feat: 日志统一加北京时间戳(_tagged_print 一处生效,实测 1.33us/次)
2026-08-11 15:10:24 +00:00
vibe-code
b82fe3aa7e
refactor: 余额分档退化为低余额加密两档,常规统一 30 分钟
...
按上一轮分析彻底落地:余额驱动的慢速档无意义(日返还下余额高=常态,
返还/过期/消耗随时发生)。仅保留 <10万 5min / <30万 10min(返还解锁、
扣费检测要紧),≥30万 统一 30min;慢同步完全交给 is_idle(×4 上限 60min)。
模式打印随分档简化并补充空闲状态。
2026-08-11 15:07:55 +00:00
vibe-code
a93f806b33
fix: 同步模式打印图标改为余额风险语义(极速→中风险等,与档位自洽)
2026-08-11 15:06:26 +00:00
vibe-code
068f2ee658
fix: 取消高水位 60 分钟同步档(日返还模型下余额≥80万为常态)
...
- 高水位 base_interval 3600 → 1800:返还解锁/余额扣减检测延迟从 ≤60min 降到 ≤30min,
消除每日返还后的额度空转窗口与余额虚高扣费窗口;真正的慢同步条件 = is_idle(已独立实现)
- All Dead 非晨间 1000000 → 300000:返还可能下午到账,不能睡 60 分钟
- 修复模式打印数值与 base_interval 全部错位的遗留 bug,改为输出实际同步间隔
2026-08-11 14:16:27 +00:00
vibe-code
5e40a311d1
fix: 消耗任务四类遗漏修复 + 清理死变量
...
volc_consume.py:
- payload 模型参数路由:doubao 系 max_completion_tokens+reasoning_effort minimal,
其他模型 max_tokens(旧 MONITOR_TARGETS 实测配置,否则 doubao 消耗会 400 失效)
- _send_ark URL 单源:直接拼 HUOSHAN_BASE_URL(与 config.yaml 同 env),删 ARK_HOST
- 速率三档对齐旧 auto_consume(正常 15-40s / 极速 / 动态),避免 plan 大时 60s/次拖过 00:00
- run_consume_all 单次拉包复用,消除 6 次重复分页
volc_limit_sync.py:
- 修复 DEBUG 打印残留 current_peak 引用(v2 简化后已删变量,DEBUG 模式会 NameError)
- 清理旧遗留死变量 SYNC_INTERVAL / mode_str / display_limit,去重 limit_str
2026-08-11 13:58:58 +00:00
vibe-code
b7df36bb4e
fix: dynamic 限额缺失时 fallback 保守兜底(FALLBACK_LIMIT 90万)
...
免费模型余额常态 <2M(昨日采多少返多少),stable_limit 缺失窗口
(首次同步前/新增模型/TTL 过期)此前 fallback 裸奔到静态 2M,
余额不足的模型会被烧穿扣费。改为 min(static, FALLBACK_LIMIT=90万)。
2026-08-11 13:38:32 +00:00
vibe-code
96b81d52c4
feat: 合入火山免费额度自动消耗任务(每日23点洗过期包防扣费)
...
- 新增 volc_consume.py:消耗任务模块,直连 Ark 洗 9 天内过期资源包
(旧 calculate_plan 均分×1.1/24h冲刺保留 + 双 clamp:2M 采集上限、余额−BUFFER 防扣费)
- volc_limit_sync.py:限额 v2 简化(stable_limit = usage+balance−BUFFER,删除峰值状态机 ~90 行),
HARD_DAILY_LIMITS 统一 2M(pre-block 不滞后,1.8M 折扣作废),
新增 _maybe_trigger_daily_consume(北京时间 23:00 ± 抖动,SETNX 去重,延迟导入)
- docker-compose 挂载 volc_consume.py;AGENTS.md/文档同步
2026-08-11 13:15:24 +00:00
root
8feb38db37
fix: 资源包查询修复翻页死循环并加 Status 过滤
...
- debug_volc_sync.py 缺少 seen_tokens 防循环保护,火山 API 翻页到头后
NextToken 循环回起始 token,导致无限翻页(实测 900s 拉 1893 页假象,
真实数据仅 8 页 137 个包)
- 两个 fetch_all_packages 请求加 Status=Effective,服务端直接过滤
UsedUp/Expired/Refunded 等余额为 0 的无用包(实测过滤后 0 余额包为 0)
- 主脚本循环检测日志从 DEBUG 提升为 WARNING,循环收尾不再静默
2026-08-11 03:39:57 +00:00
root
e29d94f9e8
feat: 日志统一加 [VolcSync] 前缀便于筛选
...
模块级重绑定 print(一处覆盖全部 52 处调用, 含 log()/dprint/裸print),
traceback.print_exc 改走带前缀通道, 去除 log() 内嵌标识避免双前缀。
筛选: docker logs litellm 2>&1 | grep VolcSync
2026-08-11 02:53:33 +00:00
root
729e5c7bc3
fix: 限额峰值改为首锁+余额门控重锁,修复越算越多
...
原 Smart Peak 逻辑把每次用量增长误判为余额恢复(Jump)锁更高峰值,
叠加火山 AvailableAmount 更新滞后,stable_limit 当天一路抬升
(399,836 -> 599,511)且闸门永不触发,额度实际被烧穿。
新策略(volc:peak_pool 当日键):
- 首次同步锁定当日峰值(usage + balance)
- 仅 balance 自身净上涨(新资源包/对账回补 >=50k)按发放增量抬峰
- pool 回落时 Drop 收紧,永不回升
- usage 驱动的 pool 上涨一律不得抬高限额
新增 volc:last_balance 键记录上次余额快照
2026-08-11 02:53:18 +00:00
root
1a36bf5dbc
fix: RateLimitError构造去除request_data,对齐litellm main签名(message,llm_provider,model)
2026-08-10 08:43:44 +00:00
root
2e052734fc
fix: 已踢模型请求也走限额拦截,统一返回429而非router 400
2026-08-10 08:21:39 +00:00
root
6b51d74e72
fix: 增加请求前限额拦截(async_pre_call_hook),修复超限滞后击穿漏洞
2026-08-10 08:07:04 +00:00
root
1e63653f52
fix: add deepseek-v4-flash-0731 alias and fix config discovery skipping commented lines
...
- Add MANUAL_MONITORED_MODEL_ALIASES entry for
deepseek-v4-flash-0731 -> deepseek-v4-flash-ga-260731,
since VolcEngine resource pack uses MMDD format while
upstream model name uses -ga-YYMMDD (inconsistent naming).
- Fix config.yaml auto-discovery to skip lines starting with '#',
preventing commented-out api_base lines from leaking into the
currently-open entry and misclassifying non-VolcEngine models.
This was causing deepseek-v4-flash (via NEWAPI) to be falsely
detected as a monitored VolcEngine model.
2026-08-09 14:21:46 +00:00
kim
3dd97730b6
fix: default remaining to high quota for unknown models on startup and update AGENTS.md
2026-07-08 10:42:14 +08:00
kim
27324f459c
fix: add doubao-seed-2-0-code alias to monitored models
2026-06-11 14:52:02 +08:00
kim
671ef1087f
fix: resolve falsy effective_limit bug preventing model block on negative quota
2026-06-11 14:09:42 +08:00
kim
28c81c4816
fix: resolve volcengine package quota parsing and status filtering
2026-06-11 13:27:06 +08:00
kim
f36c560bb0
fix: clarify effective limit debug output
2026-04-01 14:10:59 +08:00
kim
2f1c2642e5
fix: streamline monitored model maintenance
2026-04-01 13:29:10 +08:00
kim
bdd51e8f9c
feat: implement startup audit to block over-limit models on restart
...
- Add startup_audit() to check Redis usage against limits at startup
- Call startup_audit() in active_monitor_loop
- Add AGENTS.md for agent guidelines
2026-02-02 13:39:34 +08:00
kim
03df1d553e
fix: strip volcengine prefix in limit sync to match config
2026-01-30 12:35:19 +08:00
kim
f16af28dfe
feat: 优化火山引擎配额同步策略
...
- 添加硬限制: doubao-seed-code 480w/日, 其他模型 180w/日
- 强制北京时间(UTC+8)计算日期,确保 Docker 容器时区无关
- 移除'忽略小跌'逻辑,Pool 下跌时立即接受(更保守的风控)
- 优化轮询间隔适配小时级 API 延迟(减少无效请求)
2026-01-30 00:39:06 +08:00
kim
dd8cbe5f63
revert: remove hardcoded daily limits, restoring dynamic calculation only
2026-01-30 00:05:40 +08:00
kim
d5b8829265
feat: add specific hard limits and log format
2026-01-29 23:54:32 +08:00
kim
cd35a193b6
feat: finalize smart pool tracking with hysteresis (handle jumps, drops, and expiry)
2026-01-29 23:17:39 +08:00
kim
2d849dc62d
fix: upgrade quota logic to track Total Pool (Usage + Rem) to prevent mid-day blocking
2026-01-29 22:30:42 +08:00
kim
73fe82de3b
feat: enhance volcengine quota sync with hard limits and smart buffering
2026-01-29 22:21:29 +08:00
kim
0988b1fc1d
optimize: increase burst traffic threshold to 300,000 tokens to handle long-context models
2026-01-29 20:54:18 +08:00
kim
e6110cd9c1
optimize: adjust restore window to 07:00-13:00 Beijing time and optimize sleep logic for dead models
2026-01-29 20:27:32 +08:00
kim
e21a510f0f
fix: sync logic to filter non-volc models by api_base hash and add debug logs
2026-01-29 19:31:17 +08:00
kim
4a68121b3e
Fix: Revert Doubao 1.6 mapping to shared list and remove hardcoded corner cases
2026-01-29 18:57:55 +08:00
kim
2d161c867e
Fix: Separate Doubao 1.6 Standard and Thinking models into distinct quota keys
2026-01-29 18:52:43 +08:00
kim
d66231a333
Enhance: Complete bilingual (CN/EN) log support for VolcSync
2026-01-29 18:48:03 +08:00
kim
c536421410
Enhance: Format balance logs with thousands separators and add bilingual (CN/EN) descriptions
2026-01-29 18:39:55 +08:00
kim
da41c569c0
Fix: Deduplicate packages based on full JSON content hash to prevent double counting
2026-01-29 18:26:38 +08:00
kim
587a005665
Fix: Remove duplicate code block causing IndentationError in process_packages_breakdown
2026-01-29 18:19:59 +08:00
kim
0e2acd85b0
Fix: Revert sync-all-models. Only sync configured VolcEngine models (Strict Whitelist)
2026-01-29 18:16:17 +08:00