vibe-code
fafcf6e732
fix: DATABASE_URL 加 client_encoding=UTF8,修复 SQL_ASCII 库启动崩溃
...
新镜像 main-latest 自 2026-09-20 起默认启用 v2 migration resolver
(上游 fac518dbf7),v2 启动时调用 _warn_if_db_ahead_of_head() 读
_prisma_migrations。本库 litellm 为 SQL_ASCII(server/client_encoding
均 SQL_ASCII,datcollate=C),psycopg 的 TextLoader 对此直接返回 bytes
而非 str(psycopg/types/string.py:110-120),导致 utils.py:174 的
_MIGRATION_TS_RE.match(bytes) 抛 TypeError,容器启动即崩。
同一缺陷还潜伏在 repair_invalid_indexes/_index_repair
(utils.py:760,_TRANSIENT_INDEX_SUFFIX_RE.search(index.name))与
_failed_migration_logs(utils.py:1023,str in bytes),二者 v1/v2 双路径
均会经过,只在对应数据非空时触发(CREATE INDEX CONCURRENTLY 中断或
迁移死锁)。
根因修复:DATABASE_URL 追加 client_encoding=UTF8。libpq 将其作为
启动参数下发(fe-protocol3.c:2503),psycopg 按服务端确认值决定解码
(pq_ctypes.py:229-232),恢复返回 str。Prisma 侧无影响:quaint 丢弃
未知参数(url.rs:459),其驱动 tokio-postgres 本就固定发
client_encoding=UTF8。已全库校验 450 个文本列/43548 行/14.5MB 全部
为合法 UTF-8,无解码失败风险。
另保留 USE_V2_MIGRATION_RESOLVER=false 作独立兜底,沿用更新前的 v1
路径;根因已除后该项可移除以启用 v2。
2026-09-24 12:53:19 +08:00
vibe-code
e91e2d1d5e
feat: 手动软踢 Redis key (manual_evict) + redis 卷固定名称
...
- docker-compose: redis_data 卷加 name: litellm_redis_data, 卷名不再随
compose 项目名(目录名)漂移, 目录迁移不会新建空卷丢数据
- _check_request_block: 监控条目命中后检查 Redis manual_evict:{clean} key,
存在即返回 (clean,-2,-2) 恒 429; key 落持久卷, 重启后仍生效,
显式 DEL 才恢复, 幂等
- async_pre_call_hook: 识别 -2 标记, 返回 manually soft-evicted 429
- 用法: SET/DEL/KEYS manual_evict:* (docker exec litellm_redis redis-cli)
2026-08-13 10:05:02 +00:00
vibe-code
5fddea126e
fix: redis 挂载 redis_data 持久化卷, down/up 不再丢今日用量
...
此前 volumes 段仅注释未挂载, docker compose down 重建容器时
RDB/AOF 随容器层删除, daily_usage 与量快照全丢, 重启后闸门
以余额重算限额(limit=Bal-BUFFER)虽不烧穿, 但当日用量统计归零
且 soft-evict 状态丢失
2026-08-13 09:34:49 +00:00
vibe-code
9d46fd4aa5
fix: 闸门 fail-closed 堵重启/Redis 故障窗口漏放
...
- _check_request_block: Redis 不可用/无限额/读取异常时监控条目恒 429(标记 -1,-1),非监控渠道不受影响;原实现任何异常 fail-open
- async_pre_call_hook: 识别 fail-closed 标记返回 quota unavailable 429
- FALLBACK_LIMIT 900k→200k(免费池 2M 的 10%),收窄 0 余额模型兜底泄露
- docker-compose: redis 开启 AOF(--appendonly yes everysec),防重启丢快照/用量
- active_monitor_loop: 首轮跳过 CHECK_INTERVAL,额度未同步空窗 12-20s 缩至 2-5s
2026-08-13 09:18:23 +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
ee1245621d
feat: 消耗语料优化:宿主真实日志挂载 + 合成语料扩容 + 游标去重
...
- docker-compose 只读挂载 /var/log:/host-var-log,LOG_SOURCES 追加宿主路径(真实日志优先)
- 合成语料 5000→30000 行、模板 8→28 种、主机 6→12、覆盖 24h(行间隔 ≈86400/count)
- generate_dynamic_payload 随机起点改游标连续窗口:单次运行内零重复(时间轴随请求推进),
耗尽后环绕(跨请求重复可接受,跨天语料重建)
- 验证:模板特征 20/20 命中、12 主机、6 窗口零重叠、payload 长度合规
2026-08-11 15:17:52 +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
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
root
58db397bbf
更新到最新的镜像
2026-06-15 17:13:33 +08:00
root
63658dadd2
修改config,添加模型;指定litellm主版本规避风险
2026-04-01 12:12:34 +08:00
kim
1e27201675
增加内存限制2g
2026-03-22 18:19:20 +08:00
kim
96691af3eb
修改数据库密码
2026-03-18 17:34:35 +08:00
kim
ede69fe8b4
测试切换数据库到专用lxc容器
2026-03-18 17:27:54 +08:00
kim
a620473fff
增加时区环境变量
2026-02-04 10:05:33 +08:00
kim
f9de77d7a2
测试
2026-01-29 17:26:27 +08:00
kim
5946147ebb
chore: update config and docker-compose to use volc_limit_sync handler
...
Updates config.yaml to use the new volc_limit_sync.proxy_handler_instance callback.
Adds volc_limit_sync.py to docker-compose.yml volumes to ensure it is available in the container.
2026-01-29 15:12:27 +08:00
root
f77f7ba6de
初始化空白分支文件
2026-01-28 14:55:06 +08:00